2012-09-09 34 views

回答

1

使用FindWindow函數和SendMessage函數喜歡這裏http://www.codeproject.com/Articles/22257/Find-and-Close-the-Window-using-Win-API

您必須創建一個連續循環至極WINAPI功能關閉該窗口,如而(真)。我使用了一個定時器,因爲它更有效率。這裏是我的代碼:

[DllImport ("user32.dll")] public static extern IntPtr FindWindow (String sClassName, String sAppName); 
[DllImport ("user32.dll")] public static extern int SendMessage (IntPtr hWnd, uint Msg, int wParam, int lParam); 
    Timer t; 
    public Form1() 
    { 
     InitializeComponent(); 
     t=new Timer(); 
     t.Interval=100; 
     t.Tick+=delegate 
     { 
      IntPtr w=FindWindow (null, "Message box title"); 
      if (w!=null) SendMessage (w, 0x0112, 0xF060, 0); 
     }; 
     t.Start(); 
    } 

其中WM_SYSCOMMAND = 0x0112 公共const int的SC_CLOSE = 0xF060;

如果您不知道窗口的類名(如上所述),請將null和消息框的標題用作參數。當然,這意味着消息框有一個標題。