Tasten an Fenster senden
-
Hallo,
mal 'ne frage: ist es möglich, von einer Konsolenanwendung aus befehle an bestimmte Fenster zu senden? optimal wäre sogar, dass windows den tastendruck nicht mitbekommt, sondern nur die anwendung.
Bsp: mein programm sendet 'x' an winamp (d.h. play) und der windows bildschirmschoner bleibt an, wobei die sache mit dem bildschirmschoner nicht so wichtig ist.kann ich über
system("befehl"); sämtliche befehle ausführen, die ich in der kommandozeile ausführen kann? falls das nicht geht, wäre schön, wenn ihr mir noch sagen könntet, wie ich kommandozeilen befehle ausführen kann. an sonsten versuch ich das gleich mal mit system("xyz");Liebe Grüße
H@ppy
-
Du kannst dir ein Handle auf WinAmp besorgen und dann mit SendMessage den "Tastendruck senden".
-
es soll dabei nicht nur um winamp gehen, sondern auch um ander player, thunderbird ect. ziel ist es, die befehle einer Fernbedienung zu verarbeiten. das decodieren ist fertig, nur muß ich jetzt noch agieren, wenn eine IR Bitfolge angekommen ist.
Ach ja, eventuell könnte das Betriebssytem noch hilfreich sei. es handelt sich dabei um Win XP.
Gruß H@ppy
-
Falsches Forum, frag im Forum WinAPI.
Du müsstest dir ein Handle auf den gewählten Player besorgen (FindWindow) und dann ne Nachricht schicken (SendMessage). Oder du verwendest keybd_event oder SendInput, wodurch aber wahrscheinlich der Bildschirmschoner unterbrochen werden würde.
-
Schau dir mal die PostMessage Funktion an.
PostMessage(zielHwnd,WM_KEYDOWN,'X',NULL)
Als dritter Parameter kannst du eine Virtual Key Konstante einsetzen, falls du etwas anderes als Buchstaben oder Zahlen senden möchtest. Z.B. VK_ESCAPE.
zielHwnd kannst du, wie schon gesagt, mit FindWindow finden.
-
happyaura schrieb:
optimal wäre sogar, dass windows den tastendruck nicht mitbekommt, sondern nur die anwendung.
Windows bekommt es immer mit, denk doch mal nach!
Bye, TGGC (Demo or Die)
-
@Rapha das hab ich doch geschrieben^^.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
-
Grad bei meinem FB-Progrämchen (;-) ) getestet:
Taste senden weckt das System, direktes Befehle senden nicht.
Die Befehle bekommst du meist mit Winspy(oder so ähnlich) und dann z.B. für Winamp-Pause einfach
SendMessage(FindWindow("Winamp v1.x",NULL),WM_COMMAND,40046,0);
wo ich grad die Winamp Liste da hab : play = 40045/ vol+ = 40058 / vol- = 40059 / vis =40019 /next=40048
-
Vielen Dank für eure Rückmeldung bzw auch fürs verschieben ins richtige Forum. SendMessage ist genau das, wonach ich gesucht habe, nun muß ich nur noch mal schauen, wie ich das für andere player (v.a. VCL) hinbekomme, aber ich denke, Google wird da mein freund bleiben. Ich glaub, in die winapi werd ich mich demnächst mal ein wenig einarbeiten, auch wenn mir die konsole irgendwie sympatischer ist ;-). aber man will ja nicht auf Dauer die Augen vor neuen möglichkeiten verschließen.
Besten Dank noch einmal undfür dieses Forum
Gruß H@ppy