草庐IT

【JavaEE】进程和线程

全部标签

c++ - 在不同的线程上解除分配 BSTR 是否安全?

如果我在一个线程上调用一个返回BSTR的COM方法,那么从另一个线程?COM调用完成后,我将不再在第一个线程上使用BSTR,因此应该不会有任何并发​​问题。但是考虑到COM与线程的关系,我不确定SysFreeString()是否依赖于在同一线程上分配的BSTR。示例代码:BSTRvalue=nullptr;HRESULThr=pComObject->DoSomething(&value);if(FAILED(hr)){returnhr;}std::threadt([value]{//dosomethingwithvalueSysFreeString(value);});t.detach

windows - 安排一个任务来监视某个进程的启动

我正在尝试将两个应用程序绑定(bind)在一起,这样当一个应用程序启动时,另一个应用程序也会启动。我希望在事件>应用程序或类似的东西下的任务计划程序中找到它,但只有一些应用程序在那里有事件源。于是研究发现可以通过注册WMI事件来检测进程启动。Register-WMIEvent-Query"SELECT*FROM__InstanceCreationEventWITHIN3WHERETargetInstanceISA'Win32_Process'ANDTargetInstance.Name='notepad.exe'"-sourceIdentifier'NotepadStarted'-ac

java - 当 java 作为服务运行时从 java 启动进程

我有一个使用prcorun(http://commons.apache.org/proper/commons-daemon/)作为Windows服务器运行的java进程;不幸的是,我必须启动一个用C/C++编写的外部遗留命令。两者ProcessmyProcess=Runtime.getRuntime().exec(command);和ProcessmyProcess=newProcessBuilder(command,arg).start();当java作为独立应用程序启动时运行良好,但当我将java作为服务启动时它会回复commandnotfound还有ProcessmyProces

c# - 如何查找进程属于哪个产品?

我需要获取有关流程产品的信息。举个例子,我需要知道进程WINWORD是属于Office2010还是Office2013。再比如adobecreativesuite这个软件。一般对于一个进程,不同的套件可以使用相同的名称,如何找出套件的版本。在服务中,我有一个从服务器检索的进程名称列表。我跟踪用户使用这些流程的时长,并将此信息发送回服务器。由于该服务将安装在多台计算机上,因此Office套件、Adobe套件或任何其他产品可能会有所不同,但该过程在每个套件中的名称可能相同。目前,在服务器中我无法识别该进程属于哪个版本。要求能够显示使用了多长时间,例如,MicrosoftWord2010以及

c++ - 获取实际不存在的进程加载模块

在检查MicrosoftWord的加载模块时,我遇到了一些非常奇怪的事情。我写了一个小程序来输出所有加载的DLL的位置。这是输出:当我试图在我的PC上找到这些模块时,我无法在给定位置找到它们,而是在另一个位置:我无法弄清楚为什么DLL的路径不同,而且我在Google中也找不到任何相关内容,尽管我怀疑它与VFS相关。也就是说,ProcessExplorer设法以某种方式显示了DLL的原始位置。谁能告诉我ProcessExplorer如何做到这一点,以及如何在我的代码中实现相同的结果?----------------编辑----------------我也尝试过注入(inject)DLL并

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

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

c++ - 加载的 OpenGL 函数是上下文特定的还是线程特定的? ( Windows )

考虑一个场景,其中2个渲染上下文(每个都属于它们自己不同的窗口)存在于2个独立的执行线程中。OpenGL函数指针是否需要分别加载和使用?或者gl*函数指针可以是全局的,只为给定的应用程序实例加载一次并由两个窗口或上下文使用吗?我问的原因是因为OpenGLFunctionLoadingDocs,在谈到加载wgl函数时,指出:ThisfunctiononlyworksinthepresenceofavalidOpenGLcontext.Indeed,thefunctionpointersitreturnsarethemselvescontext-specific.TheWindowsdoc

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