我正在创建一个基本上扫描系统以查看特定进程是否正在运行的Windows程序。我有进程名称(AcroRd32.exe),没有别的。据我所知,最简单的方法是使用CreateToolhelp32Snapshot创建所有进程的快照,然后遍历每个进程以查找进程名称。我的应用程序以高性能为中心。那么有没有更好更有效的方法来做到这一点。应用程序每隔几秒收集一次快照。在快照中迭代100个进程似乎效率不高。是否有直接的API可以通过进程名称找到进程(并通过名称检索进程句柄或ID)?我进行了广泛的搜索,但运气不佳。有人试过这个吗? 最佳答案 扫描进程的
我目前正在调用一个从文本文件中导入参数的进程,虽然当读取文本文件的一行时它工作正常,但文本文件的第二行紧随其后执行。有没有办法告诉Process.Start等到上一个命令完成?staticvoidMain(string[]args){foreach(stringexenameinSystem.IO.File.ReadAllLines("test.txt")){Process.Start("test.exe","\""+exename+"\"");}} 最佳答案 staticvoidMain(string[]args){foreach
查找网络浏览器是否正在运行的最佳方法是什么?在Windows上使用DelphiXE2,我需要查找以下Web浏览器当前是否正在运行:A)火狐浏览器B)苹果浏览器C)谷歌浏览器如果找到,该进程将被终止,因为需要通过修改网络浏览器配置文件以编程方式更改网络浏览器的主页(这是不可能的,或者如果在web时完成可能会导致不可预测的结果)-浏览器正在运行)。EnumWindowsAPI函数的输出是否包含处理上述任务所需的足够信息?如果是,那么是否在任何地方记录了上述每个网络浏览器的窗口类名称?如果不是,那么哪种方法最可靠?TIA。 最佳答案 未经
我需要知道如何在C/C++代码中获取新创建进程的句柄。我对所有这些Microsoft库了解不多,我刚刚阅读了有关创建流程的两种方法。第一个是通过ShellExcecute调用,第二个是通过CreateProcess,但这些都没有重新生成句柄。我需要知道进程的句柄,因为我希望主线程在继续之前等待进程完成。最重要的是,我希望有人帮我编写一个如下所示的函数:HANDLEcreate_process(/*parameterssameasforShellExecute*/){...}请帮忙。 最佳答案 CreateProcess()返回包含进
我在c++中有一个XMLRPC窗口服务。我需要从它启动子进程,如果Windows服务收到请求并且进程已经存在我需要结束那个特定的子进程并再次启动它。我不需要等待进程在启动后退出但是一旦它启动并开始它应该做的事情我需要通知主进程。当子进程结束时,它需要通知启动它的服务,以便我可以维护一个已存在进程的列表。我知道我可以用CreateProcess做到这一点但是,一旦子进程到达特定事物,我该如何处理通知的各个方面。 最佳答案 调用CreateProcess后,跟踪进程句柄。您可以使用它来查看进程是否有exitedornot,并调用Term
谁能告诉我如何确保程序中的某些代码在进程退出或被杀死时得到执行?驱逐舰只有在正常退出时才会被调用。但我希望我的代码在被系统关闭或任务管理器杀死时得到执行。平台是Windows,如果需要,我不介意使用特定于平台的代码。 最佳答案 你不能。如果用户拔掉电源线怎么办? 关于c++-如何保证在进程退出或在c++中被杀死时执行某些代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/219
我正在尝试使用VbScript获取窗口的标题。有什么办法可以实现吗?就像我们在C#中做的那样usingSystem.Diagnostics;Process[]processlist=Process.GetProcesses();foreach(Processprocessinprocesslist){if(!String.IsNullOrEmpty(process.MainWindowTitle)){Console.WriteLine("Process:{0}ID:{1}Windowtitle:{2}",process.ProcessName,process.Id,process.Ma
标题几乎概括了它。我刚刚发现了这个功能,好吧,它的存在让我很惊讶,因为我立即想到了可能的安全后果。为什么会有这样的功能?我知道调试这样的东西或多或少是必要的,但允许它用于所有进程似乎是一个很大的安全问题。我错过了什么吗? 最佳答案 如果需要函数来编写调试器,那么函数必须存在,就这么简单。hProcess参数必须以足够的权限打开才能写入进程,恶意软件很难做到这一点。 关于windows-为什么会有像WriteProcessMemory这样的函数可用?,我们在StackOverflow上找到
我正在考虑用C++构建一个应用程序,它将解析来自网络的文本并创建一些统计结果。我想将这些结果实时输入外部应用程序。外部应用程序(我无法访问其代码,但可以要求付费定制添加)然后需要一些代码来读取和使用这些结果。我想知道在速度和易于实现方面互连这两个应用程序的最佳方式是什么。我正在考虑:diskI/O(slow)aWindowsserviceaDLLawebserviceawebpage也许我缺少更好的解决方案?谢谢。Update:thereisanadditionalneedtoknowhowlongadatarequestmaytakeatworst. 最佳
我如何告诉程序“test.exe”(这是一个控制台应用程序)将其结果输出到文件。例如通常程序可以通过在提示符下执行test.exe>output.txt来输出数据。如何在这个声明中做到这一点?Process.Start("test.exe","\""+exename+"\"").WaitForExit(); 最佳答案 使用StandardOutputMSDN页面示例中的属性://Startthechildprocess.Processp=newProcess();//Redirecttheoutputstreamofthechild