Articles of process.start

如何使用C#从Windows服务运行EXE程序?

如何使用C#从Windows服务运行EXE程序? 这是我的代码: System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe"); 当我运行这个服务时,应用程序没有启动。 我的代码有什么问题?

Process.Start()和手动运行有什么区别?

我正在为我工​​作的公司创build一个应用程序,它将备份我们提供的一些软件的数据。 它可以select将SQL数据库,文件夹,文件和registry项添加到备份作业,然后将其放入一个Zip文件。 还可以select在需要时恢复备份。 我遇到了registry备份和恢复问题。 我已经经历了许多尝试去实现这个工作的迭代,但是我已经以一种最能说明我希望有人可以帮助的问题的方式来简化它。 本质上,我通过使用带有命令行参数的regedit.exe导入“.reg”文件。 我已经尝试通过使用ProcessStartInfo()构build它,但它没有工作。 所以要testing的问题,我创build一个batch file,并运行它,如下所示: File.WriteAllText("ImportReg.bat", "regedit /s /i MyRegFile.reg"); Process.Start("ImportReg.bat"); 但是这不起作用。 batch file已成功创build并且REG文件有效。 这两个文件都在EXE相同的位置,所以我不认为这个问题应该与哪个目录被使用。 如果我从这个位置自己运行batch file,它会成功导入registry文件。 我是我正在testing这个机器上的完整pipe理员。 我也有从registry中导出的问题。 registry的某些部分导出正常,而其他部分则不导出。 但是,如果我将导出设置为像上面导入的batch file那么它每次都工作。 有人能帮忙吗? 我不明白为什么我的batch file可以工作,但不能通过Process.Start运行。 任何build议将大规模赞赏。

当完整pathparsing为64位目录时,无法从32位C#应用程序启动快捷方式(lnk)文件

我试图从C#应用程序启动开始菜单中的程序,几乎开始菜单中的所有项目都是快捷方式(lnk)文件。 当使用Process.Start启动这些文件时,我发现如果lnk文件的完整path指向C:\ Program Files目录,我得到“系统找不到指定的path”错误。 我在Windows中使用文件系统redirect进行了一些研究,所以我尝试禁用它,但我仍然得到相同的错误: // disable file system redirection: IntPtr ptr = new IntPtr(); bool isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr); // run the file: System.Diagnostics.Process.Start("c:\\splitter.lnk"); 这将返回“系统找不到指定的path”。 但是,如果从“开始”>“运行”对话框启动c:\ splitter.lnk,程序运行得很好。 您可以在任何64位计算机上重现此问题,方法是为任何64位应用程序创build快捷方式,将其放在C驱动器上,然后尝试使用上面的代码运行它。 有没有更好的方法来启动.lnk文件来避免这个问题? 还是我没有正确禁用文件redirect? 编辑:我也尝试设置UseShellExecute为true让操作系统运行该文件,但仍然失败,这是有趣的,因为从开始>运行对话框运行相同的path工作得很好: Process process = new Process(); process.StartInfo.UseShellExecute = true; process.StartInfo.FileName = "c:\\splitter.lnk"; process.Start(); 编辑2:我想,而不是试图直接启动LNK文件,我会得到它的目标,然后运行目标。 我试图使用如何解决C#中的.lnk和如何以编程方式跟随.lnk文件 ,但这两种方法返回完整path为C:\ Program Files文件(x86)\ Splitter.exe而不是C:\的实际path。 Program Files \ Splitter.exe。 也许我可以使用上面的方法之一来获得LNK文件的目标。 […]

隐藏进程窗口,为什么它不工作?

我已经尝试了几件事情来隐藏新进程的窗口(在这种情况下,它只是notepad.exe进行testing),但不pipe我尝试什么,它都不会工作。 我现在看过很多post都是这么说的,那么为什么它不适合我呢? 我有一个控制台应用程序,应该启动其他进程,而不显示其窗口。 我试图让我的控制台应用程序启动notepad.exe没有窗口,但它不会工作。 ProcessStartInfo info = new ProcessStartInfo("path to notepad.exe"); info.RedirectStandardOutput = true; info.RedirectStandardError = true; info.CreateNoWindow = true; info.UseShellExecute = false; Process proc = Process.Start(info); 我也尝试使用各种设置info.WindowStyle,我试图configuration我的控制台应用程序是一个Windows应用程序,但它并不是真的,我做什么,subprocess总是打开一个窗口。 这是不允许从一个控制台的应用程序或这里有什么问题 – 任何人都可以在这个可能吗? 我在Windows 7 x64上使用.NET 4.0

从Windows服务启动Web浏览器

是否有可能从Windows服务启动Web浏览器? 我在C#中创build了一个基本服务,并将其安装在“LocalSystem”安全configuration文件下。 该服务的代码如下所示: namespace Bootloader { public partial class Service1 : ServiceBase { public Service1() { InitializeComponent(); } protected override void OnStart(string[] args) { string target = "http://www.microsoft.com"; System.Diagnostics.Process.Start(target); } protected override void OnStop() { } } } 当服务运行时,没有任何反应。 有关Windows服务的文档说,他们没有任何用户界面,但这是否意味着启动Web浏览器是不可能的。