2013-08-01 4 views
1

Im создание файла MSInfo:Как скрыть окно процесса msinfo32.exe?

ProcessRun.Processing(contentDirectory, "msinfo32.exe" , "/nfo " + "\"" + contentDirectory + "\\msinfo.nfo" + "\"",false,""); 

Это класс, который создает и usig процесса создания файла:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Diagnostics; 
using System.IO; 

namespace Diagnostic_Tool_Blue_Screen 
{ 
    class ProcessRun 
    { 


     public void ProcessesRun() 
     { 

     } 

     public static void Processing(string WorkingDirectory, string FileName, string Arguments, bool StandardOutput, string OutputFileName) 
     { 
      Process proc = new Process(); 
      proc.EnableRaisingEvents = true; 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.RedirectStandardOutput = StandardOutput; 
      proc.StartInfo.FileName = FileName; 
      proc.StartInfo.CreateNoWindow = true; 
      proc.StartInfo.WorkingDirectory = WorkingDirectory; 
      proc.StartInfo.Arguments = Arguments; 
      proc.Start(); 
      if (StandardOutput == true) 
      { 
       string output = proc.StandardOutput.ReadToEnd(); 
       DumpOutput(WorkingDirectory + "\\" + OutputFileName, output); 
      } 
      proc.WaitForExit(); 
      proc.Close(); 
     } 

     private static void DumpOutput(string filename, string output) 
     { 
      StreamWriter w = new StreamWriter(filename); 
      w.Write(output); 
      w.Close(); 
     } 
    } 
} 

После начала процесса и запуск msinfo32.exe есть маленькое окно, показывающее процесс msinfo32.exe в середине экрана.

Его не окно cmd! Его часть msinfo32.exe Есть ли способ скрыть это окно во время его обработки?

enter image description here

отредактировали изображение, показывающее на левой мою программу, и рядом с ним на праве небольшое окно из msinfo32.exe, что я хочу, чтобы скрыть.

+0

Какой смысл пустого общественного конструкторе класса 'ProcessRun'? Если ваш класс содержит только эти два (или сколько угодно) 'статических' методов, пометьте также класс' static'. –

ответ

0

Вы можете добавить:

proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
0

Вы можете использовать встроенную функцию ShowWindow. Вам нужно будет проверить pinvoke, чтобы найти, как использовать его, иначе я рад дать вам фрагмент кода.