在关机时,想执行一个自定义的java程序完成一些功能,就做了一个钩子,
但WinExec(), ShellExecute(), CreateProcess()都试了,但报运行成功了,
但实际没有执行。 请教大家了。下了 hHook=SetWindowsHookEx(WH_CALLWNDPROC,
MyProc,
GetModuleHandle("Hook.dll"),
NULL); 个钩子。在MyProc()中实现了,
nCount++;
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
PROCESS_INFORMATION pi;
fl=fopen("d:\\keyfile.txt", "a+" );
fwrite("before4 \n ",13 ,1, fl);
flag = CreateProcess(NULL, "Cjava d:\\hook.class", NULL, NULL, false, 0, NULL, NULL, &si, &pi);
if (flag){
fwrite("success !! \n ",20 ,1, fl);
WaitForSingleObject(pi.hProcess, INFINITE);
}
else
fwrite("fail!! \n ",20 ,1, fl);
fwrite("after4 \n ",13 ,1, fl);
fclose(fl); CreateProcess已经成功了,但实际上并没有执行, 是什么问题啊!
贴错了,
flag = CreateProcess(NULL, "java d:\\hook.class", NULL, NULL, false, 0, NULL, NULL, &si, &pi);