[Réglé]Pause dans un thread en séquence

Pause dans un thread en séquence [Réglé] - C#/.NET managed - Programmation

Marsh Posté le 15-04-2009 à 10:19:15    

Bonjour à tous et toutes, j'ai un petit problème avec le C#.
 
Voici donc le contexte:
je cherche à piloter une application qui est sélectionnée et donc je cherche à lui envoyer des évènements claviers.
Le problème c'est que j'ai besoin de pause dans cette séquence.
 
Donc le truc tout bête que j'essayais de faire c'est:

Code :
  1. //Process[] myProcesses;
  2.             //myProcesses = Process.GetProcessesByName("WINWORD" );
  3.             //const int nChars = 256;
  4.             //StringBuilder Buff = new StringBuilder(nChars);
  5.             //GetWindowText(myProcesses[0].MainWindowHandle,Buff,nChars)
  6.             Thread.Sleep(2000);
  7.             //MessageBox.Show(myProcesses[0].MainWindowTitle.ToString());
  8.             //SetForegroundWindow(myProcesses[0].MainWindowHandle);
  9.             SendKeys.Send("^%{a}" );
  10.             //Application.DoEvents();
  11.             Thread.Sleep(5000);
  12.             SendKeys.Send("a" );


 
Le problème c'est que:
les évènements ne sont pas envoyé avant les pauses en gros je vais avoir ça:
Une pause de 7s puis les deux sendkeys d'effectué, et non pas une lecture séquencielle... J'ai essayé de forcer via un application.DOEvents comme vous pouvez le voir mais ça ne change strictement rien. :/
 
Comment faire pour faire une pause sans bloquer la séquence d'exécution des évènements? (en gros il faut que ça fasse une pause, mais que ce qui était demandé précédement soit exécuté quand même, car j'aurais besoin de faire une pause en monitorant le processus pour patienter tant qu'il n'est pas en idle puis continuer l'envoie de touche etc, mais là rien que la suite tout simple que je fais ne marche pas).
 
 
 
Merci d'avance.


Message édité par burn2 le 15-04-2009 à 10:56:26

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 15-04-2009 à 10:19:15   

Reply

Marsh Posté le 15-04-2009 à 10:56:08    

Bon j'ai trouvé comment faire, j'ai forcé l'exécution des sendkeys via:
SendKeys.Flush();
ça ne devrait pas être normal de devoir forcer quoi que ce soit puisque c'est du sequentiel mais bon...


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed