은 simpliest 방법은 Process.CloseMainWindow
가 메인 창에 가까운 메시지를 전송하여 사용자 인터페이스가있는 프로세스를 닫 사용하는 것입니다.
그래서 Process
와 콘솔 응용 프로그램을 호출하고 나중에 그것을 닫습니다
Dim p = new Process()
p.StartInfo.FileName = "c:\your\path\to\application.exe"
p.Start()
' p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden ' hide window
'
' do your stuff
'
p.CloseMainWindow()
' p.Kill() ' If window is hidden, you have to use Kill()
을 당신은이 응용 프로그램의 창을 보여 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
을 사용하지 않으려면,하지만 당신은 그것을 중지해야 Process.Kill
으로 처리를 즉시 중단합니다.
또 다른 방법은 IPC 일종의 콘솔 응용 프로그램에 종료 신호를 보내는 것입니다,하지만 이것은 귀하의 경우에 잔인한 것이라고 가정합니다.
이 Windows 서비스는 [FileSystemWatcher] (http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx)를 사용하여 수행 할 수없는 작업을 수행합니까? 그렇지 않으면'FileSystemWatcher'를 사용하여 다시 구현하고 다른 응용 프로그램을 생성하지 않아도됩니다. – Adrian
Adrain, 내 콘솔 응용 프로그램에서 FileSystemWatcher를 다시 구현했습니다. 하지만 수동으로 종료 할 때까지이 콘솔 응용 프로그램을 유지하는 방법이 있습니다. OnChanged 및 OnRenamed와 같은 내 이벤트는 콘솔 앱에 있기 때문에 그래서 응용 프로그램은 내가 끝낼 때까지 살아 있어야합니다. – Rupesh