2010-04-30 10 views
9

En forma de ventana, me hicieron un botón y yo estoy tratando de hacer que envíe F1 a una ventana específica (como Firefox, Mi PC, etc ...)Envío de pulsaciones de teclas a un programa

Mi las preguntas son:

  • ¿Cómo lo hago por el nombre de la ventana? (como "Mozilla Firefox")
  • ¿Cómo lo hago por el nombre del proceso? (como firefox.exe)

Respuesta

14

Por Nombre de la ventana:

[DllImport("User32.dll")] 
static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 
[DllImport("User32.dll")] 
static extern int SetForegroundWindow(IntPtr hWnd); 

IntPtr ptrFF = FindWindow(null, "Mozilla Firefox"); 
SetForegroundWindow(ptrFF); 
SendKeys.SendWait("{F1}"); 

Por Nombre del proceso:

Process proc = Process.GetProcessesByName("firefox")[0]; 
IntPtr ptrFF = proc.Handle; 
SetForegroundWindow(ptrFF); 
SendKeys.SendWait("{F1}"); 
+0

y el nombre de proceso? –

+0

@Or Betzalel - Actualizado con el nombre del proceso. –

+0

Gracias, lo calculé –

Cuestiones relacionadas