我想编写一个简单的程序,如果SbieCtrl.exe进程在我的机器上运行,我的程序会在输出中报告它。但我的代码不起作用。我把我的代码放在下面:
我的班级代码:
bool processTools(string processName) {
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE) {
procRunning = false;
}
else {
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(hProcessSnap, &pe32)) {
if (pe32.szExeFile == processName) {
procRunning = true;
}
else {
while (Process32Next(hProcessSnap, &pe32)) {
compare = pe32.szExeFile;
if (compare == processName) {
procRunning = true;
break;
}
}
}
CloseHandle(hProcessSnap);
}
}
return procRunning;
}
我的目标代码:
class Sandboxie : Base {
public:
int SandboxieProcess() {
if (processTools("SbieCtrl.exe")) {
return 1;
}
else {
return 0;
}
}
};
为什么此代码不起作用。我有几个错误,比如“if(pe32.szExeFile == processName)”部分中的comparsion。
答案 0 :(得分:-2)
我解决了。我在Visual Studio中转到项目的属性部分,并将Charachter Set的参数更改为多字节charachter集,现在一切正常。