Ĺadny brzuch
Witam
Temat kierowany jest do użytkowników myszek A4 tech z oprogramowaniem Oscar. W sumie nie wiedziałem gdzie umieścić ten temat ale jeżeli moderatorzy uznają że się nie nadaje na ten dział to proszę przenieść
Otóż już troszkę podszkoliłem się w programowaniu podstawowych makr ale nurtuje mnie sprawa makr z warunkami. Chodzi mi o to żeby zrobić makro typu
Shift + prawy przycisk = F1
Kombinuje z z zakładką "KEY" w edytorze ale nie mogę skojarzyć jak to działa. Domyślam się jedynie że jeżeli wstawiam za pomocą tej zakładki linię która wygląda
If the key 1 is pressed then jum to line: 7
to 7 to oczywiście linia kodu i w moim przypadku w tej linii byłoby
Press <f1> key
delay ... itd
zaś "key 1" jest jakąś zmienną pod którą należy wstawić klawisz lub kombinację klawiszy. Tylko nie wiem jak to zrobić i czy wogóle idę dobrym tokiem rozumowania. Na początku myślałem że key 1 to lewy klawisz myszy i reszta numerów odpowiada każdemu z klawiszy myszki. Jednak jak rozwinąłem listę to tam jest od Key 1 do key 16.
Jeżeli ktokolwiek ma jakikolwiek pomysł jak to zrobić albo kogoś kto rozgryzł to oprogramowanie byłbym bardzo wdzięczny. Dodam tylko że przeczytałem manual i tam jest kilka prostych makr a nic o makrach z warunkami
//EDYCJA
Problem połowicznie rozwiązany, mam nadzieje że komuś sie przyda. Od pomocy technicznej dostałem taką odpowiedź
Witam,
Te zakładki pozwalają nadawać warunki poleceniom makra. Są to typowe operatory warunkowe jak w każdym języku programowania, może być trudno to zrozumieć jeśli nie miało się do czynienia choćby z podstawami programowania ale w skrócie odpowiednie z tych opcji działają tak:
LOOP:
pozwala wstawić intrukcję zapętlenia wykonywania poszczególnych instrukcji makra od linii A do linii B. Na przykladowym obrazku widać to pod numerem linii 18, wstawiłem polecenie aby kod makra wykonywał się 2 razy od linii 7 do linii 17.
KEY:
pozwala uzależnić wykonanie fragmentu kodu makara od tego czy wciśnięty lub nie jest dany przycisk myszy, jeśli warunek jest spełniony makro przejdzie od razu do numeru linii, którą się poda jako parametr (pomijajac kod znajdujący się przed tą linią). Jest to linia 12 w zamieszczonym przykładzie, zdefiniowałem w niej żeby program sprawdził czy w tym miejscu w którym jest wykonywana ta linia, wciśniety jest 2-gi przycisk myszy i jesli tak to żeby pominął linie od 13 do 18 (czyli ruch myszki do pozycji x,y oraz wcisniecie lewego przycisku)
IF:
pozwala wstawić sprawdzenie czy jakaś zmienna zdefiniowana w treści makra jest równa bądź różna od danej wartości i jeśli warunek ten jest spełniony, przejść do danej linii kodu.
EQU:
pozwala ustawić wartości zmiennych, przypisywać im wartość liczbową lub wartość innej zmiennej. z kodem
7|mouse_move_to x=322 y=464 8|Press_right_button 9|Delay 64 Milisecond 10|Release_right_button 11|Delay 64 Milisecond 12|If the key 2 is pressen then jump to line no:19 13|mouse_move_to x=441 y=602 14Press_left_button 15|Delay 64 Milisecond 16|Release_left_button 17|Dealy 64 Milisecond 18|Repeat from line no:7 and 2 times 19|
Później dołączyłem poniższy kod odnośnie pomysłu Shift+ppm=F1 w przypadku gdy pod klawisz 5 na myszce jest podpisany shift i zapytałem
7|If the key 5 is pressend then jump to line no:11 8|Press_left_button 9|Delay 64 miliseconds 10|Release_left_button 11|Press <F1> key 12|Dealy 64 Milisecond 13|Release <F1> key 14|Dealy 64 Milisecond
1. jak uniknąć wykonania linii 11 w przypadku gdy 5 nie jest
wciśnięty
2. Czy jest jakiś inny sposób na zrobienie takiego makra. Najlepiej
bez podpisywania shifta po którykolwiek klawisz myszy
Do czego mogą przydać zakładki IF oraz EQU? Oczywiście rozumiem jak
działają ale jakoś nie wyobrażam
sobie zastosowania. Chciałbym to wiedzieć bo może jak zobaczę jakiś
przykład to znajdę zastosowanie ich w moich przyszłych skryptach.
na co dostałem odpowiedź
Niestety też jesteśmy jako dystrybutor pozbawieni tak szczegółowych
informacji, warto byłoby poszukać informacji w internecie, na pewno ktoś już
to rozgryzł od A do Z. Więc z tymi Key1-16 to nie wiem jak jest, możliwe że
są to z takim naddatkiem (może do przyszłych bardziej rozbudowanych modeli)
zdefiniowane numery przycisków myszki.
Zeby uniknac wykonania linii gdy dany przycisk nie jest wciśnięty wstawiamy
(przed tą linią) polecenie z zakładki KEY, z tym że w drugim jej parametrze
zamiast PRESSED dajemy RELEASED i kierujemy skok do linii nastepnej za
poleceniami których wykonywać w takim przypadku nie zamierzamy. Natomiast
nie wydaje mi się żeby zadziałało to z SHIFTEM, niestety nie mam w tej
chwili myszki oscar pod ręką żeby to przetestować ale wydaje mi się że po
przypisaniu np. pod przycisk 5 jakiegoś klawisza (np. SHIFT) możena jedynie
emulować jego naciśnięcie wciskajac klawisz 5 myszki, natomiast nie można
raczej sprawdzić a makrze czy klawisz SHIFT jest wciśnięty, taki test
odnośnie klawisza 5 myszki da nam tylko sprawdzenie czy klawisz 5 myszki
jest wciśnięty. Tak więc myślę że nie ma możliwości w makrze dot. myszki
badania stanu klawiatury.
Co do zakładek IF i EQU to faktycznie też nie mam pomysłu. Niestety nie mam
możliwości zagłębić się w ten temat szerzej, na pewno ma to jakiś sens, np.
można gdzieś w kodzie makra użyć EQU żeby zdefiniować wartości zmiennych (na
podobieństwo flag kontrolnych), różne w paru miejscach. Makro mogłoby by
mieć w sobie instrukcje warunkowe np. "if key..." więc dopuszczone byłyby
skoki omijające pewne części kodu. Teraz można byłoby sprawdzając wartości
zmiennej przy pomocy IF dowiedzieć się jaką drogą przebiegło makro.
Użytkownik doman18 edytował ten post 16 grudzień 2008, 22:27
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Temat kierowany jest do użytkowników myszek A4 tech z oprogramowaniem Oscar. W sumie nie wiedziałem gdzie umieścić ten temat ale jeżeli moderatorzy uznają że się nie nadaje na ten dział to proszę przenieść
Otóż już troszkę podszkoliłem się w programowaniu podstawowych makr ale nurtuje mnie sprawa makr z warunkami. Chodzi mi o to żeby zrobić makro typu
Shift + prawy przycisk = F1
Kombinuje z z zakładką "KEY" w edytorze ale nie mogę skojarzyć jak to działa. Domyślam się jedynie że jeżeli wstawiam za pomocą tej zakładki linię która wygląda
If the key 1 is pressed then jum to line: 7
to 7 to oczywiście linia kodu i w moim przypadku w tej linii byłoby
Press <f1> key
delay ... itd
zaś "key 1" jest jakąś zmienną pod którą należy wstawić klawisz lub kombinację klawiszy. Tylko nie wiem jak to zrobić i czy wogóle idę dobrym tokiem rozumowania. Na początku myślałem że key 1 to lewy klawisz myszy i reszta numerów odpowiada każdemu z klawiszy myszki. Jednak jak rozwinąłem listę to tam jest od Key 1 do key 16.
Jeżeli ktokolwiek ma jakikolwiek pomysł jak to zrobić albo kogoś kto rozgryzł to oprogramowanie byłbym bardzo wdzięczny. Dodam tylko że przeczytałem manual i tam jest kilka prostych makr a nic o makrach z warunkami
//EDYCJA
Problem połowicznie rozwiązany, mam nadzieje że komuś sie przyda. Od pomocy technicznej dostałem taką odpowiedź
Witam,
Te zakładki pozwalają nadawać warunki poleceniom makra. Są to typowe operatory warunkowe jak w każdym języku programowania, może być trudno to zrozumieć jeśli nie miało się do czynienia choćby z podstawami programowania ale w skrócie odpowiednie z tych opcji działają tak:
LOOP:
pozwala wstawić intrukcję zapętlenia wykonywania poszczególnych instrukcji makra od linii A do linii B. Na przykladowym obrazku widać to pod numerem linii 18, wstawiłem polecenie aby kod makra wykonywał się 2 razy od linii 7 do linii 17.
KEY:
pozwala uzależnić wykonanie fragmentu kodu makara od tego czy wciśnięty lub nie jest dany przycisk myszy, jeśli warunek jest spełniony makro przejdzie od razu do numeru linii, którą się poda jako parametr (pomijajac kod znajdujący się przed tą linią). Jest to linia 12 w zamieszczonym przykładzie, zdefiniowałem w niej żeby program sprawdził czy w tym miejscu w którym jest wykonywana ta linia, wciśniety jest 2-gi przycisk myszy i jesli tak to żeby pominął linie od 13 do 18 (czyli ruch myszki do pozycji x,y oraz wcisniecie lewego przycisku)
IF:
pozwala wstawić sprawdzenie czy jakaś zmienna zdefiniowana w treści makra jest równa bądź różna od danej wartości i jeśli warunek ten jest spełniony, przejść do danej linii kodu.
EQU:
pozwala ustawić wartości zmiennych, przypisywać im wartość liczbową lub wartość innej zmiennej. z kodem
7|mouse_move_to x=322 y=464 8|Press_right_button 9|Delay 64 Milisecond 10|Release_right_button 11|Delay 64 Milisecond 12|If the key 2 is pressen then jump to line no:19 13|mouse_move_to x=441 y=602 14Press_left_button 15|Delay 64 Milisecond 16|Release_left_button 17|Dealy 64 Milisecond 18|Repeat from line no:7 and 2 times 19|
Później dołączyłem poniższy kod odnośnie pomysłu Shift+ppm=F1 w przypadku gdy pod klawisz 5 na myszce jest podpisany shift i zapytałem
7|If the key 5 is pressend then jump to line no:11 8|Press_left_button 9|Delay 64 miliseconds 10|Release_left_button 11|Press <F1> key 12|Dealy 64 Milisecond 13|Release <F1> key 14|Dealy 64 Milisecond
1. jak uniknąć wykonania linii 11 w przypadku gdy 5 nie jest
wciśnięty
2. Czy jest jakiś inny sposób na zrobienie takiego makra. Najlepiej
bez podpisywania shifta po którykolwiek klawisz myszy
Do czego mogą przydać zakładki IF oraz EQU? Oczywiście rozumiem jak
działają ale jakoś nie wyobrażam
sobie zastosowania. Chciałbym to wiedzieć bo może jak zobaczę jakiś
przykład to znajdę zastosowanie ich w moich przyszłych skryptach.
na co dostałem odpowiedź
Niestety też jesteśmy jako dystrybutor pozbawieni tak szczegółowych
informacji, warto byłoby poszukać informacji w internecie, na pewno ktoś już
to rozgryzł od A do Z. Więc z tymi Key1-16 to nie wiem jak jest, możliwe że
są to z takim naddatkiem (może do przyszłych bardziej rozbudowanych modeli)
zdefiniowane numery przycisków myszki.
Zeby uniknac wykonania linii gdy dany przycisk nie jest wciśnięty wstawiamy
(przed tą linią) polecenie z zakładki KEY, z tym że w drugim jej parametrze
zamiast PRESSED dajemy RELEASED i kierujemy skok do linii nastepnej za
poleceniami których wykonywać w takim przypadku nie zamierzamy. Natomiast
nie wydaje mi się żeby zadziałało to z SHIFTEM, niestety nie mam w tej
chwili myszki oscar pod ręką żeby to przetestować ale wydaje mi się że po
przypisaniu np. pod przycisk 5 jakiegoś klawisza (np. SHIFT) możena jedynie
emulować jego naciśnięcie wciskajac klawisz 5 myszki, natomiast nie można
raczej sprawdzić a makrze czy klawisz SHIFT jest wciśnięty, taki test
odnośnie klawisza 5 myszki da nam tylko sprawdzenie czy klawisz 5 myszki
jest wciśnięty. Tak więc myślę że nie ma możliwości w makrze dot. myszki
badania stanu klawiatury.
Co do zakładek IF i EQU to faktycznie też nie mam pomysłu. Niestety nie mam
możliwości zagłębić się w ten temat szerzej, na pewno ma to jakiś sens, np.
można gdzieś w kodzie makra użyć EQU żeby zdefiniować wartości zmiennych (na
podobieństwo flag kontrolnych), różne w paru miejscach. Makro mogłoby by
mieć w sobie instrukcje warunkowe np. "if key..." więc dopuszczone byłyby
skoki omijające pewne części kodu. Teraz można byłoby sprawdzając wartości
zmiennej przy pomocy IF dowiedzieć się jaką drogą przebiegło makro.
Użytkownik doman18 edytował ten post 16 grudzień 2008, 22:27