草庐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 - 创建一个 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毫秒,我怀疑没有人会关心。因此,选择其中一个的主要理由是易于编程和维护。用于枚举进程

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

有没有办法在Windows中使用命名共享内存设置权限,以便由进程而不是用户完成访问控制?我想让一个程序创建内存,传递句柄或传回PID,以便客户端进程可以访问内存。应拒绝所有其他进程访问。谢谢 最佳答案 访问控制仅由安全主体进行,安全主体可以是用户、组、计算机等。如果你有一个你想与另一个进程共享的对象,你可以使用DuplicateHandle. 关于windows-Windows上的安全命名共享内存,因此只有特定进程可以打开,我们在StackOverflow上找到一个类似的问题: