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
Simulierung der Tastatureingabe
Moderator: Moderatoren
Na gut, das war vielleicht etwas wenig Futter.
Hier also der entscheidende Ausschnitt aus dem Programm:
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
Hier also der entscheidende Ausschnitt aus dem Programm:
Wie der Fachmann sicherlich sofort erkennt, handelt es sich um C++.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);
}
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