Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 93
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Prozess starten und Tasten senden (SendKeys)


Autor: Jan Welker
Sprache: C#
Bewertung:
7.67 (2 votes)
Anzahl der Aufrufe: 28300
  
Kick it on dotnet-kicks.de  

Beschreibung:

Ein Programm wird als Prozess gestartet, anschließend kann man Tasteneingaben an diesen Prozess senden

Abgelegt unter: SendKeys, MainHandle, SetForegroundWindow, Process, Diagnostics.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 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);
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

sausefurz schrieb am:  14.06.2009 16:51:50

In der Methode TextSenden müßte es nicht

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

heißen?
Jan Welker schrieb am:  14.06.2009 16:57:10

Hallo,

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


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.