線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1536
推到 Plurk!
推到 Facebook!

不知道應用程式的Windows Handle 時,如何結束該應用程式

 
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-26 10:26:41 IP:61.218.xxx.xxx 未訂閱

不知道應用程式的Windows Handle 時,如何結束該應用程式

作者:JSP(季世平) 資料來源:http://www.ccrun.com/ 如果只要判斷EXE的名字(不需要判斷路徑),可以省略EnumProcess,因為 pe32.szExeFile 裡就已經有EXE的名字了,因為沒有路徑,所以才又使用了 函數EnumProcess來取得完整的路徑。這樣就簡潔一些了。

BOOL CALLBACK EnumWinProc(HWND hwnd, LPARAM lParam)
{
    DWORD dwID;        GetWindowThreadProcessId(hwnd, &dwID);
    if (dwID == (DWORD)lParam) {
        PostMessage(hwnd, WM_QUIT, 0, 0);
        return FALSE;
    }
    return TRUE;
}    void KillProgram(LPCSTR ExeName)
{
    char *File;
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;        if (!ExeName || !ExeName[0])
        return;
    File = strrchr(ExeName, '\\');
    if (File!=0) ExeName = File 1;
    hProcessSnap = CreateToolhelp32Snapshot(
        TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == (HANDLE)-1) return;        memset(&pe32, 0, sizeof(pe32));
    pe32.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(hProcessSnap, &pe32))
    {
        do {
            memset(&me32, 0, sizeof(me32));
            me32.dwSize = sizeof(me32);
            File = strrchr(pe32.szExeFile, '\\');
            File = File? File 1 : pe32.szExeFile;
            if (strcmpi(File,ExeName)==0) {
                EnumWindows((WNDENUMPROC)EnumWinProc,
                   pe32.th32ProcessID);
            }
        }
        while(Process32Next(hProcessSnap,&pe32));
    }
    CloseHandle(hProcessSnap);
} 
聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]---
系統時間:2024-06-29 18:40:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!