从本地服务调用Windows应用程序(并查看UI)

时间:2016-11-03 13:49:57

标签: c# service process windows-7-x64 process.start

我有一个本地服务(用C#编写),在64位Windows 7上运行,监视文件夹(通过文件系统观察程序),并在适当的文件类型(在这种情况下为.xml)出现时使用文档文件的完整路径作为参数调用reader应用程序。目前读者应用程序是记事本。一切似乎都很好;当文件被放入文件夹时,我可以在任务管理器中看到记事本正在运行,但我看不到它!它在没有UI的情况下在后台运行。我尝试过其他文件阅读器应用程序,所以不是这样,它必须与它被调用的方式有关。 这是当前的代码,但我尝试过其他变体,特别是ProcessStartInfo。

var workingDirectory = Path.GetDirectoryName(this.readingApplication) ?? Path.GetTempPath();

this.eventLog1.WriteEntry(
           "In OpenTheMessage. Working Directory: " + workingDirectory,
           EventLogEntryType.Information,
           ++this.eventId);

var info = new ProcessStartInfo
{
   FileName = this.readingApplication, 
   Arguments = xmlFileMessage, 
   WindowStyle = ProcessWindowStyle.Normal, 
   UseShellExecute = true,
   WorkingDirectory = workingDirectory            
};

this.eventLog1.WriteEntry(
           "In OpenTheMessage. Run: " + this.readingApplication + " " + xmlFileMessage,
           EventLogEntryType.Information,
           ++this.eventId);

Process.Start(info);

我可以从事件日志中看到程序流程是正确的。我甚至可以将日志中的命令复制到Windows Run中,它可以工作。这是怎么回事?

0 个答案:

没有答案