offline
Опыт:
7,275
Активность:
|
Проблемы с запуском EXE-шника
Собственно, проблемы.
Написал я прогу, которая должна при запуске мониторить компьютер в поисках приключений запущенных процессов игр и рубить их >_< для брата делал xD
Но вот беда - на семерке всё отлично работает, а на нужном компьютере (на нем XP) exe-шник, скомпилированный visual studio и засунутый в автозагрузку, не работает. Ни в какую, ни автозагрузкой, ни тыком мышью, ни с флешки, ни из-под администратора.
Если на семерке в "диспетчере задач" появляется сам процесс (назван "antigamer"), то в семерке этого не происходит.
Что делать, как быть?
» Код программы
В коде, что закомментировано - то и должно быть таким, в этом ошибок нет
#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];
bool 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"H:\\key.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
// получить файловую дату и время
if(!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
{
// cout << "Error!" << endl;
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;
//sprintf(lpszString, "%d-%02d-%02d %02d:%02d:%02d", stUTC.wYear, stUTC.wMonth, stUTC.wDay, stUTC.wHour, stUTC.wMinute, stUTC.wSecond);
//cout << lpszString << endl;
}
else
//cout << "Error open file!" << endl;
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"G:\\key.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
// получить файловую дату и время
if(!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite))
{
// cout << "Error!" << endl;
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;
//sprintf(lpszString, "%d-%02d-%02d %02d:%02d:%02d", stUTC.wYear, stUTC.wMonth, stUTC.wDay, stUTC.wHour, stUTC.wMinute, stUTC.wSecond);
//cout << lpszString << endl;
}
else
//cout << "Error open file!" << endl;
CloseHandle(hFile);
if (((((((date[0]==2012)&&(date[1]==1))&&(date[2]==16))&&(date[3]==16))&&(date[4]==57))&&(date[5]==54))) 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)
{//FILE *fr;
char string[100];
//if (( fr = fopen ("plist.txt", "r" )) == NULL)perror ("error");
bool f=0;
bool p=1;
bool l=0;
DWORD pid;
while (f!=1){
Sleep(2000); //4000-9 сек
p=testdate();
if (p==1) {
//while (string!="//") {
//fscanf(fr,"%s",&string);
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);
//}
};
//fclose(fr);
}}
//MessageBox(NULL,L"Флешка не воткнута, значит играть не получиться ;)", L"Message", MB_OK);
//HWND hWnd = FindWindow( L"Message", NULL );
//if(hWnd) {SendMessage( hWnd, WM_CLOSE, 0, 0 );}
Light or Dark добавил:
Сожалею, попутал, на соседнем компьюетере XP >_<
Проверил пару остальных программ (включая helloworld), все одинаково запускаются и мгновенно закрываются, только и видно как на долю секунды консольное окно моргает.
Light or Dark добавил:
Знакомый сказал, что не хватает DLL. Вопрос, каких?
Отредактировано Light or Dark, 16.01.2012 в 19:10.
|