Avatar billede dudepres Nybegynder
03. marts 2004 - 15:03 Der er 6 kommentarer

Musse-trykker-koordinat-program

Hej,

dette er et lidt flerdelt spørgsmål men det burde ikke være så svært hehe.

1) Hvordan "capture" man et givent koordinat ved at klikke et sted på f.eks skrivebordet og så bliver koordinaterne husket.

2) Hvordan sætter man den til at lave klik på et givet koordinat?

Takker :)
Avatar billede ziggs Nybegynder
03. marts 2004 - 15:36 #1
1)
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Edit1.Text := 'X: ' + IntToStr(X); // Formens kooridinater
Edit2.Text := 'Y: ' + IntToStr(Y); // Formens kooridinater
Edit3.Text := 'X: ' + IntToStr(Mouse.CursorPos.X); // Skærmens koordinater
Edit4.Text := 'Y: ' + IntToStr(Mouse.CursorPos.Y); // Skærmens koordinater
end;

2)
procedure TForm1.Button1Click(Sender: TObject);
begin
SetCursorPos(290,180); // Skærmens koordinater
mouse_event(mouseeventf_leftdown,0,0,0,0); // kan ændres til right/middle
mouse_event(mouseeventf_leftup,0,0,0,0); // kan ændres til right/middle
end;

Mvh Dennis L :)
Avatar billede eht Nybegynder
03. marts 2004 - 15:38 #2
var cursorPosX,cursorPosY:integer;
begin
//aflæs kooridinater
cursorposX := Mouse.CursorPos.x;
cursorposY := Mouse.CursorPos.Y;


SetCursorPos(100,100);

//klik med musen
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
end;
Avatar billede dudepres Nybegynder
03. marts 2004 - 16:45 #3
okay.

Det jeg mente med koordinater var også at "fange" dem uden for formen. Hvis jeg minimere programmet og bevæger musen lidt rundt og pludselig klikker hvordan fanger jeg så det koordinat?
Avatar billede nlf Nybegynder
03. marts 2004 - 19:46 #4
det gør du med GetCursorPos(Point : TPoint)

function GetCursorPosition : String;
var
  P : TPoint;
begin
  GetCursorPos(P);
  Result := 'X: ' + P.X + ' Y: ' + P.Y;
end;
Avatar billede nlf Nybegynder
03. marts 2004 - 19:51 #5
Ups havde ikke set du ville have koordinater for klik over hele skærmen...
Hvis du skal have tastetryk eller museklik uden for dit program og uden at vide hvad for et vindue du vil klikke i, skal du lave en global hook som opfanger alle tryk i windows. En global hook er en .dll fil, da du ikke kan opfange med dit eget program. Ellers hvis du ved hvilket vindue du vil klikke i skal du lave en callback procedure til det vindue med WM_LBUTTONDOWN og WM_RBUTTONDOWN.
Avatar billede dudepres Nybegynder
04. marts 2004 - 10:42 #6
Takker - lav svar nlf så kan i alle dele de utrolig mange point heh.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester