Process.Start权限问题
我正在尝试使用Process.Start从C#运行外部问题,但遇到了权限问题。 当我正常打开命令提示符(而不是管理员)并运行我的命令时,它们工作正常,但是当我通过Process.Start打开命令提示符时,我在目录上收到写入错误。 (“我不能写文件test.log”)
如果我通过Process.Start以管理员身份运行它可以正常工作,但我获得了权限弹出窗口。 有没有人有任何想法可以帮我解决这个问题? 谢谢!
这是我正在使用的代码:
Process proc = new Process(); proc.StartInfo.FileName = @"cmd.exe"; proc.StartInfo.Arguments = @"/k latex C:UsersShaneDocumentstest.tex"; proc.Start(); proc.WaitForExit();
我想知道它是否正在尝试将诊断日志写入当前工作目录,您可能没有权限。 (我不知道它是否会inheritance工作目录,或者是包含cmd.exe的目录。)我建议你使用ProcessStartInfo.WorkingDirectory
指定新进程的工作目录。
( ProcessStartInfo
说一句,我个人觉得创建一个新的ProcessStartInfo
更ProcessStartInfo
– C#对象初始化程序使这个特别好),然后调用Process.Start(ProcessStartInfo)
来启动它。 否则看起来已经有一个尚未真正有过程的过程。 只是MHO,可能与您正在调查的问题无关。)
不要将cmd.exe用作Process对象的FileName属性,而是将命令保存在一个批处理文件中,然后使用该文件执行。
您还可以通过Process类的StartInfo属性提及管理员的用户名,密码,域等权限。 如果您使用这些属性,我认为不会出现权限问题。 在这里,您可以找到有关StartInfo属性的更多信息。
希望能帮助到你。
上述就是C#学习教程:Process.Start权限问题分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1033487.html