草庐IT

进程注入

全部标签

c++ - 如何显示来自另一个进程的模态对话框窗口?

我有一个32位MFC应用程序,它使用一个自定义库,重新编译成x64将是一场噩梦。一般而言,应用程序并不真正需要以64位运行,但在一种情况下除外——即呈现内容以显示在对话框窗口中,这可以从更大的寻址空间中获益。所以我的目标是“模仿”CDialog::DoModal方法,但用于另一个进程中的对话。我将该对话框窗口构建为独立的基于x64MFC对话框的应用程序。它以文件路径作为输入参数,在内部完成所有工作,并返回简单的用户选择:OK、Cancel。所以我从我的主要父进程中执行以下操作://ErrorchecksomittedforbrevityCStringstrCmd=L"D:\\C++\\

python - 子进程,从 STDOUT 读取时重复写入 STDIN (Windows)

我想从python调用外部进程。我正在调用的进程读取输入字符串并给出标记化结果,然后等待另一个输入(如果有帮助,二进制是MeCab标记器)。我需要通过调用此过程来标记数千行字符串。问题是Popen.communicate()工作但在给出STDOUT结果之前等待进程结束。我不想继续关闭和打开新的子流程数千次。(而且我不想发送整个文本,将来很容易超过数万行。)fromsubprocessimportPIPE,PopenwithPopen("mecab-Owakati".split(),stdin=PIPE,stdout=PIPE,stderr=PIPE,close_fds=False,un

c++ - 当程序可见或最小化时进程 ID 发生变化

这个问题在这里已经有了答案:NameofprocessforactivewindowinWindows8/10(4个答案)关闭5年前。我正在尝试获取程序的进程ID(PID),但由于某些奇怪的原因,PID发生了变化。当目标程序(Alarms&Clock)可见时,它给了我错误的PID,而将程序最小化给了我正确的PID。我猜测最小化目标程序暂停它的进程,从而允许读取它。但是,即使进程正在运行,简单地读取PID也不应成为限制。有人知道我做错了什么吗?目前尝试过的方法:以管理模式运行为64位编译为32位编译这是描述问题的一段有效的、简洁的代码:#include#include#includein

windows - 结束进程和结束进程树之间的区别

Windows任务管理器中的Endprocess和EndprocessTree有什么区别,Endprocesstree会杀死父进程下的所有子进程吗? 最佳答案 结束进程:将结束/杀死/关闭当前应用程序。结束进程树:将结束/终止/关闭当前应用程序及其正在使用的所有相关服务和应用程序。了解更多http://www.tomshardware.com/forum/101540-45-process-tree-processhttps://superuser.com/questions/794052/end-process-end-proce

创建隐藏进程(窗口不可见)

我使用CreateProcess()并将启动标志设置为STARTF_USESHOWWINDOW和SW_HIDE以在后台启动应用程序并隐藏其窗口。我这样做是为了运行计划的维护任务,我不想被Windows打扰。在大多数情况下,窗口是隐藏的,但在某些情况下,程序的窗口会在您面前突然弹出(例如Google的Chrome-我开始使用不同的应用程序进行测试,看看这是否曾经是一个问题,但不是...).这种情况在WindowsXP中发生的次数较少,但在Vista中发生的次数很多。是否有我缺少的标志?有没有其他方法可以创建隐藏窗口的进程?谢谢!我的示例代码是:char*ProgramNameSTARTU

windows - 使用 gflags +ust 可以更快地增加进程内存

在尝试查找Windows应用程序中的一些内存泄漏时,我遇到了gflags的问题。当我打开ust标志(为了收集内存分配堆栈跟踪)时,我的应用程序的内存增加速度比关闭该标志时快得多(它在10分钟内达到800MB最小大约。这与我在关闭标志时获得的50-100MB/天相去甚远。我读到堆栈跟踪的最大值为32MB,所以我想这应该不是问题。计算机是4xIntel(R)Xeon(R)CPUE5410@2.33GHz。如果有人能给我一些提示,我将不胜感激。谢谢! 最佳答案 堆栈跟踪数据库并不是ust标志的唯一影响。它还向每个分配添加至少32个字节,以

windows - WMIprvse 进程在 2008 服务器 R2 上泄漏内存

我有一个在虚拟机上运行的Windows2008R2服务器。我的.NET服务在此服务器上运行,定期查询WMI,例如:从Win32_Service中选择ProcessId...一两天后,WMIprvse占用了500M内存,WMI查询开始出现内存不足异常。这篇文章好像在讲这个问题:"http://support.microsoft.com/kb/958124"我看到其他文章说Microsoft已经意识到这个问题并且不会在下一个主要版本发布之前发布修复程序。http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/256eb40c-d

windows - 如何创建一个不是其创建过程的子进程的过程?

我有两个进程,A和B。在某个时候A创建B。在创建B之后,如果A的进程tree被杀死,我希望B仍然存在。我正在使用CreateProcess()创建B,但我似乎找不到任何方法让它在没有子进程的情况下创建进程。与ShellExecuteEx()相同,但我可能遗漏了一些标志。有人知道我可以用什么来做到这一点吗?编辑:我忘了提到两个进程都需要一个HANDLE或进程ID给另一个 最佳答案 您可以尝试进程A创建进程C,进程C创建进程B,然后进程C将立即结束(终止)。在进程B中,仅存在有关直接父进程(不再运行的C的进程ID)的信息,而不存在有关进

windows - 在运行时更改进程名称

对于A.EXEPE文件,如果程序以测试模式运行,我想将进程名称更改为“A_TEST.exe”。如果程序以安全模式运行,我想更改为“A_SAFE.exe”文件名必须相同(A.EXE)这可能吗? 最佳答案 如果“进程名称”是显示任务管理器的名称-您只能从ring0更改它。在ring3中,您只能更改默认窗口标题。#includePEB*peb=(PEB*)__readfsdword(0x30);wchar_tnewTitle[]=L"NewTitle";UNICODE_STRINGnewTitleUStr={sizeof(newTitle

windows - postgres- 在管理员帐户下启动进程

是否可以使用具有“管理”权限的用户帐户启动postgres进程?我在WindowsXP上。--显示的错误是---(不是真正的错误,这是一项安全功能)TheservermustbestartedunderanunprivilegeduserIDtopreventpossiblesystemsecuritycompromises.Seethedocumentationformoreinformationonhowtoproperlystarttheserver.当前的解决方法是创建普通用户并在其下运行进程。我正在寻找的是启动数据库、执行一些操作并将其关闭作为构建过程的一部分的快速方法。