2011-05-13 12 views
6

Web tabanlı bir yazılım parçası çalıştıran bir komut istemi pencerem var. Çalışan komut istemi penceresine komutları enjekte eden C# programında bir program yapmak istiyorum.Komut pencerelerine tuş vuruşlarını göndererek komutları enjekte etmek?

İşaretçiler var mı?

Teşekkürler, Paul.

+2

"Enjekte etme komutları" nı kastediyorsunuz? Çalışan uygulamayı değiştirmek mi yoksa sadece konsola giriş göndermek mi istiyorsunuz? –

+0

Sadece girişi konsola gönderin. – Paul

cevap

8

Hızlı ve kirli yöntemi:

kullanım SetFocus cmd penceresine tuş vuruşlarını göndermek için SendInput kullanmak, sonra cmd penceresine odağı ayarlayın. , SetFocus

[DllImport("user32.dll")] 
static extern IntPtr SetFocus(IntPtr hWnd); 

için

[DllImport("user32.dll", SetLastError=true)] 
static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize); 

ve this bir SetFocus için gerekli pencere tanıtıcısı almak için:

Sen C# dan SendInput aramaya tanımını çağır/this P kullanabilirsiniz FindWindow'u kullanabilir veya Process.GetProcessesByName kullanarak uygun cmd işlemini gerçekleştirebilir ve MainWindowHandle özelliğini kullanabilirsiniz.

+0

Awesome, yardımın için teşekkürler, kazmaya başla :-) :-) – Paul

İlgili konular