我想在Windows上用C++将程序的进程ID(通过程序本身)写入文件(首选二进制文件)。我看到函数的使用:GetProcessId,但我没有设法使用它。1)如何使用?2)如何将值转为二进制并写入文件?谢谢 最佳答案 您可以使用GetCurrentProcessId()获取当前进程的进程ID。然后你可以使用ultoa使用基2(和大小为sizeof(DWORD)*8+1)的缓冲区将该数字转换为字符串,然后您可以使用ofstream或fwrite将其写入文件。例子:DWORDid=GetCurrentProcessId();charbu
我正在创建一个基本上扫描系统以查看特定进程是否正在运行的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
我正在寻找一种简单但可靠的解决方案来配置唯一的部件号。我一直在考虑使用GUID来识别来自不同客户端(台式机、电话等)的请求,然后根据请求GUID的插入日期时间顺序分配PN。问题:SQLAzure是适合使用的服务吗?对此有标准方法吗?谢谢。 最佳答案 这与“在云上”没什么关系,而是一个普遍的分布式计算问题。您的问题中没有足够的信息来完全理解您的要求,但我收集到的是您需要为请求部件号的服务消费者分配一个唯一编号。第一个想法是GUID是一个数字(128位长)。每当您需要分配零件编号时,您不能只生成一个GUID吗?如果需要,您可以将GUID
在Linux上,我们有pthread_kill()来执行此操作。我正在尝试为它找到Windows对应项。换句话说,给定一个线程id,有没有办法判断线程是否还在运行?GetExitCodeThread()是我发现的最接近的方法,但是,它需要线程句柄而不是线程ID作为其参数。 最佳答案 您不应该为此目的使用线程ID:线程ID可以重复使用,因此如果您获得线程ID,则该线程退出,另一个线程可以使用相同的线程ID启动。句柄不存在这个问题:一旦一个线程终止,该线程的所有句柄都会反射(reflect)该线程的终止状态。您可以使用OpenThrea
我正在将日志语句写入文件,并希望在每一行前加上生成该语句的线程ID。似乎GetCurrentThreadId函数总是返回一个GetCurrentThreadId返回一个DWORD值,它显然可以包含大数字。谢谢。 最佳答案 GetCurrentThreadID的MSDN页面说:thethreadidentifieruniquelyidentifiesthethreadthroughoutthesystem.因此,线程ID在整个系统中都是唯一的,而不仅仅是您的进程,很有可能在某个时候返回一个大于4位十进制数的值。
我如何告诉程序“test.exe”(这是一个控制台应用程序)将其结果输出到文件。例如通常程序可以通过在提示符下执行test.exe>output.txt来输出数据。如何在这个声明中做到这一点?Process.Start("test.exe","\""+exename+"\"").WaitForExit(); 最佳答案 使用StandardOutputMSDN页面示例中的属性://Startthechildprocess.Processp=newProcess();//Redirecttheoutputstreamofthechild
我正在与PEB合作。我已经设法进入_RTL_USER_PROCESS_PARAMETERS。我的目标->仅通过使用二进制文件(.exe文件)来了解argc和argv的内存地址。(如果可能的话,它们的值也是如此)我当前的方法->访问命令行字符串(位于结构_RTL_USER_PROCESS_PARAMETERS内。我通过在C程序中嵌入asm设法进入了它moveax:fs[0x30]mov[PEBaddress],eaxmovebx,[eax+0x10]mov[ProcessParameters],ebx我通过在windows调试器下研究二进制文件得到了偏移量0x30和0x10现在在Proc
我正在编写一个脚本,该脚本应检查某些系统事件(例如打开文件或更改注册表项)并根据这些事件启动进一步的操作。但是我还没有找到一种干净的方法来将信息放入我的脚本中。我正在寻找一种方法将SysinternalsProcessMonitor的输出输入到另一个程序中。这应该在没有用户交互的情况下近乎实时地发生;所以保存到CSV/XML中并使用它是行不通的。我已经检查过使用支持文件,但这是ProcessMonitorPML格式,我没有发现任何地方都有记录。有人知道如何将ProcessMonitor的输出输入到我的脚本中吗?或者其他(不太困惑)的方法来将打开的文件、注册表项等的实时列表获取到pyth
我想为一个窗口设置一个定时器,但我不知道那个窗口是否已经有定时器在运行。如果是这样,我不想覆盖其中任何一个,所以我需要选择一个免费的计时器ID。MSDN对我的情况没有帮助,他们描述了几乎所有的排列,除非你有一个hwnd并且不想更换计时器。因此,如果可以将0或其他内容作为nIDEvent并让Windows自动创建一个新的uniqeid,或者是否有某种方法可以列出当前正在运行的计时器以便我可以避免使用其中的任何一个?SetTimer的MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85