问题标签 [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# - 如何在 WPF 中安排 Process.Start
我正在尝试在 WPF 中重新启动应用程序。
我尝试了以下方法:
它不起作用,因为应用程序设置为单实例应用程序。
然后我厌倦了这个:
它不起作用,因为一旦我们终止进程,它就不会到达第 2 行
有没有办法安排 .Start 以便我不会遇到问题 #1。
.net - Process.Start 性能
我搜索了互联网和这个网站以寻找我的问题的答案,但无济于事。我完全没有想法,迫切需要答案!
问题:
当我从 .NET 环境(使用 Process.Start())运行特定的处理器密集型可执行文件时,该过程需要五分钟以上才能完成。相反,当我从命令提示符 (cmd.exe) 运行具有相同参数的相同可执行文件时,它会在 10-15 秒内完成执行。我所做的一项观察是,在 .NET 环境中运行时,我的四个处理器内核中的一个已达到极限。我可以从输出窗口中看到它执行得非常慢。使用 cmd.exe,我的所有四个处理器内核似乎都在分担负载,并且输出窗口中的事情很快就过去了。另一个观察结果是 csrss.exe 在 cmd.exe 测试期间的处理器利用率与我正在运行的可执行文件一样多。从 .NET (Process.Start) 运行时,情况并非如此。
如有必要,我可以将代码发布到我调用 Process.Start() 的位置。我尝试了将 UseShellExecute 设置为 true 和 false、重定向标准输入和输出等的各种组合。我根本无法确定这一点。我已经在两台不同的机器(Windows Server 2008 和 Windows 7 Ultimate)上进行了测试,结果相同。我正在为这个特定的代码库使用 .NET 3.5 SP1。
任何帮助将不胜感激!
c# - 使用 System.Diagnostics.Process.Start 运行程序会导致 MissingMethodException
我正在开发一个 Compact Framework 2.0 项目,我正在尝试使用 Process.Start 从另一个程序“A”中启动一个程序“B”。我以前做过几次,但这次我遇到了一些奇怪的问题。
程序“B”确实启动了,但它会导致 MissingMethodException,基本上告诉我它缺少它引用的某个程序集。问题是程序集 .dll 就在那里,与程序“B”在同一个文件夹中。如果我双击程序“B”,它运行正常,没有 MissingMethodException,只有在程序“A”中使用 Process.Start 启动时才会出现此问题。我完全不知道这里发生了什么。我尝试设置 WorkingDirectory 属性,但没有成功。关于为什么程序在通过 Process.Start 执行时无法加载其引用的任何想法?谢谢
编辑我只是想到了一些东西......程序“A”和程序“B”都使用程序“B”未加载的.dll。如果两个程序不能同时加载相同的 .dll,那就是问题所在。是这样吗?
c# - Process.Start 在产生更多新进程时缓慢
当衍生进程(“子进程”)启动更多新进程(“孙子进程”)时,通过 via 启动的进程Process.Start
似乎有大约 26 秒的延迟 - 我正在尝试找到解决此问题的方法。具体来说,当原始进程(“父进程”)是 ASP.Net 网站或 Windows 服务(两者都尝试过)时,就会发生这种情况。
我们正在尝试运行服务器端命令行工具来收集信息,在文件系统中进行修改,并在“子”完成后继续其他进程。当通过命令行直接创建“子”时,没有延迟,并且在某些命令行参数下,“子”不会产生新进程,也没有延迟。但是,使用其他参数时,“子”会产生“孙子”(与自身相同的可执行文件,但我们无法修改其代码),并且在第一个进程之前似乎有 25-30 秒(通常为 26 秒)延迟启动,然后正常运行。
我试过修改UseShellExecute
属性、CreateNoWindow
属性和WindowStyle
属性,没有效果。 ErrorDialog
并且RedirectStandard*
属性是假的。
我正在使用的代码如下:
哦,我认为这并不重要,因为我在其他地方看到了这个问题(但没有解决方案),但是我使用的 exePath 指向 msysgit 的 git.exe。
vb.net - 如何使用 Process.Start
我正在使用 process.Start 来运行 Convert.exe。该程序的目的是转换 exe 文件夹中的所有文件。因此,当我通常使用它时,我将一个文件复制粘贴到与 Convert.exe 相同的文件夹中,然后运行 Convert.exe。Convert.exe 将在同一文件夹中创建一个新的“已转换”文件。
我正在尝试自动化这个繁琐的过程。用户选择需要从 FolderA 转换的文件,我将其复制到 Convert.exe 所在的同一文件夹中,并且我正在使用 process.start(Convert.exe) 来运行它。需要明确的是,这个“Convert.exe”不接受任何参数。
问题:“Convert.exe”没有转换其文件夹中的文件。相反,它出于某种奇怪的原因转换了 FolderA 中的所有文件。我不知道它为什么选择那个文件夹,我什至从不尝试将它作为参数发送或什么都不发送。
这是我的代码:
我做了一个测试,将一个文件复制粘贴到“Convert.exe”文件夹中,然后运行以下代码:
exe 不返回任何内容,就像文件夹中没有文件一样。
我唯一能想到的是,当 process.Start 运行时,它会将文件复制到另一个位置并从那里运行它。
有什么想法吗?
c# - 如何从 C# 关闭,Process.Start("shutdown") 在 Windows XP 中不起作用
在对如何重置我的计算机和/或从 C# 关闭它进行了一番探索之后,我发现了如何做到这一点的解释:
这适用于 Windows 7,但不适用于我尝试过的 Windows XP 机器。所以我想好让我们使用一个更简单的解决方案:
唉,这似乎也适用于我的 Windows 7 机器,但不适用于我的 Windows XP 机器。我只在一台 Windows XP 机器上尝试过它,但它像命令提示符一样闪烁,我的程序被最小化到系统托盘,然后什么也没有发生......所以它就像它想做某事但最终什么也没发生。(我确实有代码在关闭 X 被击中时故意将我的程序放到系统托盘中,并且用户必须故意退出它......)这有问题吗?我的 FormClosing 代码是这样的:
我不确定为什么我可以在 Windows 7 中从 C# 重置和关闭我的电脑,但在 Windows XP 上却不能……也许我错过了什么?一个额外的命令?关闭表单时关闭我打开的日志文件的更好方法?无论如何强制关闭或重置的某种方式,我使用的 Windows XP 机器确实有一个 SVN 服务器作为 Windows 服务运行,但我不确定这是否会有所作为。
所以我不确定在哪里调查我的问题。是否Process.Start()
有办法查看退货或尝试捕获以查看可能导致它不关闭的原因,或者它是“一劳永逸”类型的交易?
c# - 在 C# 中以管理员权限启动进程
我必须使用 System.Diagnostics.Process.Start() 启动命令行程序并以管理员身份运行它。
此操作也将由计划任务每天运行。
c# - 使用网络凭据通过 Process.Start(path) 访问网络共享
我正在使用这个Impersonator 类来模拟域帐户来访问网络共享,如下所示:
从网络共享复制文件可以正常工作:
但是,使用 Process.Start 在资源管理器中查看 UNC 共享会引发“登录失败:未知用户名或密码错误”:
怀疑 Impersonator 类有问题,我尝试手动向 ProcessStartInfo 提供凭据,如下所示:
仍然没有喜悦。请注意,我确信我的 netCred (NetworkCredential) 是正确的,因为我以前曾连接到经过身份验证的资源。
那么,如何使用网络凭据在 Explorer 中查看 UNC 路径?
c# - 注册表中的 DefaultBrowser 不起作用
我正在尝试在默认浏览器中打开一个 url。显然,我认为 Shell Exec 会在默认浏览器中打开它,但事实并非如此。
然后我尝试明确:
它总是返回 Internet Explorer,但不是我的默认值,即 Firefox。我在几台电脑上试过...
我不在乎在默认浏览器中调用链接的方式,但它必须是默认的
c# - 在 C# 中启动 explorer.exe 无法正常工作
我正在尝试用 C# 制作一个简单的应用程序,它允许我杀死并启用 explorer.exe。我需要这样的程序才能正常玩帝国时代 2,因为它不喜欢 explorer.exe 出于某种原因(我相信它与 Aero 有关)。所以我做了两个按钮,一个启用 explorer.exe,另一个禁用它。杀死 explorer.exe 没问题,但启用没有。
我在一些网站上阅读过,您必须使用Process.Start();
来启动流程。所以我做了Process.Start("explorer.exe");
。杀死 explorer.exe 后,它执行了前一行,但没有返回我的任务栏,它只打开了“库”,而不返回我的任务栏。我也尝试过Process.Start("explorer.exe", "-p");
(我在某处看到过),但打开了“我的文档”。
我该怎么做才能启动进程 explorer.exe 以便我恢复任务栏之类的东西?我仍然可以使用命令提示符/任务管理器/运行正确启动它。