问题标签 [process.start]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Process.start:如何获得输出?
我想从我的 Mono/.NET 应用程序运行一个外部命令行程序。例如,我想运行mencoder。是否可以:
- 获取命令行 shell 输出,并将其写在我的文本框中?
- 要获得数值以显示经过时间的进度条?
security - Windows 安装程序安全/凭据问题
伙计们,
我目前有一个奇怪的问题,Visual Studio 2010 构建的 MSI ......
当我运行 msi 时,它会执行一些任务,然后执行我们构建的工具 - 然后该工具执行一些我们无法在自定义任务中完成的更高级的工作。
这里的问题是,当 msi 启动我的自定义构建工具时,它不会使用与我启动 MSI 相同的凭据(即我的管理登录名)执行它。
是否有我可以传递给 MSI 的参数来执行此操作?或者也许我可以在启动时将凭据传递给进程?
我的过程开始时Process process = Process.Start(procInfo)
没有花哨的东西。我还注意到传递参数化用户名/密码/域的能力,但这会因正在安装的用户而异 - 可以以某种方式从安装程序中提取吗?
欢迎任何帮助(或问题)。
戴夫
编辑:为清楚起见...我在我的域帐户下运行 MSI,我希望我的自定义进程在该“上下文”下运行。目前,它在 SYSTEM 帐户(而不是 mydomain\me)下启动(无论我是否以管理员身份启动)。如果有帮助,我正在使用 Windows Server DataCenter 版本...
我还应该补充一点,我认为这是一个政策问题,但我不知道要检查什么/在哪里检查......
c# - Process.Start() 不在同一用户下生成新进程
我一直认为,当您运行一个进程(domain\user) mydomain\myuser
时,使用Process.Start()
它时会使用相同的凭据启动这个新进程 - mydomain\myuser
。
我遇到的问题是我的Process.Start()
调用似乎是在 SYSTEM 帐户下创建一个进程,这导致我在启动的进程中出现权限问题(由于它所做的工作,它必须在管理员帐户下运行)。如果它改变了事情 - 我正在从windows installer 中生成这个过程(一个自定义构建的 exe) 。
有什么建议么?我已经阅读了有关 Windows 组策略(可能)对此产生影响的信息,但如果我说实话,它对我来说已经丢失了。
编辑:一个小片段:
其中exename
和commandLine
是此方法主体的参数:
c# - 如何确保 C# 的 Process.Start 将扩展环境变量?
我正在尝试创建一个这样的过程:
现在环境变量“red_root”肯定存在于衍生进程的环境变量中,但执行似乎没有扩展环境变量,因此找不到文件。如何让 Process.Start 扩展文件名中的环境变量?
c# - 无法从 C# 中的开始菜单快捷方式启动 powerpoint
我正在尝试基于开始菜单快捷方式启动程序。特别是,我正在尝试根据其开始菜单快捷方式启动 powerpoint。为此,我使用了 IWshRuntimeLibrary。
我能够成功找到快捷方式并创建 IWshShortcut 对象。但是,一旦我尝试运行快捷方式的支持应用程序(通过 Process.Start(shortcut.TargetPath,shortcut.Arguments)),就会发生 Win32Exception:
我能找到的唯一相关答案是在这个讨论中。我的项目已经构建为 x86 应用程序
由于它似乎相关,这里是我系统的一些背景。我正在运行 Windows 7 Professional 64 位,并安装了 Microsoft Office 2010。这是用 Visual Studio 2010 编写的控制台应用程序的一部分,针对 .NET Framework 4 客户端配置文件。
我正在研究以下替代解决方案:
Windows API 代码包:http
://code.msdn.microsoft.com/WindowsAPICodePack 没有 IWshRuntimeLibrary 的快捷方式:如何在 c# 中解析 .lnk
很抱歉缺少合理的链接。这是我的第一篇文章,显然我不能使用标签插入多个。
c# - 启动第二个实例时 Adobe Reader 进程失败
Process
在我们的 C# WinForms 应用程序中,我们生成 PDF 文件并通过该类启动 Adobe Reader(或任何默认系统 .pdf 处理程序) 。由于我们的 PDF 文件可能很大(大约 200K),我们处理该Exited
事件然后清理临时文件。
当文件被打开然后再次关闭时,系统会按要求工作。但是,当打开第二个文件时(在关闭 Adobe Reader 之前),第二个进程会立即退出(因为 Reader 现在正在使用它的 MDI 功能)并且在我们的Exited
处理程序中,我们的 File.Delete 调用应该会失败,因为它已被现在加入的 Adobe 进程锁定。然而,在阅读器中,我们得到:
打开此文档时出错。找不到该文件。
不寻常的是,如果我在文件删除之前放置一个调试器断点并允许它尝试(并失败)删除,那么系统会按预期运行!
我很肯定该文件存在,并且相当肯定该文件的所有句柄/文件流在开始该过程之前都已关闭。
我们使用以下代码启动:
注意:我们使用_pdfProcessDictionary
来存储对 Process 对象的引用,以便它们保持在范围内,以便可以成功引发 Exited 事件。
我们的清理/退出事件是:
可能的解决方案:
- 检测文件是否还在另一个进程中打开
- 检测到第二个进程还没有真正完全退出,而是在第一个进程中打开了文件
c# - How can a Windows Service start a process when a Timer event is raised?
I have created a Windows Service with Timer and in firing event of timer.Elapsed
I am creating a process (System.Diagnostics.Process.Start(exe path)
) at interval of 5 seconds. But this process does not get created on the firing of an event.
Is there any other way of doing this?
Thanks in advance.
c# - C# 找不到指定的文件
您好我正在尝试创建一个使用 msg.exe 通过网络发送消息的应用程序。
当我从 cmd 执行 msg 时,一切正常,但是当我以无法打开的形式打开 cmd 时,使用 cmd 转到 system32 文件夹并且文件未显示在那里,但是当我正常浏览或使用 cmd 时,它是和 evrything作品
在另一台计算机上对其进行了测试,应用程序运行良好,在此 1 上运行 win 7 64 位。
这是我用来打开 cmd 的代码示例:
我以管理员身份运行我也尝试过直接从 msg.exe 执行它,这似乎是 64 位的问题,适用于所有 32 位系统,但不适用于任何 64 位
编辑:好的,我在运行 64 位 32 位应用程序时发现问题无法在系统 32 文件夹中运行 64 位应用程序。当尝试访问此文件夹时,它会将您重定向到 %WinDir%\SysWOW64 解决方法是使用此路径 C:\Windows\Sysnative\file (%windir%\Sysnative)
c# - mono Process.Start 如何找到bash?
在我的 webapp 中,我执行以下操作。我知道它是正确的,因为我尝试了 1)将 start_sz 转储到文本文件 2)su www-data 3)复制/粘贴提取字符串并且它有效。
我得到了下面的例外,所以根据上面的推理,我相信它的说法 bash 找不到。
找不到指定的文件
在 System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process 进程)[0x00000] 在:0
在 System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process 进程)[0x00000] 在:0
在 System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x00000] 在:0
在 System.Diagnostics.Process.Start (System.String 文件名) [0x00000] in :0
在 MySite.QueueManager.MakeLink (System.String fn) [0x00000] in :0
在 MySite.QueueManager.ImageQueue2 () [0x00000] 中:0
在 MySite.QueueManager.ImageQueue () [0x00000] 中:0
那么,我该如何解决这个问题?基本上我需要在运行时在我的 asp.net 应用程序中创建一个硬链接(软链接也可以)。
我想也许我需要完整的 bash 路径,所以我尝试/bin/bash -c
了但是也没有用。
vb.net - 提供用户帐户时,System.Diagnostics.Process.Start 在启动时不起作用
我有一个应该在启动时运行的 vb.net 2008 应用程序。在满足某些条件后,PC 应该会重新启动。以下是失败的代码:
myUsername 和 myDomain 都是字符串,而 myPassword 是 SecureString。该应用程序在手动执行时可以正常工作,但在从启动时执行时会出现以下错误(通过放置在启动文件夹中或通过添加到注册表):
目录名无效
此外,当最后 3 个参数被省略并且用户拥有必要的权限时,程序可以正常执行。
如何在启动时使用特定的备用用户凭据强制重新启动?