Tasker w oknie

2013-02-17 14:55
0

Witam, otóż chciałbym zrobić taki mini program który będzie klikał F7 > (1s) > F7 > (1s) > F4 i tak w kółko. Wiem że można takie coś zrobić taskerem ale mi zależy żeby to działało w tle, żeby mógł coś robić na kompie a nie mieć to okno ciągle otwarte. Dowiedziałem się narazie jedynie że potrzebuję zrobić uchwyt okna. Prosiłbym o jakieś wskazówki. A i w jakim języku najlepiej to napisać.

Pozostało 580 znaków

2013-02-17 15:09
0

w jakim języku najlepiej to napisać

Język to jedynie narzędzie - nie ma znaczenia.
Może być Lazarus/Delphi, C++ (...).


Pozostało 580 znaków

2013-02-17 15:12
0

"Najlepiej" w sensie najłatwiej...

Pozostało 580 znaków

2013-02-17 15:55
1

c/c++ 1 funkcja + 1 petla


!user image
I am the master of my fate. I am the captain of my soul.

Pozostało 580 znaków

2013-02-17 16:07
0

Ale wy się lubicie drażnić. Dobrze wiecie że takie odpowiedzi w niczym mi nie pomogą, ja was nie rozumiem. Skoro to na prawdę jest jedna funkcja to dlaczego do jasnej ciasnej nie podpowiesz jaka?!

Pozostało 580 znaków

2013-02-17 17:25
3

Dlaczego? Bo nie lubie lenistwa. Na tym forum tylko znajdziesz kilkadziesiat tematow odpowiadajacych na to pytanie wraz z przykladowym kodem. W google znajdziesz kilka tysiecy stron odpowiadajacych na to pytanie i wiele innych. Wystarczy troche wlasnego wysilku, zamiast zadawac w kolko po milion razy te same pytania.

Naucz sie jednej podstawowej rzeczy, ktora wg mnie kazdy programista powinien potrafic. Najpierw research i szukanie odpowiedzi, potem jesli nigdzie nie znajdzie sie takiej proszenie innych o pomoc pokazujac jednoczesnie, ze cos probowalo sie samemu zrobic.


!user image
I am the master of my fate. I am the captain of my soul.
edytowany 1x, ostatnio: Krycho, 2013-02-17 17:25

Pozostało 580 znaków

2013-02-17 18:15
0

Szukałem, dużo szukałem, ale nic nie zrozumiałem... Na razie wiem jedynie że do wciskania klawiszy muszę użyć keybd_event a z tym uchwytem szukałem już łącznie z 20 h ( od paru tygodni mnie to męczy ) i wciąż nie rozwiązałem i dopiero teraz napisałem...

Pozostało 580 znaków

2013-02-17 18:56
3

Jakbyś pomyślał i poszukał skutecznie to byś dawno już znalazł. To żaden problem. Trzeba tylko chcieć, a nie narzekać "e nie podali mi gotowego kodu, nie skompilowali go jeszcze bezczelenie za mnie, a przecież jak podadzą nawet gotowca to ja i tak z niego nie będe umiał skorzystąć i zadam dodatkowych 965885103 - pytań zamiast po prostu pogooglować".

Przykro mi, ale tak widzę - Twój tok myślenia i postępowania. Jeżeli chcesz konkretów to zaintersuj się programem z językiem skryptowym AutoHotKey. Posiada on też narzędzia do nagrywania poleceń, jak przemieszczanie myszki, aktywowanie okien czy naciskanie klawiszy i odstępy między tymi czynnościami. Także do tak prostego zadania w ogóle nie trzeba znać składni języka skryptów *.ahk. A i w razie czego posiada on bogatą dokumentację, oficjalne forum supportu i wiele przykładów zawartych na nim.

Natomiast ja osobiście zakodował bym to w Delphi albo innym języku, który pozwoli skompilowac kod pod Windowsem i używać funkcji WinAPI. Ponieważ do takich celów jak symulowanie naciskania klawiszy (lub klikania myszką) służy funkcja SendInput. Trzeba sobie o niej na MSDN'ie doczytać. Tylko trzeba pamiętać, że dla pomyślnego zasymulowania pewnych klawiszy, jak na przykład VK_CONTROL potrzebna jest dodatkowa flaga, ustawiona w dwFlags na KEYEVENTF_EXTENDEDKEY. Natomiast do odczekiwania jest mnóśtwo mechanizmów, chyba większośc języków programowania posiada coś w stylu Sleep.

Także googluj, kombinuj sam i myśl, a dopiero później pytaj. Wylewanie żali, że nie podano Tobie gotowca, na pewno nie sprawi, że program się napisze. Swoją drogą przez 20 godzin można było spokojnie nauczyć się podstaw programowania w jakims języku, wcześniej pobierając kursy i kompilator z jakimś IDE, w którym dawno byś to napisał SAM.


Pozostało 580 znaków

2013-02-17 19:37
0

No zrobiłem sobie ten skrypcik w AutoHotKey :

Loop,
{
Sleep 800
Send {F7}
Sleep 800
Send {F7}
Sleep 800
Send {F4}
}

Ale podczas używania tego skryptu muszę mieć okno gry ( bo chce aby tam to działało ) zawsze na wierzchu. A więc jak zrobić żeby to sobie działało jakoś tylko w w tym jednym oknie (gry). A ja w tym czasie mógłbym robić coś innego... (np. uczyć się jakiegoś języka :D)

edytowany 1x, ostatnio: Sevox, 2013-02-17 19:37

Pozostało 580 znaków

2013-02-17 19:43
0

Nie jest to według mnie możliwe, ponieważ SendInput, a z tego podejrzewam kiedyś przeglądając źródła w C++ AutoHotKey'a - z tej funkcji korzysta - symuluje użycie klawiatury. Można tylko jeszcze spróbować, czy okno gry nie reaguje na komunikaty WM_KEYDOWN i próbować je wysłać do okna gry przez funkcje PostMessage albo SendMessage. Jednak większość gier, szczególnie pełnoekranowe działające pod DirectX albo SDL czy innymi silnikami, mają tak zrobioną obsługę klawiatury, że łatwo tego nie ogarniesz. Ja przynajmniej nie wiem do końca w jaki sposób zrobić to skutecznie. Może ktoś inny coś jeszcze Tobie tutaj doradzi. Nie ma tak lekko, wszyscy by chcieli żeby trzema linijkami kodu zrobić super hiper narzędzie, które za nich będzie odpisywać na e-maile i robić wszystko z nich, a oni sobie będą na komputerze robić coś innego w tym czasie. Tak to nie działa. Jeżeli i tak już oszukujesz w grze, przez takie automatyzowanie czynności, to zostaw komputer włączony na noc albo kiedy Ciebie nie ma w domu i nie musisz go używac, wyłącz monutor, a program niech sobie działa i symuluje naciskanie klawiszy czy inne rzeczy.


Pozostało 580 znaków

2013-02-17 19:46
0

SendMessage bedzie dzialal o ile okno nie bedzie zminimalizowane a w tle. Mozna ogladac film czy robic cos innego a input bedzie przesylany.


!user image
I am the master of my fate. I am the captain of my soul.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0