mit keybd_event(VK_CANCEL,0,0,0) in die Zwischenablage ?
-
Bin leider kein Profi; muß aber auch “nur“ mit Ctrl-C in die Zwischenablage schreiben (kopieren).
Die Funktion keybd_event klappt bei mir (WIN98) bei Zeichen ja gut. Z.B. wird mit
keybd_event('X',0,0,0);
keybd_event('X',0,2,0);
ein 'x' in Notepad geschrieben (wenn es geöffnet ist und die Maus auf der Pos. steht).Leider klappt das mit Ctrl-C aus unerfindlichen Gründen nicht:
keybd_event(VK_CANCEL,0,0,0 ); // passiert nichts
keybd_event(VK_CANCEL,0,2,0 ); // passiert nichtsAuch wenn ich die Ctrl und Ins-Taste nehme, kommt nichts Neues in die Zwischenablage:
keybd_event(VK_LCONTROL,0,0,0); // passiert nichts
keybd_event(VK_INSERT,0,0,0); // passiert nichts
keybd_event(VK_LCONTROL,0,2,0); // passiert nichts
keybd_event(VK_INSERT,0,2,0); // passiert nichtsIch verzweifele hier noch. Sitze seit Nächten vor dem Rechner. Brauche dringend Hilfe !!!
P.S. Ein Versuch mit SendInput(...) scheitert übrigens schon am Unbekanntsein beim Linker trotz Einbindung von user32.lib.

-
Das Problem hat sich teilweise erledigt: Wenn ich nämlich
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event('C',0, 0, 0);
Sleep(6500);
keybd_event('C',0, 2, 0);
keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);d.h. 6,5 Sekunden beim Kopieren warte, kommt der markierte Text doch schon in die Zwischenablage.
Warum das so unzumutbar lange dauert muß ich dann wohl anderweitig klären...

-
Das habe ich mal zum Einfügen gemacht.
keybd_event(VK_CONTROL,0,0,NULL); // [Strg] [0x11] drücken keybd_event('V',0,0,NULL); // [v] [0x56] drücken keybd_event('V',0,KEYEVENTF_KEYUP,0); // [v] [0x56] loslassen keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0); // [Strg] [0x11] loslassenAlternativ:
MSDN => SetClipboardData()