Bonjour.

Je voudrais pouvoir piloter une application par un logiciel écrit sous Lazarus.

Pour simuler les frappes touches, j' ai essayé d'utiliser la fonction keybd_event, cela fonctionne en test avec NotePad mais pas avec mon autre application.

Je n'ai même pas réussi à faire fonctionner SendInput ( qui avait l'air intéressant ).

Et maintenant, j'essaie d'envoyer directement le code touche dans le buffer clavier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button2Click(Sender: TObject);
begin
  asm
  mov  ah, 05h
  mov  ch, 18
  mov  cl, 69
  int  16h
  not  al
end;
end;
Et à l’exécution, j'obtiens un message d'erreur:
Le projet Projet1 a levé une exception de class 'External: SIGSEGV'
In file 'unit1.pas' at line 62: int 16h
Je ne suis pas un as, il semblerait que le problème vienne du fait que Windows tourne en mode protégé et ne tolère pas que l'on lance une interruption.

Si vous avez des moyens de faire tourner ce petit bout de programme, ou bien si vous connaissez d'autres fonctions pour l'envoi de touche, je suis preneur.

Merci.