C#System.Diagnostics.Process无法正常工作

问题描述 投票:0回答:1

我正在Windows服务应用程序中使用System.Diagnostics.Process。我调用的应用程序使用DropBox API和Google Drive API。当我登录Google Drive或DropBox时,应该打开Web浏览器并允许访问Drop或Drive,但无法打开。其他功能正常运行(在本地计算机上创建文件夹,读取文件,写入日志文件等)。

当我通过双击手动打开此应用程序时,登录过程正常运行,显示了Web浏览器,并且我允许访问。

使用Saraff Twain的其他应用程序也会发生类似的情况。如果我手动打开它,则它可以正常工作,我可以扫描并保存文件(在此过程中,将显示一些警报或消息框,例如“正在扫描”,“没有纸张”,“没有扫描仪”消息),但是当Windows服务调用时它不显示任何消息,它扫描并保存文件,但没有消息。

如果我从另一个Windows窗体或控制台应用程序调用此应用程序,则这些应用程序将正常运行。

我不知道Windows服务是什么问题。

感谢您的帮助。

这里是我在Windows服务应用程序(此处失败)和Windows窗体应用程序(此处运行正常)中使用的代码。我试过调用CMD.exe和应用程序路径作为参数,并直接在文件名上调用路径。

p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C" + " \"" + execName+"\" " + argument;
//p.StartInfo.Verb = "runas";
// writeLogLine(argument + " " + execName);
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
writeLogLine("out" + output);
c# windows-services dropbox-api processstartinfo
1个回答
0
投票

Windows服务不是用于用户交互的,因为它应该能够在没有任何用户登录的情况下运行。

© www.soinside.com 2019 - 2024. All rights reserved.