2009-06-02 100 views
2

我需要通過C#中的SendKey驅動傳統的DOS應用程序。但是,我發現它不起作用。C#SendKey到MS-DOS應用程序

http://www.vbforums.com/showthread.php?t=39626我知道SendKey在MS-DOS應用程序中並不能正常工作。當SendKey被調用時,所有MS-DOS應用程序收到的都是「\」。

但是,論壇指向MSDN Article 142819,它利用剪貼板將密鑰推入MS-DOS應用程序。一個VB示例給出,但我不知道如何將其轉換爲C#。

任何人都知道或知道任何類似的例子,用C#編寫,我可以參考嗎?

回答

2

您應該使用keybd_eventpinvoke)。您需要使用SetForegroundWindowpinvoke)將控制檯窗口設置爲前景窗口,然後調用它。

+2

Windows NT/2000/XP/Vista:此功能已被取代。改用SendInput。 試圖使用SendInput,它工作得很好。現在它無縫地驅動DOS應用程序。謝謝。 – 2009-06-03 11:29:58

1

如果我正確理解問題,則可以嘗試使用Process.StandardInput屬性發送密鑰。要獲得一個Process對象,您可以使用GetProcessBy ...方法之一。