В-общем, такая проблема. У меня есть список процессов, допустим: mspaint.exe game.exe pop.exe Мне нужно написать программу, которая бы закрывала все окна этих процессов. Как это сделать - я без понятия. Помогите, что-ли ;) //Изначально суть в том, чтобы программа проверяла наличие флешки с определенным файлом в компьютере. Если её там нету - то она "пробегала" по всем процессам (процессы игр) и завершала их. У меня все это получилось, но для закрытия процессов я использовал terminateprocess, что не очень хорошо. Ну а как воспользоваться другими вариантами, я без понятия. Заранее спасибо! Код программы, которая проверяет файл и "убивает" процессы. | Код | #include "stdafx.h" #include "conio.h" #include <windows.h> #include <iostream> #include <Tlhelp32.h> #include <fstream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; int date[6];
int KillProcByPid(DWORD pid) { DWORD ExitCode; HANDLE hp; bool ret = true;
if(pid) { hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid); if (hp) { GetExitCodeProcess(hp, &ExitCode); ret = TerminateProcess(hp, ExitCode); } else { return false; } } else {return false;} CloseHandle(hp); return ret; }
int testdate(void) { wchar_t lpReturnedString[100]; HANDLE hFile; FILETIME ftCreate, ftAccess, ftWrite, lpLocalFileTime; SYSTEMTIME stUTC, stLocal; char lpszString[MAX_PATH]; hFile = CreateFile(L"F:\\key.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile != INVALID_HANDLE_VALUE) { if(!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)) {return 1;} FileTimeToLocalFileTime(&ftWrite, &lpLocalFileTime); FileTimeToSystemTime(&lpLocalFileTime, &stUTC); date[0]=stUTC.wYear; date[1]=stUTC.wMonth; date[2]=stUTC.wDay; date[3]=stUTC.wHour; date[4]=stUTC.wMinute; date[5]=stUTC.wSecond;} else CloseHandle(hFile); if (((((((date[0]==2012)&&(date[1]==1))&&(date[2]==16))&&(date[3]==21))&&(date[4]==1))&&(date[5]==2))) return 0; return 1;}
int testdate2(void) { wchar_t lpReturnedString[100]; HANDLE hFile; FILETIME ftCreate, ftAccess, ftWrite, lpLocalFileTime; SYSTEMTIME stUTC, stLocal; char lpszString[MAX_PATH]; hFile = CreateFile(L"F:\\key.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile != INVALID_HANDLE_VALUE) { if(!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)) {return 1;} FileTimeToLocalFileTime(&ftWrite, &lpLocalFileTime); FileTimeToSystemTime(&lpLocalFileTime, &stUTC); date[0]=stUTC.wYear; date[1]=stUTC.wMonth; date[2]=stUTC.wDay; date[3]=stUTC.wHour; date[4]=stUTC.wMinute; date[5]=stUTC.wSecond;} else CloseHandle(hFile); if (((((((date[0]==2012)&&(date[1]==1))&&(date[2]==16))&&(date[3]==21))&&(date[4]==1))&&(date[5]==2))) return 0; return 1;}
DWORD PIDByName(WCHAR * AProcessName) { HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 ProcessEntry; DWORD pid; ProcessEntry.dwSize = sizeof(ProcessEntry); bool Loop = Process32First(pHandle, &ProcessEntry); while (Loop) { if (wcsstr(ProcessEntry.szExeFile, AProcessName)) { pid = ProcessEntry.th32ProcessID; CloseHandle(pHandle); return pid; } Loop = Process32Next(pHandle, &ProcessEntry); } return 0;}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { char string[100]; bool f=0; int p1=1; int p2=1; int l=0; DWORD pid; p1=testdate(); p2=testdate2(); if ((p1==1)&&(p2==1)) { pid = PIDByName(L"SWRepublicCommando.exe"); l=KillProcByPid(pid); pid = PIDByName(L"lotrbfme2.exe"); l=KillProcByPid(pid); pid = PIDByName(L"lotrbfme2ep1.exe"); l=KillProcByPid(pid); pid = PIDByName(L"game.dat"); l=KillProcByPid(pid); pid = PIDByName(L"POP.EXE"); l=KillProcByPid(pid); pid = PIDByName(L"MotherloadGoldium.exe"); l=KillProcByPid(pid); pid = PIDByName(L"il2fb.exe"); l=KillProcByPid(pid); pid = PIDByName(L"War World.exe"); l=KillProcByPid(pid); pid = PIDByName(L"OblivionLauncher.exe"); l=KillProcByPid(pid); pid = PIDByName(L"Oblivion.exe"); l=KillProcByPid(pid); pid = PIDByName(L"POP2.EXE"); l=KillProcByPid(pid); pid = PIDByName(L"pop3.exe"); l=KillProcByPid(pid); pid = PIDByName(L"FireWarr.exe"); l=KillProcByPid(pid); pid = PIDByName(L"SC2.exe"); l=KillProcByPid(pid); pid = PIDByName(L"GAME.EXE"); l=KillProcByPid(pid); pid = PIDByName(L"Pirates!.exe"); l=KillProcByPid(pid); pid = PIDByName(L"war3.exe"); l=KillProcByPid(pid); pid = PIDByName(L"LaunchBFII.exe"); l=KillProcByPid(pid); pid = PIDByName(L"BattlefrontII.exe"); l=KillProcByPid(pid); pid = PIDByName(L"jasp.EXE"); l=KillProcByPid(pid); pid = PIDByName(L"UAWEA.exe"); l=KillProcByPid(pid); pid = PIDByName(L"ra3_1.12.game"); l=KillProcByPid(pid); pid = PIDByName(L"mspaint.exe"); l=KillProcByPid(pid); };}
|
|