Strg+C ans System senden...Wie?
-
ist glaube nicht das, was ich suche:
Kill():
Used to request that a task be stopped.Ich möchte Strg+C im Sinne von Kopieren senden...
-
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.
-
Du kannst es einfacher machen und statt Strg+C einfach WM_COPY senden. Evtl. reagiert das Fenster korrekt.
-
Machine schrieb:
Hi,
ich möchte gerne aus meinem Prog heraus Strg+C ans System senden
Was macht das für einen Sinn dem Kernel einen Shortcut zu senden und dann auch noch mit einer Fensternachricht?
Such dir das Fenster und sende die Nachricht WM_COPY direkt an das Fenster.
-
Das wird nix, da ich ein Prog habe, was im Hintergrund läuft und bei einem bestimmten Hotkey den Inhalt der Zwischenablage ändert. Nun muss man aber das, was man geändert haben will, erst mit Strg+C kopieren und dann den Hotkey drücken um die Umbimmelei zu starten. Ich wollte das so machen, dass man nur den Hotkey drückt und der jeweilige Text dann automatisch ins Clipboard kopiert und bearbeitet wird.
-
Ja und? WM_COPY ist doch genau der interne Windows Befehl, der die Daten auf das Clipboard kopiert. Letzten Endes löst Ctrl+C ja WM_COPY aus (so sollte es zumindest sein)...
-
Hm, habs grad mal getestet...
::SendMessage( HWND_BROADCAST, WM_COPY, NULL, NULL );funzt nicht. Also passiert nix

-
Meine Güte!
Das kan doch niciht gehen. Willst Du, dass jedes Top-Level Programm seine Daten auf das Clipboard kopiert, wohl gemerkt nach eineinander.Und der letzte gewinnt...

-
hm.. stimmt, das ist wohl wahr. Wie kann ich das dann machen? Also woher bekomme ich das Windowhandle vom Control, in welchem aktuell der Text markiert ist?
-
Suchen z.B. mit FindWindow oder EnumWindows.
-
GetForegroundWindow?
-
Martin Richter schrieb:
GetForegroundWindow?
Das hab ich gesucht. Danke

-
Okay, ich bekomme jetzt das Handle vom zur Zeit fokussierten Fenster. Aber um die WM_COPY-Nachricht zu übermitteln muss ich ja das Handle vom zur Zeit fokussierten Edit-Ctrl bekommen... Ich bekomme ja
nen HWND zurück von GetForegroundWindow(). Kann mir da nochmal jemand helfen? Ich hoffe ich nerve nicht schon
HWND hWnd = ::GetForegroundWindow(); ::SendMessage(/*Hwnd von EditCtrl()*/, WM_COPY, NULL, NULL);
-
siehe meinem letzten post
guck dir die Funktionen in der MSDN an.schirrmie
-
Imho musst Du AttachThreadInput ausführen und dann GetFocus...