阻止应用程序被执行

时间:2010-10-17 14:00:29

标签: .net

我有一个C函数阻止exe应用程序被执行,我喜欢用窗口形式.net2做同样的事情。怎么样?

int ExecuteBlocking(const char *appName, const char *cmdLine)
{
 char sz[260];
 STARTUPINFO siStartupInfo;
 PROCESS_INFORMATION piProcessInfo;
 memset(&siStartupInfo, 0, sizeof(siStartupInfo));
 memset(&piProcessInfo, 0, sizeof(piProcessInfo));
 siStartupInfo.cb = sizeof(siStartupInfo);
 BOOL b = CreateProcess(0, sz, 0, 0, 0, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo);
 if (b == 0)
  return -1;
 WaitForSingleObject(piProcessInfo.hProcess, -1);
 CloseHandle(piProcessInfo.hProcess);
 CloseHandle(piProcessInfo.hThread);
 return 0;
}

1 个答案:

答案 0 :(得分:1)

该C代码阻止程序执行。它只是等待它完成执行,该功能将不会返回,直到发生这种情况。你可以在.NET中使用Process.WaitForExit()得到完全相同的东西。