草庐IT

【JavaEE】浅识进程

全部标签

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" 最佳答案

c++ - 使用 COM 在 Windows 上的本地计算机上进行进程间通信

我正在研究使用COM和C++在Windows上进行进程间通信的选项。我找到了thisarticleonMSDN,提供了Windows的进程间通信选项列表,COM就是其中之一。但是,不幸的是,COM选项只列出了很多细节。有人对如何在Windows上使用COM进行进程间通信有任何关于文档或其他资源的指示吗?我对与远程机器通信不感兴趣(所以:没有DCOM);我只对同一台本地计算机上的进程间通信感兴趣。想法是定义一些自定义的COM接口(interface)来实现一些自定义的通信协议(protocol),然后有一个服务器程序和一个客户端程序(每个程序都在自己的进程中,运行在同一台本地机器上),并

java - Jconsole 和 JPS 不显示任何进程。我如何监控我的过程?

我正在尝试使用Jconsole(JDK1.8.0_31)监视JVM中正在运行的进程。但是,由于窗口已损坏,我在Jconsole的启动窗口中看不到任何进程。本地进程列表似乎没有设置高度参数。至少它看起来是这样的:我在网上查了类似的问题。我发现%TMP%的奇怪权限设置导致Jconsole出现问题。我检查了一下,我拥有我需要的所有权限(读/写等)。好吧,既然我不轻易放弃,我还发现Jconsole是以Java进程的PID为参数的。在尝试查找PID时,我注意到JPS没有显示任何进程或JVM,即使它们显然正在运行(我安装了不止一个JDK。尽管这无关紧要,但我还检查了我是否正在使用JPS来自相同的$

windows - 有什么方法可以将 token 设为 "seal",这样子进程就无法继承它了吗?

我正在尝试找到一种方法,允许单个进程作为高级用户启动,但禁止此进程使用它的token启动任何子进程——在某种程度上,有点“密封”token。这背后的原因是为了防止用户启动cmd.exe并获得对系统的完全访问权限。我查看了进程权限常量,但没有看到任何可用于实现此功能的内容。 最佳答案 我不认为你可以密封token,但你可以使用作业对象控制子进程的创建:staticBOOLSpawnProcessAndTerminateGrandchildren(PTSTRCmdline){HANDLEhJob=CreateJobObject(0,0)

python - 子进程窗口快速消失

在python中,我使用subprocess.Popen()来启动几个进程,我想调试这些进程,但是这些进程的窗口很快就消失了,我没有机会看到错误消息。我想知道有什么方法可以阻止窗口消失或将窗口中的内容写入文件以便稍后看到错误消息。提前致谢! 最佳答案 您可以使用stdout和stderr参数将输出写入文件。示例:withopen("log.txt",'a')aslog:proc=subprocess.Popen(['cmd','args'],stdout=log,stderr=log)

c++ - 在注入(inject)另一个进程时控制 dllmain() 调用的顺序

有没有办法以某种方式控制DLL的加载顺序?这主要与存在于DllMain()函数中时必须遵守的限制有关。BOOLWINAPIDllMain(HINSTANCEhinstDLL,DWORDfdwReason,LPVOIDlpReserved){switch(fdwReason){caseDLL_PROCESS_ATTACH:{SHGetKnownFolderPath()}caseDLL_PROCESS_DETACH:{DllMainProcessDetach(hinstDLL,lpReserved);returnTRUE;}default:break;}returnTRUE;}在那个特定的

c# - 如何在 Windows 下通过调用启动一个进程?

我有以下在Linux下工作的代码:ProcessStartInfostartInfo=newProcessStartInfo();//SetintheprocesstheexecutableandargumentsstartInfo.FileName="ps";startInfo.Arguments="a";Processproc=Process.Start(startInfo);proc.WaitForExit();returnproc.ExitCode;但是,当我尝试在Windows下使用进程执行简单命令时:ProcessStartInfostartInfo=newProcessS

windows - 用于检查电池状态变量并在 if 语句中使用它的脚本,是否有任何脚本可以使 .bat 文件每分钟作为隐藏进程运行

目前,我正在尝试创建一个脚本文件,如果它检测到笔记本电脑正在使用电池而不是交流电运行,它将启动其他程序。前提是我使用的是Windows8.1。我创建了一个.bat文件并输入了以下脚本:@ECHOOFFREMToCheckthebatterystatus,providingthat2isconnectedtotheACWMICPathWin32_BatteryGetBatteryStatusREMCheckthecontentofbatterystatusvariableIFNOT"%BatteryStatus%"=="2"(echolaptopstartedtouseitsbatter