Simulierung der Tastatureingabe

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Simulierung der Tastatureingabe

von Psionwelt » Di, 08.02.2005 15:08

Na gut, das war vielleicht etwas wenig Futter.

Hier also der entscheidende Ausschnitt aus dem Programm:
void CWndCatchMsg::SendCopyMsg(HWND _hWndFG)
{
m_hWndFG = _hWndFG;
::SetForegroundWindow(m_hWndFG);

m_bAwaitingData = TRUE;

keybd_event(VK_CONTROL, SCAN, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(VK_SHIFT, SCAN, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(VK_LEFT, SCAN, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(VK_LEFT, SCAN, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
keybd_event(VK_SHIFT, SCAN, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, SCAN, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);

keybd_event(VK_CONTROL, SCAN, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event('C', SCAN, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event('C', SCAN, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, SCAN, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
Wie der Fachmann sicherlich sofort erkennt, handelt es sich um C++.
Kompiliert wird das Programm mit dem Microsoft C++ 6 Compiler.

Verblüffenderweise scheint OpenOffice die Aufhebung der Steuertasten als Befehl zu interpretieren; jedenfalls springt der Cursor nach dem Markieren des Wortes links vor das Wort, bevor etwas in den Zwischenspeicher übergeben wird.

Irgendeine Idee?

Psionwelt

Simulierung der Tastatureingabe

von Psionwelt » Mo, 07.02.2005 17:02

Hallo,

habe seit des Umstiegs von Ooo 1.1.3 auf 1.1.4 ein Problem.
Ich benutze ein Programm, dass in allen Anwendungen funktionieren soll und wie folgt arbeitet:

1. Ein Name wird eingetippt.
2. Das Programm wird per Hotkey gestartet.
3. Das Programm markiert mit Ctrl+Shift+Left den Namen
4. Das Programm kopiert den Namen mit Ctrl+C in die Zwischenablage
5. Das Programm fügt mit Ctrl+V einen Text in das Dokument ein.

Wie gesagt, das Programm soll in allen Anwendungen funktionieren. Es funktioniert in Oo Calc, in Word, im Notepad, aber NICHT in Oo Text.

Folgendes geschieht:
Nach dem Programmaufruf springt der Cursor links neben den Namen. Und das wars. Der Name wird nicht markiert, er wird auch nicht in die Zwischenablage kopiert.
Warum nicht? In Version 1.1.3 hat es doch noch funktioniert. Womit kann das zusammenhängen?

Psionwelt

Nach oben