Tag: processstartinfo

使用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); 感谢大家。

尝试在命令提示符下运行相同的命令不起作用

我正在制作一个程序,在文件夹中搜索安全的PDF并使用ImageMagick将它们转换为PNG文件。 以下是我的代码。 string WorkDir = @”C:\Users\rwong\Desktop\TestFiles”; Directory.SetCurrentDirectory(WorkDir); String[] SubWorkDir = Directory.GetDirectories(WorkDir); foreach (string subdir in SubWorkDir) { string[] filelist = Directory.GetFiles(subdir); for(int f = 0; f < filelist.Length; f++) { if (filelist[f].ToLower().EndsWith(".pdf") || filelist[f].EndsWith(".PDF")) { PDFReader reader = new Pdfreader(filelist[f]); bool PDFCheck = reader.IsOpenedWithFullPermissions; reader.CLose(); if(PDFCheck) { //do nothing } else { string PNGPath = […]

C#启动一个新的MailTo进程和HTML URL编码

我为Process类创建了一个新的MailTo扩展方法,它只是用一个包含所需mailto参数的新ProcessStartinfo填充Process。 我已经创建了一个名为FormatMailToArgument的方法(最后在右边),它将控制字符转换为它们的Url编码等价物并测试了它并且它可以工作但是有更好的方法吗? /// /// extension methods. /// public static class Processes { #region MailTo /// /// Populates the process with mailto . You may leave any /// argument as null if not needed. /// /// The process. /// The mail message. public static void MailTo(this Process process, MailMessage mailMessage) { MailTo( process, mailMessage.To.ToDelimetedString(), mailMessage.CC.ToDelimetedString(), mailMessage.Bcc.ToDelimetedString(), […]

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

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

获取与c#中的ProcessStartInfo一起使用的可用动词(文件关联)列表

我正在尝试使用ProcessStartInfo类打开和打印文件。 (文件可以是任何东西,但我们假设它是PDF文件) ProcessStartInfo pi = new ProcessStartInfo(file); pi.Arguments = Path.GetFileName(file); pi.WorkingDirectory = Path.GetDirectoryName(file); pi.Verb = “OPEN”; Process.Start(pi); 这适用于pi.Verb = “OPEN”; 。 有些应用程序也使用动词“PRINT”注册自己,但只有一些应用程序注册。 在我的情况下(Windows PDF Viewer)我尝试使用pi.Verb = “PRINT”;执行时出现exceptionpi.Verb = “PRINT”; 有没有办法在运行时查看C#中特定类型的所有动词? 多谢

C#打开文件使用关联的应用程序传递参数

我正在尝试启动为扩展名注册的默认应用程序,指定其他参数: ProcessStartInfo p = new ProcessStartInfo(); p.Arguments = “myargument”; p.FileName = “file.ext”; Process.Start(p); 应用程序开始正确打开指定的文件。 问题是它只获得一个参数(文件名),完全忽略了额外的“参数”。 有可能做我想要的吗? 难道我做错了什么? 在此先感谢您的帮助, 保罗

Process.Start文件名使用%temp%

对于一些奇怪的reaseon这个代码失败: p.StartInfo.FileName = @”%temp%\SSCERuntime_x86-ENU.msi”; 这个代码成功了: p.StartInfo.FileName = @”C:\Users\USERNAME\AppData\Local\Temp\SSCERuntime_x86-ENU.msi”; 我错过了什么理由? 注意我刚刚复制了路径,我不认为其余的代码是需要的,但无论如何我都会把它放进去: Process p = new Process(); p.StartInfo.FileName = @”%temp%\SSCERuntime_x86-ENU.msi”; p.StartInfo.Arguments = “/passive”; p.Start();

在没有UAC提示的情况下从.NET应用程序执行进程

我有一个场景,我需要从我的.NET应用程序启动一个EXE,但我无法绕过弹出的UAC提示。 甚至在启动其他EXE之前就会触发提示 – 可能是在调用Process.Start 。 我使用此代码启动应用程序: var info = new ProcessStartInfo(path, “params”); info.Verb = “runas”; try { Process.Start(info); } catch (System.ComponentModel.Win32Exception) { // Person denied UAC escallation return false; } 两个EXE(我的应用程序和其他EXE)都在其清单中定义了: 如何在不触发UAC提示的情况下执行其他EXE,并使其具有与调用应用程序相同的访问令牌(因此它可以更改app文件夹中的文件等)?

Process.Start()启动的应用程序没有得到参数

使用C#,我试图使用Process.Start()将命令行参数传递给新进程: string path = @”C:\Demo\Demo.exe”; string arguments = “one two three”; ProcessStartInfo startInfo = new ProcessStartInfo { FileName = path, Arguments = arguments }; var process = Process.Start(startInfo); 我的C应用程序Demo.exe只是回显命令行参数: int main( int argc, char *argv[] ) { int count=0; // Display each command-line argument. printf( “\nCommand-line arguments:\n” ); for( count = 0; count < argc; […]

C# – 启动Invisible Process(CreateNoWindow和WindowStyle不工作?)

我有两个程序(.exe),我在.NET中创建。 我们称他们为师父和工人。 大师启动1个或更多工人。 Worker 不会与用户交互,但它是一个WinForms应用程序,它接收命令并根据从Master接收的命令运行WinForms组件。 我希望Worker应用程序完全隐藏运行 (当然,除了显示在任务管理器中)。 我认为我可以使用StartInfo.CreateNoWindow和StartInfo.WindowStyle属性完成此操作 ,但我仍然在表单中看到Client.exe窗口和组件。 但是,它不会显示在任务栏中。 Process process = new Process { EnableRaisingEvents = true, StartInfo = { CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden FileName = “Client.exe”, UseShellExecute = false, ErrorDialog = false, } }; 我需要做什么才能让Client.exe运行但不显示?