关闭

重新启动(结束并打开)explorer.exe C++

标签: winapic语言visual studiowindows
43人阅读 评论(0) 收藏 举报
分类:

自写了个程序,能重新启动资源管理器~~~
不多说,直接上代码!

#include <windows.h>
#include <Tlhelp32.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    char ProcessName[1000] = "explorer.exe";
    HANDLE SnapShot, ProcessHandle;
    SHFILEINFO shSmall;
    PROCESSENTRY32 ProcessInfo;

    SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if(SnapShot != NULL) 
    {
        ProcessInfo.dwSize = sizeof(ProcessInfo);  // 设置ProcessInfo的大小
        BOOL Status = Process32First(SnapShot, &ProcessInfo);
        while(Status)
        {
            // 获取进程文件信息
            SHGetFileInfo(ProcessInfo.szExeFile, 0, &shSmall, sizeof(shSmall), SHGFI_ICON|SHGFI_SMALLICON);

            // 检测进程是否需要关闭
            strlwr(ProcessInfo.szExeFile);

            if(!strcmp(strlwr(ProcessName), ProcessInfo.szExeFile)) 
            {
                // 获取进程句柄,强行关闭
                ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessInfo.th32ProcessID);
                TerminateProcess(ProcessHandle, 1);
                break;
            }
            // 获取下一个进程的信息
            Status = Process32Next(SnapShot, &ProcessInfo);
        }
    }
    // 打开explorer.exe
    ShellExecute(NULL, "open", strlwr(ProcessName), NULL, NULL, SW_SHOWNORMAL);
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:679次
    • 积分:70
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档