草庐IT

PROCESS_LOCAL

全部标签

windows - 如何在从 Win32::Process 启动的 Perl 进程中获取输出?

我有一个Perl脚本,它通过Win32::Process在新控制台中启动另一个Perl脚本如下:Win32::Process::Create($ProcessObj,"C:\\Perl\\bin\\perl.exe","$path_to_other_perl_script",0,NEW_CONSOLE,".");$ProcessObj->Suspend();$ProcessObj->Resume();$ProcessObj->Wait(0);问题是,在创建的新控制台中没有标准输出。如果我不使用新的控制台选项,脚本会在后台静默运行。如果我使用cmd.exe启动Perl脚本,我可以很好地看

使用 HKEY_LOCAL_MACHINE\Software\WOW6432 节点的 Windows 32 或 64 位

我正在寻找一种非常简单的方法来确定客户使用的Windows版本是32位还是64位。我知道有一些使用.NEt的方法,但我希望避免使用它们。我只是想使用类似于下面伪代码的东西,并想知道这种方法是否可靠。IfRegistryKeyexists(HKEY_LOCAL_MACHINE\Software\WOW6432Node)ThenAssume64bitelseAssume32bit谢谢!编辑:更具体地说,我知道有几种不同的方法可以实现查明操作系统是32位还是64位的目标。但我想知道上面单独的方法是否可靠。 最佳答案 我假设您在32位进程中

c# - 访问 Windows 注册表 LOCAL_MACHINE 中的键

我在HKEY_LOCAL_MACHINE\Software\MyAppName中创建了一个key(使用regedit(我重新启动)),但是当我尝试将它们全部列出时,“MyAppName”没有显示...:(有什么线索吗?rkey=Registry.LocalMachine.OpenSubKey("Software");foreach(stringsubkeyinrkey.GetSubKeyNames()){WriteToLogFile("subkey:"+subkey);} 最佳答案 我将运用我的心理调试能力,并猜测您拥有(a)64位

C# - 告诉 Process.Start 等待上一个实例完成

我目前正在调用一个从文本文件中导入参数的进程,虽然当读取文本文件的一行时它工作正常,但文本文件的第二行紧随其后执行。有没有办法告诉Process.Start等到上一个命令完成?staticvoidMain(string[]args){foreach(stringexenameinSystem.IO.File.ReadAllLines("test.txt")){Process.Start("test.exe","\""+exename+"\"");}} 最佳答案 staticvoidMain(string[]args){foreach

Java 运行时环境 HKEY_LOCAL_MACHINE 错误

我试图在我的WindowsXP机器上摆脱旧版本的Java(因为我还有1.6和1.7)。很好地卸载1.6我收到有关Java运行时环境的错误。当我尝试启动Java控制面板时,出现以下错误:Thesystemcannotfindtheregistrykeyspecified:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JavaRuntimeEnvironment\1.7.0_05我已尝试重新安装Java,但无济于事。而且我无法完全删除Java,因为每当我尝试时它都会给我一个错误,说安装有错误。具体来说:Fatalerrorduringinstallation.知

c# - 将 ">"添加到 Process.Start 实例

我如何告诉程序“test.exe”(这是一个控制台应用程序)将其结果输出到文件。例如通常程序可以通过在提示符下执行test.exe>output.txt来输出数据。如何在这个声明中做到这一点?Process.Start("test.exe","\""+exename+"\"").WaitForExit(); 最佳答案 使用StandardOutputMSDN页面示例中的属性://Startthechildprocess.Processp=newProcess();//Redirecttheoutputstreamofthechild

windows - 帮助 : MS Virtual Disk Service to Access Volumes and Discs on Local Machine

这是我的代码,通过它我成功初始化了VDS服务并获取了包,但是当我在IVdsPack对象上调用QueryVolumes时,我能够获取IEnumVdsObjects但无法通过IEnumVdsObject::Next方法获取IUnknown*数组,它用IUnkown*=NULL返回S_FALSE。所以这个IUnknown*不能用于IVdsVolume的QueryInterface下面是我的代码HRESULThResult;IVdsService*pService=NULL;IVdsServiceLoader*pLoader=NULL;//LaunchtheVDSServicehResult=

windows - 使用 _RTL_USER_PROCESS_PARAMETERS

我正在与PEB合作。我已经设法进入_RTL_USER_PROCESS_PARAMETERS。我的目标->仅通过使用二进制文件(.exe文件)来了解argc和argv的内存地址。(如果可能的话,它们的值也是如此)我当前的方法->访问命令行字符串(位于结构_RTL_USER_PROCESS_PARAMETERS内。我通过在C程序中嵌入asm设法进入了它moveax:fs[0x30]mov[PEBaddress],eaxmovebx,[eax+0x10]mov[ProcessParameters],ebx我通过在windows调试器下研究二进制文件得到了偏移量0x30和0x10现在在Proc

python - 在另一个程序/脚本中实时使用 Sysinternals Process Monitor 的输出

我正在编写一个脚本,该脚本应检查某些系统事件(例如打开文件或更改注册表项)并根据这些事件启动进一步的操作。但是我还没有找到一种干净的方法来将信息放入我的脚本中。我正在寻找一种方法将SysinternalsProcessMonitor的输出输入到另一个程序中。这应该在没有用户交互的情况下近乎实时地发生;所以保存到CSV/XML中并使用它是行不通的。我已经检查过使用支持文件,但这是ProcessMonitorPML格式,我没有发现任何地方都有记录。有人知道如何将ProcessMonitor的输出输入到我的脚本中吗?或者其他(不太困惑)的方法来将打开的文件、注册表项等的实时列表获取到pyth

c# - Process.Start 在 Server 2012 上挂起

我可以找到很多讨论Process.Start的线程,但没有一个听起来像我的。下面的代码已在WindowsServer2003和2008上运行多年。我现在正尝试在2012年安装相同的应用程序,但尽管“My.exe”启动,Process.Start本身挂起-因此“已启动”从未被记录。任何人都可以提出可能是什么问题吗?非常感谢,迈克尔ProcessStartInfopsi=newProcessStartInfo("C:\\My.exe");psi.UseShellExecute=false;psi.LoadUserProfile=false;psi.WindowStyle=ProcessWi