C# 启动进程

C# 启动进程,c#,automation,C#,Automation,作为SharePoint自动化测试的一部分,我正在尝试使用System.Diagnostics.Process以其他用户的身份打开Internet Explorer。以下是C#代码 当我运行此自动测试时,VisualStudio返回消息,通知我测试成功,但Internet Explorer未打开 在我的代码中是否有一些东西是为了让窗口出现而丢失的?在运行测试之前,没有运行iexplore进程。在文件路径周围加双引号(因为它包含空格)可能会有帮助: p.StartInfo.FileName = "

作为SharePoint自动化测试的一部分,我正在尝试使用System.Diagnostics.Process以其他用户的身份打开Internet Explorer。以下是C#代码

当我运行此自动测试时,VisualStudio返回消息,通知我测试成功,但Internet Explorer未打开


在我的代码中是否有一些东西是为了让窗口出现而丢失的?在运行测试之前,没有运行iexplore进程。

在文件路径周围加双引号(因为它包含空格)可能会有帮助:

p.StartInfo.FileName = "\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\""
                        ^^                                                        ^^

此外,如果您打算从运行在“SharePoint”等服务中的服务进程或dll启动此代码,则此代码可能不会在所需的桌面上启动该进程。您需要在启动信息中将桌面设置为
“winsta0\\default”

要运行进程,工作进程应该具有高权限,这在任何web应用程序中都不是理想情况。如果你的目的是使用IE进行单元测试,那么我会考虑使用类似的东西。如果您的目的是应用逻辑访问URL并做某事,那么考虑使用。如果您仍然需要启动进程,请创建Windows服务,然后公开web调用,以便在Share Point中只需进行调用,您的Windows服务就可以在本地帐户或其他高权限帐户上运行


希望这对您有所帮助,并请提供您希望启动IE的场景,以便在论坛中为您提供更好的答案。

感谢您的建议Gread和Sudhakar。我试图实现的是以另一个用户的身份打开Internet Explorer,这样我就可以运行一些CodedUI来批准工作流。
p.StartInfo.FileName = "\"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe\""
                        ^^                                                        ^^