首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Windows Mobile 開發:建立不會自動結束的 Console 應用程式

     編輯:關於.NET

在 Windows Mobile 開發中,若需背景持續執行的程式(如監聽服務),雖然可撰寫 Windows Service,但也可利用訊息迴圈機制讓一般 Console/視窗應用程式長期駐留記憶體。Windows 程式之所以能持續執行,核心在於訊息迴圈不斷從佇列取出訊息並分發給視窗程序:

while (GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

隱藏視窗的關鍵技巧

建立一個不顯示的視窗類別與視窗實例,即可擁有訊息處理能力。關鍵在 CreateWindow 時指定 WS_DISABLED 樣式,並註解掉預設的 ShowWindow 與 UpdateWindow:

hWnd = CreateWindow(szWindowClass, szTitle, WS_DISABLED, // 關鍵:停用視窗使其不可見
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
    NULL, NULL, hInstance, NULL);
// ShowWindow(hWnd, nCmdShow);  // 註解掉
// UpdateWindow(hWnd);           // 註解掉

此視窗雖不可見,但擁有有效的 HWND 與視窗程序,可透過 FindWindow、SendMessage、PostMessage 進行跨程式通訊。

.NET Compact Framework 同理可行

Application.Run(Form f) 本質即為訊息迴圈 + f.Show()。開發者可自行 P/Invoke 訊息迴圈,決定是否呼叫 Show,同樣能達到背景常駐效果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved