Tag: process.start

使用Process.Start启动Firefox:当您设置Usename和Password时,Firefox无法启动

当我尝试使用Process.Start和ProcessStartInfo(.NET)启动Firefox时,一切似乎都能正常工作。 但是当我指定另一个帐户(用户的成员)的用户名和密码时,似乎什么也没发生。 相同的代码适用于Calc.exe或IE。 这很奇怪。 有任何想法吗? 这是代码: System.Diagnostics.ProcessStartInfo pInfo = new System.Diagnostics.ProcessStartInfo(); pInfo.CreateNoWindow = false; pInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; pInfo.WorkingDirectory = “{WorkingDirectory}”; pInfo.Arguments = “{CommandLineArgs}”; pInfo.FileName = “{ExecutableAddress}”; pInfo.ErrorDialog = true; pInfo.UseShellExecute = false; pInfo.UserName = “{LimitedAccountUserName}”; pInfo.Password = “{SecureLimitedAccountPassword}”; System.Diagnostics.Process.Start(pInfo); 感谢大家。

Process.Start()可以考虑系统PATH吗?

我一直在寻找和试验一段时间,但我没有运气。 我正在尝试制作一个控制台程序来自动完成一些我无法用BAT文件完成的任务。 我想从Windows SDK调用“signcode.exe”,bin文件夹包含系统PATH中的所有工具,我可以从任何地方调用“signcode”,但Process.Start忽略了路径。 当前代码: System.Diagnostics.Process sign = new System.Diagnostics.Process(); sign.StartInfo.FileName = signCommand.Substring(0, signCommand.IndexOf(‘ ‘)); // signtool.exe sign.StartInfo.Arguments = signCommand.Substring(signCommand.IndexOf(‘ ‘) + 1); // /sign /a file1 file2 // sign.StartInfo.EnvironmentVariables[“Path”] = Environment.GetEnvironmentVariable(“PATH”); // This doesn’t work either sign.StartInfo.UseShellExecute = false; sign.StartInfo.RedirectStandardOutput = true; sign.StartInfo.RedirectStandardError = true; sign.Start(); // Throws Win32Exception – The system cannot find […]

C#Process Start需要带双引号的参数 – 它们会消失

我正在尝试使用Process.Start(ProcessStartInfo)从c#运行cmd行应用程序; 问题是,cmd行应用程序是一个matlab独立的.exe并且具有可选参数,这意味着您可以在cmd行上传递它们: app.exe “optional1” optional1value “optional2″ optional2value 其中optional1value是整数或字符串等。 我们遇到的问题是双引号不是作为“optional1”参数的一部分传递的,所以我相信cmd.exe会得到类似的东西: app.exe optional1 optional1value optional2 optional2value 或类似的东西,matlab的解析器显然会被混淆。 我试过了: @”””optional1″” optional1value “”optional2″ optional2value””” 正如其他一些关于cmd行参数中的双引号的SO问题所建议但它似乎对我没有用,也没有: “\”optional1\” optional1value \”optional2\” optional2value\”” 我写了一个小的c#命令行.exe来打印出它得到的参数。 如果我将命令行参数放在VS Project-> Debug区域并运行它然后用双引号打印它们但由于所有转义等等,当我在代码中执行此操作时,.exe打印参数而不带任何双引号。 我发现这篇文章可能是.NET 3.5的cmd解析器中的一个错误,但似乎找不到可行的解决方案。 有没有人有任何想法? 感谢您的时间, 雨披 PS有没有办法看到使用Process.Start()发送参数时cmd.exe得到了什么? 我让我的进程打开了一个cmd窗口但是很高兴看到cmd.exe行如下所示:“app.exe optional1 optional1value”等。 再次感谢。

我如何确保C#的Process.Start将扩展环境变量?

我正在尝试创建一个这样的过程: var psi = new ProcessStartInfo { FileName = @”%red_root%\bin\texturepreviewer.exe”, UseShellExecute = true }; var process = Process.Start(psi); process.WaitForExit(); 现在环境变量“red_root”肯定存在于生成进程的环境变量中,但是执行似乎没有扩展环境变量,因此找不到该文件。 如何让Process.Start扩展文件名中的环境变量?

使用script.exe运行vb脚本

我想使用cscript.exe运行vbscript文件。 我搜索了很多,但没有找到任何方式,而我可以使用cmd与cscript.exe运行我的脚本 这是我的代码 Process p = new Process(); p.StartInfo.Arguments = @”C:\\Program Files\\VDIWorkLoad\\WorkLoadFile\\open test.vbs”; p.StartInfo.FileName = “testing”; p.StartInfo.UseShellExecute = false; try { p.Start(); p.WaitForExit(); Console.WriteLine(“Done.”); } 任何想法如何使用cscript.exe

将C ++控制台输出重定向到C#

我正在尝试将C ++控制台的输出提供给C#Windows窗体应用程序,我遇到的问题是C ++ exe的输出仅在C ++ exe终止后显示在C#控制台中。 有没有在运行C ++ exe时实时获取exe输出到C#控制台(如不必终止exe)? 这是我试过的方式, Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = “C:\\path\\ABC.exe”; p.Start(); string output = p.StandardOutput.ReadToEnd(); Console.WriteLine(output); 谢谢,

当路径包含url片段时,如何在Web浏览器中打开本地html文件

我试图通过以下方法打开Web浏览器。 但是,当浏览器打开url / file路径时,片段会被破坏(从“#anchorName”到“%23anchorName”),似乎没有得到处理。 基本上,文件打开但不会跳转到文档中的适当位置。 有谁知道如何打开文件并处理片段? 任何有关这方面的帮助将不胜感激。 打开的示例路径是“c:\ MyFile.Html#middle” // calls out to the registry to get the default browser private static string GetDefaultBrowserPath() { string key = @”HTTP\shell\open\command”; using(RegistryKey registrykey = Registry.ClassesRoot.OpenSubKey(key, false)) { return ((string)registrykey.GetValue(null, null)).Split(‘”‘)[1]; } } // creates a process and passes the url as an argument to the process private […]

Process.Start在某些客户端上随机阻塞/挂起

(有一个非常相似的话题从未得到解决: 这里 ) 我们在几个客户端上运行了一个大应用程序,但最近我的一些代码停止了工作。 添加一些调试代码我发现代码在调用Process.Start()时停止(没有设置shellexecute = true)。 电话很简单 Process.Start(new ProcessStartInfo(“program”)) 在BackgroundWorker线程中。 “程序”应用程序执行它应该执行的操作并退出。 我们的应用程序继续,因为线程在后台,但如果应用程序在GUI线程上运行另一个Process.Start,则应用程序会锁定。 如果使用X按钮关闭应用程序,则应用程序仍显示在taskmanager中,因为该线程仍被Process.Start阻止。 问题是这种行为无法再现。 它在一些客户端计算机上随机发生。 使Process.Start()挂起会发生什么? (Program.Main标有[STAThread]) 我目前刚刚制作了一个解决方法,在自己的线程中启动Process.Start(),如果它还没有返回,则在5秒后终止它。 但对于等待代码返回的用户来说,这是5秒钟(我不知道我可以设置超时有多低,因为在某些情况下我需要在Process.Start()上返回值)。 可以有防病毒软件干扰吗? (客户端安装了Symantec AV) 更新:我假设当我做了一个 ProcessStartInfo psi = new ProcessStartInfo(“ping”, “localhost”); 默认情况下psi.UseShellExecute为FALSE …这是不正确的。 它默认为TRUE。 这是正常的吗?

Process.Start(/ * pdf * /的路径)不适用于Windows 8上的Adobe Reader

我能够在我的C#/ WPF应用程序中创建PDF并使用以下命令运行它们: Process.Start(_pathToPDFFile); 这适用于Adobe Acrobat,但不适用于Adobe Reader。 安装Adobe Reader时,除非Reader进程已在任务管理器中运行,否则Process.Start()不会执行任何操作。 当我尝试启动PDF时,如何让Adobe Reader显示PDF?

使用用户名和密码启动进程

我知道您可以通过以下方式运行具有给定用户名/密码的进程: var processInfo = new ProcessStartInfo { WorkingDirectory = workingDirectory, FileName = “a name”, UserName = loggedUserName, Password = “password”, Domain = userNameDomain, UseShellExecute = false, }; Process.Start(processInfo); 我面临的问题是我不想将实际密码写为代码的一部分,如果我将Password属性保留为空,则进程将无法启动…如何在不暴露的情况下安全地启动进程密码作为代码中的硬编码字符串?