ja also wie gesagt, x, y errechne ich wie folgt:
1. Maus wird auf Position 100,100 bewegt, dort werden aus dem Porgramm koordniaten ausgelesen,
2. Maus wird auf Position 500,500 bewegt, dort werden aus dem Porgramm koordniaten ausgelesen,
3. Es wird errechnet, welche Länge bzw Breite 1 Pixel in x-Richtung und 1 Pixel in y-Richtung hat.
demzufolge bewege ich dann meine maus auf die gewünschtge Position. Diese ist auch korrekt, nur wird scheinbar der klick nicht vollständig ausgeführt.
klicke ich nach ausführen des codes genau an die Stelle wo die maus hin bewegt wurde, dann funktioniert das was bei einem linksklick auch passieren sollte.
das macht mich stutzig!
Wahrscheinlich liegt es wirklich an der fensterposition, wie bekomme ich denn die Borderhöhe des Fensters raus?
Delphi-Quellcode:
Function Get_CommBox_selected_CallSign :
string;
var Handle : Hwnd;
WndCaption: PWideChar;
len: Integer;
begin
Handle := Find_WindowHandle('
#32770','
COMMBox');
Handle := get_Handle(
Handle,'
Edit');
len := SendMessage(
Handle, WM_GETTEXTLENGTH, 0, 0);
if len > 0
then
begin
len := len * 2;
WndCaption := GetMemory(len + 1);
if Assigned(WndCaption)
then
begin
SendMessageW(
Handle, WM_GETTEXT, len + 1, Integer(WndCaption));
result :=
String(WndCaption);
FreeMemory(WndCaption);
SendMessageW(
Handle, WM_setTEXT, 0, Integer(0));
end;
end;
end;
also auch wenn ich die Borderhöhe und alles abziehen von der position funktioniert der linksklich nicht! es geht nur ein rechtsklick;