0

我正在使用Service中的 Class Library 运行应用程序的 EXE 。但我试图做的是隐藏应用程序 EXE 的窗口。这是我的代码:

在我的类库的功能中: -

public class MyClassLibrary
{
    public void MyFunction()
    {
        Process process = new Process();
        process.StartInfo.FileName = "C:\Program Files (x86)\MyFolder\MyApp.exe";
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process.Start();
    }
}

这就是我调用它的地方:

class MyClass : ServiceBase
{
    ...
    ...
    ...
    protected override void OnStart()
    {
        MyClassLibrary obj = new MyClassLibrary();
        obj.MyFunction();
    }
}

尽管有上述所有情况,但仍然可以看到窗口。任何人都可以提出解决方案吗?

谢谢和问候, Siddhant

4

3 回答 3

0

我得到了答案,感谢这个评论,我从这个问题顶部的Arne的评论中得到了这个评论。显然,似乎Process.StartInfo.UseShellExecute应该设置为true

谢谢大家帮忙!干杯!

于 2012-07-13T12:52:08.647 回答
0

我试过你的代码不起作用但是

但是当我以这种方式尝试时,它工作正常

string filePath = @"C:\Program Files (x86)\Internet Explorer\iexplore.exe";    
ProcessStartInfo pStartInfo = new ProcessStartInfo(filePath );
pStartInfo.WindowStyle = ProcessWindowStyle.Hidden;

Process.Start(startInfo);

它与 Process.Start(ProcessStartInfo) 一起使用的原因是因为它将给定信息与新组件相关联,如 MSDN中所述

于 2012-07-13T11:43:09.220 回答
0
string filePath = @"C:\Windows\System32\notepad.exe";
ProcessStartInfo pStartInfo = new ProcessStartInfo(filePath);

**pStartInfo.UseShellExecute = true;** 

pStartInfo.WindowStyle = ProcessWindowStyle.Hidden;   
Process.Start(pStartInfo);

注意:设置pStartInfo.UseShellExecutetrue否则会出错

于 2016-05-16T10:06:28.623 回答