czesc czy dam rade uzyskac taki kod w którym ustawie punkt 1 czyli np x5 y5
i do tego aby mysz klikała w tym momencie i przytrzymujac prawy myszy wędrowała do punktu 2 np y7 x5 ? ;P
- 1
- 2
- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50

- Rejestracja:ponad 22 lata
- Ostatnio:ponad 9 lat
- Postów:1668
podstawy delphi + google(mouse_event + SetCursorPos ); i napiszesz to w 5min sam.
a pytanie nadaje sie tylko do dzialu Newbie. Tam zadawaj reszte swoich pytan jesli nie chcesz zeby Twoje post byly usuwane.
z reszta juz gdzies ostatnio widzialem to pytanie:P

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
Mialem zedytowac post, ale zadałeś w końcu precyzyjniej postawione pytanie. Pogoogluj o funkcjach: SetCursorPos, GetCursorPos
oraz Mouse_Event. Przy ich użyciu zasymulujesz poruszanie jak i klikanie czy trzymanie przycisków myszki. A poza tym, już chyba dzisiaj był taki post. Natomiast nie wiem, czy SendMessage może wysłać jakieś komunikaty związane z myszką. Chyba raczej tylko
te, które związane są z opuszczaniem i wchodzeniem kursora w obszar kontrolki. I o takie podstawy pytaj zawsze w dziale Newbie.

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
cimak: on się zcwanił i na priva mi spamuje. flaq1991: pisz na forum zawsze, bo PMki można tutaj po prostu przeoczyć
dopóki się nie sprawdzi e-maila. A i sam sprawdziłem czy aż takie to trudne. Tobie się po ptostu nie chce samodzielnie
chwile pomyśleć. Poniższy kod u mnie eleganco zaznacza ikonkę IrfanView na pulpicie, bo podałem w tym kodzie takie
współrzędne, jakie pokazal mi stary programik TDWinInfo. Poza tym takie pisanie "dajcie chociaż połowę kodu" - no to
po prostu żałosne trochę. Powinienem Tobie podać po beginie pierwsze 5 linijek i co dalej byś pytał co dalej. Przecież,
nie chce mi się tego sprawdzać, ale mogę się założyć o dowolne pieniądze, że w google na pewno znalazł byś opisy w
jaki spsoób w Delphi użyć tych funkcji, o których wspominaliśmy. Tobie się po prostu nie chce samodzielnie nic robić.
Po tej odpowiedzi, zaraz będą kolejne pytania. Ale pętlę i ewentualnie inne dopracowania kodu to już sobie zrób sam.
Ech, Wy leniuchy, zobaczycie, ktoś niedługo zostanie tutaj nowym modem - to takie posty pewnie wylądują w koszu.
Ostatni raz pomagam na takie lenistwo, bo sam sprawdziłem ten kod i tak dla siebie to już go wkleiłem w całości, bo
wcześniej myślałem, że Mouse_Event "potrzebuje" jeszcze wcześniej funkcji GetCursorPos - lecz jest to tutaj zbędne.
//...
var
Start_P, Stop_P : TPoint;
begin
Start_P.X := 154;
Start_P.Y := 386;
Stop_P.X := 218;
Stop_P.Y := 452;
Application.Minimize;
SetForeGroundWindow(FindWindow('progman', nil));
SetCursorPos(Start_P.X, Start_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Start_P.X, Start_P.Y, 0, 0);
SetCursorPos(Stop_P.X, Stop_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Stop_P.X, Stop_P.Y, 0, 0);
end;




- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
Pod Windows XP na pewno zminimalizuje aplikację, przełączy focus na pulpit (raczej nazwa procesu od
pulpitu w nowszych Windowsach się nie zmieniła chyba, a przynajmniej tak poderzewam), następnie u
mnie w miejscu gdzie mam ikonkę od IrfanView zaznaczy ją i zostawi oczywiście kursor myszki pod jej
prawym dolnym rogiem, a przynjamniej w tej okolicy. Kod na pewno zaznacza obszar, ponieważ przed
jego wykonaniem, zaznaczam sobie inną ikonkę, a po kliknięciu na button jest zaznaczona ta, którą ja
sobie założyłem. Nie wiem co masz pod określonymi współrzędnymi na pulpicie albo jakie w ogole tam
w kodzie podałeś, ale według mnie pod nowszymi Windowsami to powinno zadziałać. Musisz wiedzieć,
że jeżeli daje jakiś dłuższy niż dwie linijki kod, to zawsze go staram się przetestować pod Delphi 7, w
wersji Personal, a także - póki co - pod systemem Windows XP SP 2 Home PL. Jak nie działa to nic Ci
na to nie poradzę, wedlug mnie powinno działać. Chciałeś kod, który zaznaczy jakiś obszar to dałem.
A jak już wklejasz "na pałę" i nie czytasz mojego opisu, że ja testowałem go na pulpicie w celu takim
by zaznaczył mi ikonkę, a Ty nie potrafisz pod IDE wciskając Ctrl+R, zamienić LEFT na RIGHT to... ;/
- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50
lecz Błąd tkwi w tym iż program Miał przytrzymywać LPM a on nie przytrzymuj on klika w te miejsce które ustawiłem w start i później klasycznie wędruje do stop position a ja chciałem aby on to przytrzymywał i przez cały czas i puszczał w stop position :D nie da rady jakoś przerobić ?
ps: debilem raczej nie jestem i zmienilem pozycje na jakie prowadził program lecz nie przytrzymywał... :P

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
Ale czy zmieniłeś LEFT na RIGHT tak jak chcesz mieć to u siebie, to już nie jest dla mnie takie oczywiście. Sorry, ale jak ktoś nie
chce wyszukać w google nic samodzielnie, to ja nie wiem czy kod zmienia tak jak należy. Ten kod poniżej na pewno działa, a te
punkty startowe oraz końcowe są na oddalonym obszarem od ikonki, także klikanie w nie nie powoduje zaznaczenia ikonki, ale
poruszenie kursorem z przytrzymanym - w moim przypadku - lewym przyciskiem, powoduje zaznaczenie ikonki i newet, jeżeli
wcześniej była zaznaczona inna. Pod Windowsem XP i dla lewego przycisku kod na pewno działa. Nie działa, o dziwo - u Ciebie
to nie mam pojęćia dlaczego i nic na to nie poradzę. Nic nie wymyśle, co zrobić by kod działał gdzie indziej, bo mi on działa ;/
var
Start_P, Stop_P : TPoint;
begin
Start_P.X := 150;
Start_P.Y := 400;
Stop_P.X := 216;
Stop_P.Y := 644;
Application.Minimize;
SetForeGroundWindow(FindWindow('progman', nil));
SetCursorPos(Start_P.X, Start_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Start_P.X, Start_P.Y, 0, 0);
SetCursorPos(Stop_P.X, Stop_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Stop_P.X, Stop_P.Y, 0, 0);
end;


- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
flaq1991 napisał(a)
olesio ale ty mnie chyba nie zrozumiałeś :P kod który mi podałeś klika tylko w ikonkę po czym przechodzi do pozycji stop
a ja chciałem aby na starcie przytrzymał ikonkę i ją przeniósł do pozycji stop :D
No to co za problem, ustawiaj kursor na starcie w obszar, na którym na pewno jest ikonka i przenieś ją
podając obszar końcowy na jaki chcesz, tylko że jeżeli tam będzie inna ikonka - to najprawdopodobniej
uruchomisz jakiś program z parametrem jako ta ikonka. Uprzedzę Ciebie, że sprawdziłem i u mnie - na
wspomnianym XP - ikonka kliknięta w jej środek i przeniesiona tym kodem znacznie niżej oraz w prawo
faktycznie się przenosi. Nic innego nie wymyślę. A i jak cimak - radzę samodzielną naukę, od podstaw.
- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50
no tak wpisałem gdzieś w środku kodu Sleep(6464); i co ? po kliknięciu w button program zacina sie na tyle sekun a nie zwalia ruch myszki dlatego pytam. może olesio znasz odpowiedz ?

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
Ech. Żeby sleep nie zawiesił Tobie programu to musiał być raczej te operację zrobić w wątku (opis i
tak go pewnie olejesz masz na: http://4programmers.net/Delphi/Artykuły/Wątki). A Sleep jak już,
to odczekuje tyle milisekund, a nie sekund. Wstawiasz go tam, gdzie potrzebujesz. A jak chcesz w
sposób bardzo płynny mieć zaznaczanie z odstępem czasu to nie wiem - może zrób w pętli wraz ze
Sleepem na 100 milisekund (w wątku może być wartośc poniżej stu) przemieszczanie kursora - to
będziesz miał powolne zaznaczanie lub przenoszenie ikonki tak jakby robil by to chyba - nie wiem,
jakiś anemik. Nic więcej nie wymyślę. Poza tym pouczył byś się podstaw to byś ogarnial, a tak to
po 10000000 pytań napiszesz program, coś tam zadziała albo i nie, a później kolejne 100 pytań.

- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50
nie nie oleje akurat to sobie zaraz przeczytam zawsze chciałem napisać program macro lecz czytałem kilka Artów i juz sobie dałem na wstrzymanie chcialem tylko ten urywek kodu który Będzie plynnie to powtarzał a nie z speedem prędkosci swiatła
dlatego kod mi nie działał wiec to już ostatnie moje pytanie i mój program jest gotowy naprawde to jest dla mnie Biała magia...

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
To ucz się podstaw, to nie będzie magią. Już napisałem co masz zrobić. Chcesz płynnie to w pętli for albo lepiej
repeat ... unil (pętle masz opisane tutaj: http://4programmers.net/Delphi/Składnia_języka/Pętle ustawiaj tak
zmienną dodatkową zmienną typu TPoint Cosik.X i Cosik.Y w taki sposób aby dając po nich SetCursorPos oraz
Sleep z krótkim okresem czasu uzyskać taki efekt jakbyś powoli zaznaczał czy tam przesuwał ikonkę. A jak Ci
nie chce się uczyć podstaw w Delphi, to korzystaj z programow typu AutoHotKey, nagrywaj sobie w nim ruchy
myszą oraz naciskania klawiszy, a później generuj gotowe skrypty, które wykonają reszte rzeczy za Ciebie i .
- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50
No dobra wiem juz ze mi nie pomoŻesz ale spoko :P dzieki za pomoc naprawde ;D nikt inny na tym forum nie odwali gotowca...
a ty jestes wlasnie tym jednym ;D Dziekuje za pomoc, wiem i tak ze raczej sobie nie poradze z tymi Pętlami lecz spróbować mi nikt nie zabrania Pozdrawiam !

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
Dobra masz, ostatni raz wklejam gotowy kod, bo widzę, że ludzie w dupie to mają co się do nich pisze, nie chce im
się nic samodzielnie kombinować. A mnie myślisz ktoś uczył na początku? Kurs z pierdołami w jednym odcinku juz
w nieisnitejącym piśmie "PC ShareWare" (wydawany przez tych samych co teraz chyba "CD Action"), później takie
zabawy w nie dającym się używac Delphi 1 Demo, a następnie pierwsze programy pod Delphi 3 pochodzącym z CD
od Razorów z bodaj szwecji, którą to płytkę pożyczyl mi kumpel. Babole takie jak nie formatowanie w ogóle kodu i
stosowanie ukrytych Listboxów tworzonych dyniamicznie zamiast TStringList, o których istnieniu nie miałem mimo
czytania helpa pojęcia (widać czytalem tak "uważnie" czytalem). Ale człowiek kombinował, czytał FAQ jakieś tam
z chyba jeszcze usenetu. Coś starał się wykombinowac. A Tobie pisze się gdzie masz poczytać, co masz zrobić, a
Ty dalej nic. Daruj sobie programowanie. Jedno jest pewne. Ode mnie już pomocy nie dostaniesz, bo Ty sobie nie
chcesz dać pomóc coś się nauczyć. Ty chcesz tylko gotowca. Ale to takie portable jak niestety peb przy całym dla
nich szacunku jaki mają wkład w to, że mogę sobie obejrzeć Ryśka z Klanu czy inne cool seriale (to żart :P), ale
tam pomagając każdemu pytającemu w zaliczeniach nauczyli chyba ludzi przychodzących tutaj, że im się należy
pomoc i to natychmiast, na wczoraj "bo nauczyciel nic nie tłumaczył", bo "kod nie działa" itd, itp. Anyway, kod
poniższy u mnie działa na pewno, przesuwa ślamazarnie ikonkę najpierw w prawo, później w dół, jak chcesz to
zrobić w innych kierunkach to oczywiście należy zmodyfikować zmienne X oraz Y dla Stop_P oraz odejmować
piksele, a nie je dodawać. Można wykonac ruch w jednej pętli, ale takie przesunięcie jak teraz jest bardziej
precyzyjne, przy moim założeniu. Zresztą podejrzewam, że jakby ktoś sprawdził powyższe kody, pod innym
systemem niż Windows XP to pewnie przesuwanie by mu zadziałało, ale tego nie jestem pewien w 100% i
nie wiem czy osiągniesz teraz efekt z przesuwaniem jaki chciałeś, ale mnie skutecznie zniechęciłeś aby tu
pytajacych o [CIACH!] traktować poważnie i chcieć im pomóc. I mam nadzieję, że nowy mod tego działu w
szybkim czasie po wybraniu wyp......i ten temat do kosza. Do mnie też nie pisz na PMke nie odpowiem i
idę spać. Do pozostałych czytających: tak, wiem za dobry jestem, marnuje swój wolny czas (a mam go
wiele, no ale bez przesady) pisząc to w ogóle, ale chcialem pomóc, ale pytający jest niereformowalny.
const
WaitMS = 100;
MoveByPixels = 5;
var
Start_P, Stop_P, Move_P : TPoint;
begin
Start_P.X := 180;
Start_P.Y := 420;
Stop_P.X := 216;
Stop_P.Y := 644;
Application.Minimize;
SetForeGroundWindow(FindWindow('progman', nil));
SetCursorPos(Start_P.X, Start_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Start_P.X, Start_P.Y, 0, 0);
Move_P.X := Start_P.X;
Move_P.Y := Start_P.Y;
repeat
SetCursorPos(Move_P.X, Move_P.Y);
Move_P.X := Move_P.X + MoveByPixels;
Sleep(WaitMS);
until (Move_P.X >= Stop_P.X);
repeat
SetCursorPos(Move_P.X, Move_P.Y);
Move_P.Y := Move_P.Y + MoveByPixels;
Sleep(WaitMS);
until (Move_P.Y >= Stop_P.Y);
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Move_P.X, Move_P.Y, 0, 0);
end;
EDIT: ech, była szansa zarobku, ale już poszło to niech zostanie, ja nie jestem taki jak nnn [bez obrazy].
I na przyszłośc jak chcesz kupić kod, bo się Tobie nie chce to od tego jest dział forum Offtopic - Praca, a
zresztą wykonujący program wysłal by go pewnie Tobie po zaksięgowaniu wpłaty, a to by nastąpilo raczej
po weekendzie, chyba że wpłacił byś kasę teraz. Czekając na kod, spokojnie sam byś go mógł napisać ;/
- Rejestracja:około 14 lat
- Ostatnio:ponad 12 lat
- Postów:50
Dziekuje Dziekuje i jeszcze raz dziekuje. Dobra kodów juz nie będę chcial od jutra zaczynam czytac kurs z tego forum
Zobaczymy czy to się sprawdzi Wielkie Dziekuje !!!

- 1
- 2