hi
ich versuche gerade so eine art text macro zu realisieren. ich will das program in hintergrund laufen lassen und dann in nem anderen fenster z.b. editor oder chat nen text ausgeben lassen. (z.b. im loop alle 5sek einen char an der gerade aktive (on top) fenster, z.b. editor, schicken. so als würde man auf die tastatur drücken)
also hab ich mit keybd_event(char,0,0,0) einfach nen keybd_event an das gerade aktive("on top") programm geschickt. klappt auch im wineditor, aber nicht im chatprogram. ka warum.
also will ich nun direkt auf die handles zugreifen: (ersmtal auslesen lernen und dann reinschreiben)
hStdIn:=GetStdHandle(STD_INPUT_HANDLE);
readConsoleInput(hstdin,inputBuffer,1,dwInputEvents);
->inputhandel des programs selber und da ausgelsen. klappt auch, aber leider nur beim macroprogram selber. ist ja auch klar. das handle ist ja für dies eine fenster dediziert.
tja und hier beginnt mein problem:
ich will nun natürlich nicht das inputhandle des programs selber, sondern eines beliebigen anderen "on top". ich hab also das falsche handle.
da hab ich gedacht:
stdhandle:=Getforegroundwindow;
aber leider kann er da nix auslesen. ich hab zwar nun das fensterhandle identifiziert, aber wie komm ich von da zum entsprechenden input_handle, um dann auf den inputbuffer zugreifen zu können?
also nochmal im bsp: ich das handle des wineditor rausgefunden, kann dort aber keine keyboardinputs auslesen, auch wenn ich wie blöd rumtipse. bin also nicht im inputhandle->inputbuffer gelandet.
wie komm ich vom fensterhandle zum inputhandle?
vielen dank für eure hilfe
btw ich progge in fpc