none
如何關閉所有應用程式 RRS feed

  • 問題

  • 請問前輩:

    我想實作 "記憶體" 程式的 "關閉所有應用程式" 的功能,因此我用 EnumWindows 去列舉所有目前在執行的程式,但傳回來的 HWND 除了一般執行的程式外,似乎系統程式也會傳回來。

    請問我要如何判斷是一般的程式或系統程式呢?如果全部關閉的話,系統會當掉 (在 Emulator 上的結果)

    謝謝

    2007年1月29日 上午 10:26

解答

  • 都沒人理我,只好自問自答了

    • 首先利用 IsWindowVisible( ) 過濾掉不可見的視窗
    • 接著利用 GetParent( ) 過濾掉子視窗
    • 最後就是手動的方式過濾掉一些系統的程式 (利用視窗名稱來比對),例如 "" (無名稱)、Desktop、MS_SIPBUTTON、我的工具 (自己的程式當然不能被關掉嘛)、程式集、遊戲、設定、電話 (以上只適用中文版,英文版就要另外再想辦法了)
    • 最後用 DestroyWindow 就可以將這些程式關閉了
    2007年2月1日 上午 10:14