@himitsu,
dank dir für deine Mühe!
Ich habe deine Tipps auch probiert, aber selbes Ergebnis: Die Showmessage wird aufgerufen und zeigt das richtige
Handle an, aber im
DBRichEdit der
Fremdanwendung passiert absolut nichts.
Das DBRichEdit im Fremdprogramm hat immer den Fokus (Cursor blinkt im DBRichEdit), jeweils einmal im Editiermodus getestet und einmal ohne.
Wie kann ich denn in einem Fremdprogramm
Zitat:
RichEdit.SelText :=
setzen?
Hier mal einer meiner Tests:
Delphi-Quellcode:
PROCEDURE Tfrm_Main.WMHotKey(
VAR Msg: TWMHotKey );
VAR
s:
STRING;
copyDataStruct: TCopyDataStruct;
BEGIN
gc_my_DBRichEdit_Handle := Handle_DBRichEdit_ermitteln
{ Return Handle-ID };
TRY
IF ( Msg.HotKey = Hotkey_id )
AND ( gc_my_DBRichEdit_Handle > 0 )
THEN
BEGIN
s := '
Das ist ein Test';
copyDataStruct.cbData := 1 + ( Length( s ) * SizeOf( Char ) );
// !!!
copyDataStruct.lpData := PChar( s );
Keybd_Event( VK_RETURN, 0, 0, 0 );
// Taste drücken
Keybd_Event( VK_RETURN, 0, KEYEVENTF_KEYUP, 0 );
// Taste loslassen
SendMessage( gc_my_DBRichEdit_Handle, EM_REPLACESEL, 0, LPARAM( @copyDataStruct ) );
Sleep( 2000 );
ShowMessage( s + '
Handle-ID=' + IntToStr( gc_my_DBRichEdit_Handle ) );
END;
FINALLY
// gc_my_DBRichEdit_Handle := 0; { TODO 2 -oJS -cnoch zu erledigen : Nach den Tests ist das zu aktivieren, damit die Variable nach jedem Aufruf auch initialisiert ist }
END;
END;