ja, ok.
Ich habs jetzt nochmal spaßeshalber getestet und siehe da: es geht nicht mehr mit der 1000.
Dann würde mich mal interessieren, ob du zuvor (als es "zufällig") ging nicht zufällig das Fenster welches die CB besitzt fokussiert hattest?!
Ich hatte immer mein Formular aktiv um die Routine zu betätigen.
Vorhin hab ich es mal in einem Timer senden lassen und währenddessen die CB fokussiert. Nichts.
Aber ich hab jetzt einen Workaround der immer klappt:
Delphi-Quellcode:
CBContent := getWinText(wndCB);
if CBContent = cStr1 then
tmp := SendMessage(wndCB, CB_FINDSTRING, -1, Integer(@cStr2[1]))
else
if CBContent = cStr2 then
tmp := SendMessage(wndCB, CB_FINDSTRING, -1, Integer(@cStr1[1]))
else
Exit;
SendMessage(wndCB, CB_SETCURSEL, tmp, 0);
PostMessage(wndCB, WM_KEYDOWN, VK_RETURN, MakeLong(0, MapVirtualKey(VK_RETURN, 0)) );
PostMessage(wndCB, WM_KEYUP, VK_RETURN, Cardinal(MakeLong(0, MapVirtualKey(VK_RETURN, 0))) or $C0000000);
So reichts mir jetzt eigentlich.