0
在我的主要功能中,我使用以下行EnumWindows(EnumWindowsProc, NULL)
。我将程序设置为按计划任务运行。当手动运行时,它会正常工作,但是,如果将后续时间作为计划任务运行,则此功能失败。如果它被正确调用,它永远不会执行里面的代码。我一直在这个问题上摸不着头脑,我无法弄清楚为什么。有人建议hwnd可能会导致它,但不知道足够肯定地说。我觉得它的功能参数错误,但不知道该怎么做才能使它工作。为什么此功能在后续运行中失败?EnumWindowsProc()仅在第一次运行程序时运行
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char title[80];
const char* filepath = somedir; //I checked, this isn't the failure point
ofstream myfile;
myfile.open (filepath, ios::app);
if (IsAltTabWindow(hwnd))
{
//myfile.open (filepath, ios::app); //I was trying opening at different points
if (myfile.is_open())
{
DWORD pid;
GetWindowThreadProcessId(hwnd, &pid);
//GetClassName(hwnd,class_name, sizeof(class_name));
GetWindowText(hwnd,title, sizeof(title));
myfile << "Window title: " << title << " ";
myfile << "PID: " << pid << endl;
}
else
MessageBox(NULL, "ERROR", NULL, MB_OK);
//myfile.close();
}
}
非常感谢!我最初将它设置为通过命令行在系统下运行,并且系统没有桌面。我改变它在用户帐户下运行,它的工作原理!我将不得不重写一些代码,但至少该错误消失了。 – sommerjj