草庐IT

多进程架构

全部标签

windows - 在 Windows 上捕获子进程异常

我正在开发一个多平台C++模糊测试应用程序。该应用程序生成一个子进程并检查它是否意外停止。我已经设法在linux上做到这一点,但是,windows异常处理机制让我很难做。我的代码现在执行以下操作:-调用CreateProcess生成进程。-WaitForSingleObject等待它终止。-然后调用GetExitCodeProcess并检查退出代码是否对应于异常。一切正常,我已经用空解引用测试应用程序对其进行了测试,我可以优雅地捕获异常。但是,每次我对此进行测试时,都会出现一个Windows错误消息框,告诉我发送或不发送错误报告。由于模糊器应该是一个自动测试应用程序,我需要以某种方式禁

windows - 在windows中创建后台进程

如何以编程方式让进程进入后台?我想要的是让用户双击进程可执行文件,它只是进入后台......并且在执行时不打开窗口。VisualC++中的任何代码片段都会非常有帮助 最佳答案 您是否考虑过创建一个WindowsService反而?它们专门设计用于在不显示UI的情况下在后台运行。否则,只是createanapplicationwithoutawindow. 关于windows-在windows中创建后台进程,我们在StackOverflow上找到一个类似的问题:

Windows:获取正在运行的进程的版本

我想了解正在使用的所有程序以及正在使用的该软件的版本数。我不需要知道确切的版本号(尽管这会很好),只需要知道两个东西是不同的版本(或构建)即可。因为我对每个程序一无所知,所以我需要以通用方式完成此操作。这是怎么做到的? 最佳答案 这是一个很笼统的问题,所以我会给你一个笼统的答案。您将需要执行以下操作:通过调用EnumProcesses()枚举所有进程.对于每个进程ID,OpenProcess()获取进程句柄。每个进程句柄调用GetModuleFileNameEx()获取进程的主要可执行文件名。最后调用GetFileVersionIn

c++ - 如何限制特定进程的cpu使用率?

例如,对于WindowsC++中的特定进程,我如何将CPU使用率限制在10%? 最佳答案 您可以使用Sleep(x)-会减慢程序执行速度,但会释放CPU周期其中x是以毫秒为单位的时间 关于c++-如何限制特定进程的cpu使用率?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5579992/

windows - 闪存驱动器上的批处理文件 - 如何检查操作系统架构?

我正在设置一个可移植的开发环境。我正在尝试从批处理文件中获取我的闪存驱动器插入的当前系统的位数(32位或64位),以便我可以使用正确版本的IDE。这篇文章是一个开始:http://support.microsoft.com/kb/556009但它使用相对地址,当然我的闪存驱动器没有操作系统,所以代码每次都默认为i586。执行此操作所需的LOC是什么? 最佳答案 TobiasSchlegel的解决方案有一个警告:PROCESSOR_ARCHITECTURE环境变量仅返回当前进程的位数。由于WoW64仿真,在64位机器上,PROCESS

windows - 创建一个 Windows 进程以静默检查丢失的 DLL

我想检查是否为可执行文件安装了所有必需的DLL,因此我使用CreateProcess运行它,并检查退出代码。问题:Windows显示一个弹出窗口,提示未找到DLL,然后显示一个弹出窗口,提示程序已停止运行。如何避免所有这些错误弹出窗口? 最佳答案 您需要调用SetErrorMode传递SEM_FAILCRITICALERRORS。SetErrorMode是一个使用起来有点棘手的API,因为您需要将新模式与现有模式合并。陈峰explainshowtodoitcorrectly. 关于win

windows - 获取有关 Windows 上其他进程的信息

如何获取有关Windows中其他(与perl.exe无关)进程的信息?比如说,我有一个脚本想要监视有关所有firefox.exe进程的一些基本信息。我想做这样的事情:#!perl-wusewarnings;usestrict;useMagicModuleqw/read_process_info/;useData::Dumper;my$ps=MagicModule::read_process_info();printDumper($ps);然后看到类似的东西:$VAR=[{ProcessName=>'firefox.exe',PID=>1234,PirvateBytes=>2115354

c - 使用 C 的 Windows 进程间通信 (IPC)

我有一个用C语言和MicrosoftVisualC++编写的旧程序,我需要实现某种“保持事件”,因此我能够将进程间通信接收到一个新程序中,该程序将终止并重新启动如果在过去5秒内没有收到消息,则第一个。问题是我一直在寻找任何C语言的WindowsIPC教程或示例,但我找到的几乎所有内容都是针对C++的。任何帮助或资源?编辑:正如@Adriano在回答中所建议的那样,我正在尝试使用共享内存。但是由于我无法捕获的某种异常,启动程序正在被Windows终止。调用CopyMemory时发生。代码如下:#include"stdafx.h"#include"windows.h"#include"io

windows - 进程何时可以在 Windows 上更改其 PID?

有没有办法让进程在Windows上更改其PID?我发现了这个问题[1],但它仅针对Linux陈述了答案(“否”)。Windows呢?[1]ChangingtheProcessIdinlinux 最佳答案 不,您不能更改Windows进程的PID。 关于windows-进程何时可以在Windows上更改其PID?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10758393/

c++ - 有效地杀死一个windows进程

我正在编写一个C++QT桌面应用程序,旨在在Windows操作系统上运行。此应用程序应枚举所有正在运行的进程,并将终止特定进程(通过名称识别)。我知道有两种方法可以做到这一点:使用WindowsAPI。使用tasklist命令获取进程,使用taskkill结束进程。在代码风格、效率和性能方面哪个选项更好?还是有第三种选择? 最佳答案 效率和性能不应该让你担心,IMO。您可能不会每秒杀死1000个进程,所以如果一个进程花费10毫秒而另一个进程花费100毫秒,我怀疑没有人会关心。因此,选择其中一个的主要理由是易于编程和维护。用于枚举进程