Feedback

C# - Prozess starten und Tasten senden (SendKeys)

Veröffentlicht von am 05.05.2006
(2 Bewertungen)
Ein Programm wird als Prozess gestartet, anschließend kann man Tasteneingaben an diesen Prozess senden
// Die Namensräume System.Runtime.InteropServices 
// und System.Diagnostics werden benötigt

[DllImport("User32.dll", SetLastError = true)]
public static extern int SetForegroundWindow(IntPtr hwnd);

int ID;
// Hier kann zum Beispiel "Notepad.exe" übergeben werden
private void ProzessErstellen(string Programmname)
{
    Process P = new Process();
    P.StartInfo.FileName = Programmname;
    P.Start();
    ID = P.Id;
}

private void TextSenden(string Text)
{
    System.IntPtr MainHandle = Process.GetProcessById(ID).MainWindowHandle;
    SendKeys.Send(Text);
    SetForegroundWindow(MainHandle);
}

2 Kommentare zum Snippet

sausefurz schrieb am 14.06.2009:
In der Methode TextSenden müßte es nicht

SetForegroundWindow(MainHandle);
SendKeys.Send(Text);

heißen?
Jan Welker schrieb am 14.06.2009:
Hallo,

nein, das hatte ich auch erst gedacht. Probiers mal so aus.
Jan
 

Logge dich ein, um hier zu kommentieren!