更新win7资源管理器

时间:2023-03-10 05:16:39
更新win7资源管理器

更新exeplorer.exe:

1、方法1:

void RefreshExplorer()
{
char strShell[];
SHELLEXECUTEINFOA shellExeInfo={};
shellExeInfo.cbSize=sizeof(SHELLEXECUTEINFOA);
shellExeInfo.fMask=SEE_MASK_NOCLOSEPROCESS;
shellExeInfo.nShow=SW_HIDE;
shellExeInfo.lpVerb="open";
GetSystemDirectoryA(strShell,);
strcat(strShell,"\\taskkill.exe");
shellExeInfo.lpFile=strShell;
shellExeInfo.lpParameters="/F /IM explorer.exe";
ShellExecuteExA(&shellExeInfo);
WaitForSingleObject(shellExeInfo.hProcess,INFINITE);
GetWindowsDirectoryA(strShell,);
strcat(strShell,"\\explorer.exe");
WinExec(strShell,SW_SHOW);
}

方法2:

char* tolow(char *s)
{
int i, j;
for (i = ;i < strlen(s); i++)
{
for (j = ;j < strlen(s); j++)
if (s[j] >= 'A' && s[j] <= 'Z')
s[j] = s[j] - 'A' + 'a';
}
return s;
} //杀死进程
void kill(char proc[])
{
HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,);
if(hSnapShot == )
return;
PROCESSENTRY32 thePE;
thePE.dwSize = sizeof(PROCESSENTRY32);
//遍历正在运行的第一个系统进程
bool Status = Process32First(hSnapShot,&thePE);
bool bHaveFlag = false;
DWORD ProcessID = ;
while(Status)
{
//遍历正在运行的下一个系统进程
Status = Process32Next(hSnapShot,&thePE);
char myproc[] ;
strcpy(myproc,thePE.szExeFile);
strcpy(myproc,tolow(myproc));//转小写
//找到相应的进程 **.exe
if (strcmp(myproc,proc)==)
{
bHaveFlag = true;
ProcessID = thePE.th32ProcessID;
//结束指定的进程 ProcessID
if(!TerminateProcess(OpenProcess (PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),)) //参数为0,会引起资源管理器自动重启!
{
MessageBox(NULL, TEXT("无法终止指定的进程"), TEXT("提示"), MB_OK);
}
break;
}
}
CloseHandle(hSnapShot);
}