2010-01-19 3 views
2

J'envoie des séquences de touches à d'autres applications en cours en utilisant SendKeys.SendWait. Mais cela ne fonctionne pas si l'application cible n'est pas minimisée. Quelque chose ne va pas avec cette méthode? Quelles sont les autres méthodes pour envoyer des frappes à l'application en cours d'exécution.system.windows.forms.sendkeys.sendwait ne fonctionne pas lorsque la fenêtre est agrandie

bloc de code que j'utilise:

SetForegroundWindow(handleToApplication);    
System.Windows.Forms.SendKeys.SendWait(Keystroke); 

Répondre

0

Je suggère la manipulation de la fenêtre avant d'envoyer les clés de ce ...

private void setWindowState(string windowTitle, int option) 
    { 
     /** 
     SW_HIDE    0 
     SW_SHOWNORMAL  1 
     SW_NORMAL   1 
     SW_SHOWMINIMIZED 2 
     SW_SHOWMAXIMIZED 3 
     SW_MAXIMIZE   3 
     SW_SHOWNOACTIVATE 4 
     SW_SHOW    5 
     SW_MINIMIZE   6 
     SW_SHOWMINNOACTIVE 7 
     SW_SHOWNA   8 
     SW_RESTORE   9 
     SW_SHOWDEFAULT  10 
     SW_FORCEMINIMIZE 11 
     SW_MAX    11 
     **/ 

     Process[] plist = Process.GetProcesses(); 
     IntPtr handle = new IntPtr(); 

     foreach (Process x in plist) 
     { 
      if (x.MainWindowTitle == windowTitle) 
      { 
       handle = x.MainWindowHandle; 
       break; 
      } 
     } 

     ShowWindow(handle, option); 
    } 
Questions connexes