草庐IT

多进程架构

全部标签

c++ - 如何获取当前进程的线程 ID 列表

EnumProcess或CreateToolhelp32Snapshot函数帮助我们获取进程信息,包括进程ID。但是我想知道获取当前进程的线程id列表。DWORDGetMainThreadId(DWORDpId){LPVOIDlpThId;_asm{moveax,fs:[18h]addeax,36mov[lpThId],eax}HANDLEhProcess=OpenProcess(PROCESS_VM_READ,FALSE,pId);if(hProcess==NULL)returnNULL;DWORDtId;if(ReadProcessMemory(hProcess,lpThId,&t

windows - 调试启动后终止的进程

我需要调试一个在启动后立即终止的进程(从外部exe启动),所以我没有时间附加。我该如何调试它?UPD我没有那个外部exe的源代码;我可以反编译,但不可能编译回来 最佳答案 您需要在暂停状态下启动您的调试进程。VisualStudio能够做到这一点,只需像这样调用调试器:devenv/debugexeyourprog.exe该进程将开始挂起,因此您将能够在崩溃前迭代第一条指令。查看详细答案here. 关于windows-调试启动后终止的进程,我们在StackOverflow上找到一个类似的

c++ - 如何在C++中为Windows中的用户获取最大进程数

我有一个非常琐碎的问题,但我无法在Google中得到任何答案。据我所知,用户可以创建的最大进程数是有限制的。我怎样才能将这个变量放入C++中?我正在使用VisualC++,VisualStudio2013。提前致谢。 最佳答案 我认为没有任何此类上限,但这可能取决于您的虚拟堆栈空间。您也可以查看PushingtheLimitsofWindows:ProcessesandThreads 关于c++-如何在C++中为Windows中的用户获取最大进程数,我们在StackOverflow上找到

c++ - 如何在 Windows 内核模式下获取进程使用的 CPU 时钟周期?

正如标题所暗示的,我对获取仅在内核模式下进程使用的CPU时钟周期很感兴趣。我知道有一个名为“QueryProcessCycleTime”的API可以返回CPU时钟进程的线程使用的周期。但这个值包括在用户模式和内核模式下花费的周期。我怎样才能获得仅在内核模式下花费的周期?我需要使用性能计数器来获取它吗?如果是,我应该使用哪一个?预先感谢您的回答。 最佳答案 我刚刚发现一篇有趣的文章,几乎描述了您的要求。在MSDNInternals上.他们在那里写道,如果您使用的是C#或C++/CLI,您可以轻松地从System.Diagnostic.

windows - 在 Windows 上使用文件关闭进程

我想关闭所有在Windows上使用文件的程序。我有一个我在Linux上想要的例子:pids=`lsof|grep$fic|grep-v"grep"|tr-d'\t'|cut-d""-f2`谢谢! 最佳答案 请将标签从bash更改为批处理并安装Handle这样就解决了目的 关于windows-在Windows上使用文件关闭进程,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2321

java - 如何通过java程序获取exe运行的进程id

我正在通过javaruntimeapi运行一个exeProcessprocess=runTime.exec("cmd.exe/cstartabc.exe"+Id,null,newFile("D:/My"));并像这样使用jna检索进程ID-Kernel32.INSTANCE.GetProcessId((Long)f.get(process));但返回的进程ID不是abc.exe而是cmd.exe.....我需要abc.exe的进程ID。不知道如何获得任何人都可以帮助。 最佳答案 process是java.lang.Process类型

python - 在 Windows psutil 中查找进程是否正在运行

process_name="CCC.exe"forprocinpsutil.process_iter():ifproc.name==process_name:print("have")else:print("Donthave")我知道CCC.exe正在运行。我用2.7和3.4python尝试了这段代码我也导入了psutil。然而,该过程在那里,但它正在打印“没有”。 最佳答案 name是proc的一个方法:process_name="CCC.exe"forprocinpsutil.process_iter():ifproc.name

windows - 是否需要 FlushFileBuffers 才能跨多个进程同步文件数据?

我有一个被许多进程读/写的文件,它们使用互斥锁来序列化读/写。是否需要在ProcessA中的WriteFile之后调用FlushFileBuffers以便ProcessB可以看到这些更改?或者ProcessB是否可以保证看到ProcessA所做的更改,假设该文件的操作系统磁盘缓存在所有进程之间共享?调用WriteFile后,我没有调用文件上的CloseHandle,我让它在所有进程中保持打开状态,但它们有FILE_SHARE_READ和FILE_SHARE_WRITE标志传递给CreateFile。这是跨WindowsXP到Windows8.1工作所必需的-我发现调用FlushFile

等待输入的 Java ProcessBuilder 进程

当通过ProcessBuilder(特别是“GetMac/s”)运行命令行命令时,如果它抛出错误或正常返回,我可以读取错误或它返回的MAC地址,但如果它提示用户输入(某些pc的在网络上使用getmac时需要密码)进程将挂起等待密码。这是从命令行运行时命令的作用:这是我在该过程中使用的代码:packagetesting;importjava.io.IOException;classtest1{publicstaticvoidmain(String[]args){StringhostName="testpc";ProcessBuilderbuilder=newProcessBuilder(

windows - 如果进程未运行,Windows 命令行启动

如果应用程序尚未运行,我想自动启动它(特别是Outlook.exe)。我想通过Windows7任务计划程序执行此操作,这意味着解决方案here当我试图通过用&替换换行符在一行上执行它时,它不起作用。无论它正在运行还是关闭,它都会启动outlook。tasklist/FI"IMAGENAMEeqoutlook.exe"2>NUL|find/I/N"outlook.exe">NUL&if"%ERRORLEVEL%"=="0""C:\ProgramFiles(x86)\MicrosoftOffice\Office14\OUTLOOK.EXE" 最佳答案