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

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

#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;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31918005/article/details/52356149
个人分类: windows C++
上一篇关于SysinternalsSuite全部工具【详解】
下一篇Treap标准模板
想对作者说点什么? 我来说一句

重启 explorer 代码 C++ tray

2010年10月13日 272KB 下载

没有更多推荐了,返回首页

关闭
关闭