草庐IT

【JavaEE】浅识进程

全部标签

windows - Win32 32位进程加载64位kernel32.dll

我发现32位Win32控制台应用程序正在一台运行WindowsServer2012R2Standard的特定机器上加载64位版本的kernel32.dll。使用DependencyWalker使用一个简单的HelloWorld应用程序,它看起来像这样:它在其他机器上正确加载32位kernel32。PATH的值即使不完全相同,但至少在不同机器上以完全相同的顺序包含相关路径。根据thispage来自Microsoft,DLL的搜索顺序是:当前进程的可执行模块所在的目录。当前目录。Windows系统目录。GetSystemDirectory函数检索此目录的路径。Windows目录。GetWi

windows - 从命令行获取进程 ID

我必须多次启动一个可执行文件,每次都使用不同的参数,我需要取回每个可执行文件的进程ID。我有使用过的命令行,我需要用这个命令启动的进程的进程ID。在这里我发现了一些其他问题:Get-CimInstanceWin32_Process-Filter"name='evolution4.exe'"|selectCommandLine它可以为我提供用于启动进程的命令行,但我现在需要对命令行而不是名称进行过滤,然后选择PID。我尝试用“commandLine”或“CommandLine”替换“name”,但没有结果,我什至不知道这样做是否正确。我应该在过滤器中放入什么?这个命令是否可以通过命令行而

c++ - 我想获取我在 C++ 中创建的每个进程的 PID,并在特定时间后终止每个进程

我是C++和Windowsapi的新手。我现在所拥有的是我只能打印应用程序第一个进程的PID。如果我要创建say4进程,我想获得他们的PID;在控制台中打印它并在特定时间后终止它们中的每一个(使用计时)。示例概述:1。对于process=1直到process=52。调用notepad.exe3。获取当前进程的PID,并在控制台打印。4。从此processID执行一些操作5。增量过程6。谁执行成功,谁就终止PID。到目前为止,这是我的代码。#include#include#include#include#include#include#includeusingnamespacestd;/

c++ - 是否可以模拟进程的访问 token ?

模拟用户的典型方法是调用LogOnUser()以获取用户的访问token并将此token传递给ImpersonateLoggedOnUser()以进行模拟。但是,这只会模拟调用线程的用户。有没有办法模拟或更改进程的访问token(主token)?支持我正在访问网络共享,并且生成了多个线程来访问该网络共享的不同部分。我是否必须在所有这些线程中模拟远程用户(有权访问该共享)?还是有一种方法可以先“模拟”进程,以便在生成新线程时,它们已经通过自动继承进程主token获得了访问权限? 最佳答案 不,这是不可能的。NtSetInformati

c++ - 为来自不同进程的窗口设置父级是否正确?

我有两个应用程序有两个不同的顶级窗口:App1--Window1App2--Window2现在,我正在App1中创建一个对话框Dlg1,我想将window2(App2)设置为父窗口。(那是因为我希望我的Dlg1位于Window2之上)。我通过将Window2设置为父级来创建对话框。有效。但这是正确的方法吗?跨进程设置父项是否存在任何已知问题\限制?我检查了windows文档,发现的信息不多。 最佳答案 这或多或少是受支持的,但确实有一些限制。您需要注意这两个进程以同一用户身份运行,并且您没有会阻止这两个进程通信的安全或提升问题。其次

windows - 在 Windows 上,如何找到给定进程正在使用的文件?有没有软件可以做到这一点?

我想知道给定进程正在读/写的文件。有显示这个的程序吗?在WindowsXP上。谢谢。我试过AutohotkeySpy、Spy++和ProcessExplorer。它们显示了很多细节,但没有显示正在访问的文件。 最佳答案 ProcessMonitorProcessMonitorisanadvancedmonitoringtoolforWindowsthatshowsreal-timefilesystem,Registryandprocess/threadactivity.Itcombinesthefeaturesoftwolegacy

windows - 从 .bat 启动独立进程

我有一个Hudson作业,它启动一个.bat脚本文件,它本身启动我的Jonas应用程序服务器和一些其他任务。脚本在我的奴隶上从Hudson正确启动,然后我的应用程序服务器启动但在我的Hudson作业结束时应用程序服务器被终止。这是因为在此过程中启动的所有进程共享相同的管道(stdin/sdtout/stderr),如此处所述http://wiki.hudson-ci.org/display/HUDSON/Spawning+processes+from+build.如您所知,这真的不是我想要的!实际上,在我上面描述的测试我的应用程序的任务之后,我有另一个Hudson任务启动了。因此,由于

c++ - 如何在 Windows 下用 C++ 在远程机器上启动一个进程

我在Windows下使用Dev-C++。我的问题是如何在远程机器上启动进程?我知道PsExec可以做到这一点,但如果可能的话,我想避免使用它。如果有人可以提供一些示例代码,我将不胜感激:)提前致谢!坎比 最佳答案 如果这很容易,黑客就会在所有暴露在互联网上的机器上启动恶意软件。PSExec通过LAN使用服务控制管理器从“此处”启动服务EXE,即您运行它的机器。它需要很多安全权限——例如管理员权限。如果您不想这样做,您可以查看SSH(有开源示例)或远程命令提示符(在Windows资源工具包中)。

windows - 有没有办法减少与进程外 COM 调用相关的开销?

我们的程序使用了一个进程外的COM服务器,并对其接口(interface)进行了数千次调用。这需要非常非常长的时间——大约50k次调用需要一分钟。COM组件供应商表示调用本身非常快,问题在于与进程外调用相关的开销。在这种情况下,是否可以进行任何调整以减少开销? 最佳答案 我真的不认为没有供应商的帮助可以做很多事情。因为从本质上讲,进程外的com对象将比进程内的对象需要更多的编码等。如果您能让供应商提供帮助,有两种可能的选择。请他们为您提供进程内版本(dll),然后您可以将其托管在COM+中并生成多个实例(如果合适),这可能会有所帮助

.net - 与崩溃转储相比,WinDbg 在附加到进程时显示不同的调用堆栈

我正在分析将native库与托管代码一起使用时发生的死锁。我正在使用WinDbg来调试问题,目的是保存转储,以便供应商可以在他们的场所观察到问题。当附加到有问题的进程时,我在任何调用堆栈之前看到以下消息:WARNING:Stackunwindinformationnotavailable.Followingframesmaybewrong.当直接附加到进程时,框架实际上看起来是正确的。但是,当我对该文件进行转储,然后在另一台机器上的WinDbg中打开转储时,其中一个堆栈帧不同(也显示了上述错误。)这最初让供应商感到难过,因为代码路径似乎是不可能的.我使用了转储:.dump/mafile