首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Process.Start权限问题

Process.Start权限问题
EN

Stack Overflow用户
提问于 2010-11-19 15:37:05
回答 2查看 12.8K关注 0票数 7

我试图使用Process.Start从C#运行一个外部问题,但遇到了权限问题。当我正常打开一个命令提示符(不是以管理员身份)并运行我的命令时,它们工作得很好,但是当我通过Process.Start打开一个命令提示符时,我在目录上得到一个写错误。("I‘t write on file test.log")

如果我通过Process.Start以管理员身份运行它,它工作得很好,但我得到权限弹出窗口。有没有人有什么想法可以帮我解决这个问题?谢谢!

下面是我使用的代码:

代码语言:javascript
复制
Process proc = new Process();
proc.StartInfo.FileName = @"cmd.exe";
proc.StartInfo.Arguments = @"/k latex C:\Users\Shane\Documents\test.tex";
proc.Start();
proc.WaitForExit();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-19 15:41:27

我想知道它是否正在尝试将诊断日志写入当前工作目录,而您可能对此没有权限。(我暂时不知道它是继承工作目录,还是包含cmd.exe的目录。)我建议您使用ProcessStartInfo.WorkingDirectory为新进程指定工作目录。

(顺便说一句,我个人认为创建一个新的ProcessStartInfo并填充- C#对象初始值设定项会让它变得特别好),然后调用Process.Start(ProcessStartInfo)来启动它。否则,看起来已经有了一个进程,而实际上还没有一个。(只是MHO,可能与您正在调查的问题无关。)

票数 9
EN

Stack Overflow用户

发布于 2010-11-19 15:47:51

不使用cmd.exe作为Process对象的FileName属性,而是将命令保存在一个批处理文件中,然后使用该文件执行。

您还可以通过Process类的StartInfo属性提到管理员的权限,如用户名、密码、域等。如果你使用这些属性,我想权限问题就不会出现了。Here您可以找到有关StartInfo属性的更多信息。

希望能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4223008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档