问题标签 [processstartinfo]
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# - ProcessStartInfo 挂在“WaitForExit”上?为什么?
我有以下代码:
我知道我开始的过程的输出大约是 7MB 长。在 Windows 控制台中运行它可以正常工作。不幸的是,以编程方式,这无限期地挂在WaitForExit
. 另请注意,此代码不会因较小的输出(如 3KB)而挂起。
StandardOutput
是否有可能内部ProcessStartInfo
无法缓冲 7MB?如果是这样,我应该怎么做?如果没有,我做错了什么?
c# - 你如何运行一个你不知道参数从哪里开始的程序?
题主不多说,一句话就不好问了。我必须执行一些从注册表中读取的程序。我必须从有人保存整个路径和参数的字段中读取。
我一直在使用 System.Diagnostics.ProcessStartInfo 设置程序的名称及其参数,但我发现了各种各样的参数,我必须解析这些参数才能将进程可执行文件保存在一个字段中,并将其参数保存在另一个字段中。
有没有办法按原样执行整个字符串?
c# - 使用 Process.Start 启动 Firefox:设置用户名和密码时 Firefox 未启动
当我尝试使用 Process.Start 和 ProcessStartInfo (.NET) 启动 Firefox 时,一切似乎都正常。但是当我指定另一个帐户(用户的成员)的用户名和密码时,似乎什么也没发生。相同的代码适用于 Calc.exe 或 IE。这很奇怪。有任何想法吗?
这是代码:
谢谢大家。
c# - 使用 .NET Process.Start 运行时挂起进程——出了什么问题?
我在 svn.exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其进行处理,但对于某些输入,它偶尔且可重现地挂起并且无法完成。例如,一个调用是 svn list:
当我只是从命令外壳执行此命令行时,它运行良好,但它挂在我的应用程序中。我运行它的 c# 代码是:
这需要完整的 5000 毫秒并且永远不会完成。延长时间没有用。在单独的命令提示符下,它会立即运行,所以我很确定它与等待时间不足无关。然而,对于其他输入,这似乎工作正常。
我还尝试在这里运行一个单独的 cmd.exe(其中 exe 是 svn.exe 并且 args 是原始 arg 字符串),但仍然发生挂起:
我可以在这里搞砸什么,我该如何调试这个外部进程的东西?
编辑:
我现在才开始解决这个问题。Mucho 感谢 Jon Skeet 的建议,这确实很有效。不过,我对我的处理方法还有另一个问题,因为我是一个多线程新手。我想就改善任何明显的缺陷或任何其他愚蠢的东西提出建议。我最终创建了一个小类,其中包含标准输出流、一个保存输出的 StringBuilder 和一个告诉它何时完成的标志。然后我使用了 ThreadPool.QueueUserWorkItem 并传入了我的类的一个实例:
... 和 ...
这似乎可行,但我怀疑这是最好的方法。这合理吗?我能做些什么来改进它?
c# - C# 启动一个新的 MailTo 进程和 HTML URL 编码
我为 Process 类创建了一个新的 MailTo 扩展方法,它只是用一个包含所需 mailto 参数的新 ProcessStartinfo 填充 Process。我创建了一个名为 FormatMailToArgument 的方法(最后右),它将控制字符转换为它们的 Url Encoded equivelants 并且已经测试了它并且它有效但是有没有更好的方法来做到这一点?
c# - Win32Exception: 目录名无效
我试图在运行 Vista 并启用了 UAC 的 2 台不同计算机中以具有管理员权限的不同用户身份运行进程,但在其中一台计算机中,我得到一个 Win32Exception,显示“目录名称无效”
谁能告诉我我的代码有什么问题?
更新
执行上述代码的应用程序具有 requireAdministrator 执行级别。我什至将工作文件夹设置为“Path.GetDirectoryName(myFile)”和“New System.IO.FileInfo(myFile).DirectoryName”
c# - perl.exe 不能被 ProcessStartInfo 调用
我正在尝试使以下代码正常工作,以便可以从我的 c# 程序中调用 perl 脚本。我正在 xp service pack3 上使用 Visual stdio 2008 进行开发。
我验证了 test_perl.pl 是否存在,如果我将 perl.exe 更改为 notepad.exe,则上面的代码可以工作。但是如果我使用 perl.exe,消息框是空的。
无法弄清楚为什么这是错误的。如果您知道原因,请帮助我。
谢谢
c# - 从控制台应用程序发送输入/获取输出 (C#/WinForms)
我有一个带有 3 个控件的表单:
- 用户输入命令以发送到控制台应用程序的文本框,
- 用于确认要发送的命令的按钮和
- 用于显示应用程序输出的只读文本框。
我想要的是用户在第一个文本框中输入命令,按下按钮输入并通过第二个文本框接收反馈。
我知道如何使用ProcessStartInfo.RedirectStandardOutput
,但是,当我使用StandardOutput.ReadToEnd()
.
我查看了异步Process.BeginOutputReadLine()
,但是,即使我的应用程序没有挂起,不知何故我在文本框中没有任何响应,它绝对什么也没做。
这是我的代码:
有什么办法可以让我顺利运行吗?谢谢。
.net - How can one specify the window title for a console application started with System.Diagnostics.Process.Start()?
I am starting a new instance of a console application from my .NET code using the Process.Start()
method. I was wondering if I can specify the title of the console window hosting the spawned process. Could not find anything suitable in ProcessStartInfo
.
As a last resort I can P/Invoke to talk to Win32 API directly, but I'd rather not.
Any ideas?
Thanks.
asp.net - taskkill Mysql from .ASPX -- 权限问题?
我们的 mysql 实例在备份期间偶尔会锁定。目前我们必须通过VPN进入企业网络(获取工作IP),远程桌面进入服务器,打开任务管理器,手动杀死mysqld-nt.exe进程。
我们没有做所有这些,而是尝试创建一个简单的网页,我们可以登录该网页来终止并重新启动服务。
以下代码块连接在我们的新 .aspx 页面中,可以在我的本地桌面上正常工作(在 VS 调试模式下运行),但在推送到服务器时不执行任何操作(没有错误或任何事情):
如果我从服务器上的命令提示符运行“taskkill /IM mysqld-nt.exe /F”,它会终止服务。所以我认为这可能是一个权限问题,但我并不积极。
谁能发现上面的代码块有问题,或者告诉我如何调整权限以便.Net 可以停止/启动这个过程?
谢谢你的帮助,山姆