Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Trzymanie przycisku


Rekomendowane odpowiedzi

Opublikowano

Witam. Piszę sobie pewien mały programik, który jest mi potrzebny. Otóż program ma trzymać spację (cały czas) i co 15 sek wciskać 3 razy "3" co 2 sek bez puszczania spacji . Czy da się takie coś zrobić ? Jeżeli tak to bardzo proszę o napisanie jaką funkcją to zrobić .

ryuw.png

Opublikowano

nie nie da, w API autoit jest mozliwość tylko wciśnięcia jednego klawisza abo sekwencji klawiszy.

 

bardziej rozwinięte wersje skryptów zrobią to co mówisz ale nikomu się nie chce rozwijać tego tematu tak samo jak i pisac specjalnie UDF do obsługi

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

da

 http://www.autoitscript.com/autoit3/docs/functions/AutoItSetOption.htm

SendKeyDownDelay

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Opublikowano

Męczyłem się z tym, ale nie mogę tego zrobić. Jak zrobić żeby trzymał spację przez 10 sek i puściła ją ?

ryuw.png

Opublikowano

To co napisałeś działa w ten sposób, że wciska spację co 10 sek. A to ma trzymać spację przez 10 sek .

ryuw.png

Opublikowano

prosze bardzo

Global $space = True
Global $puase_on = False
Global $trzy_send = 0
HotKeySet("{pause}","pause")
HotKeySet("{end}","end")

space()
AdlibRegister("trzy",2000)
AdlibRegister("trzy_co_15",19000)

Func pause()
If $puase_on = False Then
$space = False
AdlibUnRegister("trzy")
AdlibUnRegister("trzy_co_15")
$puase_on = True
ElseIf $puase_on = True Then
$space = True
AdlibRegister("trzy",2000)
AdlibRegister("trzy_co_15",19000)
$puase_on = False
space()
EndIf
EndFunc

Func trzy_co_15()
$trzy_send = 0
EndFunc

Func trzy()
If $trzy_send = 0 Or $trzy_send = 1 Or $trzy_send = 2 Then
send("{3}")
$trzy_send += 1
ElseIf $trzy_send = 3 Then
EndIf
EndFunc

Func space()
$space = True
While $space = True
send("{SPACE}")
sleep(100)
WEnd
EndFunc

While 1
WEnd

Func end()
Exit
EndFunc

a jednak sie da xD

 

przycisk pause - stop bota/start bota

przycisk end - wylacza bota

 

@EDIT : @DOWN : @marceli96 :

a zobacz moj skrypcik..

 

@EDIT2 : @DOWN : @marceli96 :

a no fakt a dzialalo zaraz poprawie..

 

;Script by ziuto
;Source-code Autoit v3
$User = InputBox("Twoj nick", "Podaj swoj nick", "tu go wpisz")
If $User = "ziuto" Then
$gui = GUICreate("User " & $User, 175, 100, -1, -1, 0x00080000)
$button_lubie_cie = GUICtrlCreateButton("Sam sie lubie", 50, 10)
$button_dam_ci_5_gwiazdek = GUICtrlCreateButton("Dam sobie 5 gwiazdek", 30, 40)
ElseIf $User <> "ziuto" Then
MsgBox(0, "Powitanie", "Siema " & $User)
$gui = GUICreate("User " & $User, 175, 100, -1, -1, 0x00080000)
$button_lubie_cie = GUICtrlCreateButton("Lubie cie ziuto", 47, 10)
$button_dam_ci_5_gwiazdek = GUICtrlCreateButton("Dam ci 5 gwiazdek ziuto", 25, 40)
EndIf
GUISetState(@SW_SHOW, $gui)
While $User = "ziuto"
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
Case $msg = $button_lubie_cie
MsgBox(0, "Lubie sie", "Sam sie lubie :o")
Case $msg = $button_dam_ci_5_gwiazdek
MsgBox(0, "Dam sobie 5 gwiadek", "Ze bym to ja mogl sam sobie dac")
EndSelect
WEnd
While $User <> "ziuto"
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
Case $msg = $button_lubie_cie
MsgBox(0, "Lubie cie", "A za co ?")
InputBox("A za co ?", "Za co mnie lubisz ?", "???")
MsgBox(0, "Za to", "Aha" & @CRLF & "Dobrze to wiedziec xD" & @CRLF & "Nq")
ShellExecute("http://www.mpcforum.pl/")
ExitLoop
Case $msg = $button_dam_ci_5_gwiazdek
ShellExecute("http://www.mpcforum.pl/user/259390-ziuto/")
EndSelect
WEnd


Opublikowano

Nie działa.

 

Oto mój kod :

HotKeySet("{HOME}","start")
HotKeySet("{INSERT}","pauza")
HotKeySet("{END}","stop")
While 1
Sleep(1000)
WEnd
Func start()
ToolTip("Skrypt uruchomiony",0,0,"Powiadomienie",1)
Opt("sendkeydowndelay", 10000)
Send("{SPACE}")
EndFunc
Func pauza()
While 1
ToolTip("Skrypt zapauzowany",0,0,"Powiadomienie",1)
 Sleep(1000)
WEnd
EndFunc
Func stop()
Exit 0
EndFunc

 

@edit

ziuto, coś nie działa . nie wciska "3" w ogóle .

ryuw.png

Opublikowano

drobna pomylka przed wstawieniem znajdz te linijki :

space()
AdlibRegister("trzy",2000)
AdlibRegister("trzy_co_15",19000)

i zamien na

AdlibRegister("trzy",2000)
AdlibRegister("trzy_co_15",19000)
space()

teraz powinno dzialac jak nalezy

 

@EDIT : @DOWN : @Sopele997 :

czyli zamiast spacji wcisnie sie 3 a potem dalej spacje ?

to i tak chyba moze byc ?

 

bo wedlug mnie dziala jak nalezy..

 

@EDIT : @DOWN : @Sopele997 :

czyli zamiast spacji wcisnie sie 3 a potem dalej spacje ?

to i tak chyba moze byc ?

 

@EDIT2 : @DOWN4 : @marceli96 :

AdlibRegister("trzy",2000) ; co 2 sekundy wciska trzy

AdlibRegister("trzy_co_15",19000) ; co pietnascie sekund wciska 3 razy 3

jest tam 19 bo 3 razy 3 zajmuja 6 sekund wiec wsumie mam blad bo powinno byc 21000

 

;Script by ziuto
;Source-code Autoit v3
$User = InputBox("Twoj nick", "Podaj swoj nick", "tu go wpisz")
If $User = "ziuto" Then
$gui = GUICreate("User " & $User, 175, 100, -1, -1, 0x00080000)
$button_lubie_cie = GUICtrlCreateButton("Sam sie lubie", 50, 10)
$button_dam_ci_5_gwiazdek = GUICtrlCreateButton("Dam sobie 5 gwiazdek", 30, 40)
ElseIf $User <> "ziuto" Then
MsgBox(0, "Powitanie", "Siema " & $User)
$gui = GUICreate("User " & $User, 175, 100, -1, -1, 0x00080000)
$button_lubie_cie = GUICtrlCreateButton("Lubie cie ziuto", 47, 10)
$button_dam_ci_5_gwiazdek = GUICtrlCreateButton("Dam ci 5 gwiazdek ziuto", 25, 40)
EndIf
GUISetState(@SW_SHOW, $gui)
While $User = "ziuto"
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
Case $msg = $button_lubie_cie
MsgBox(0, "Lubie sie", "Sam sie lubie :o")
Case $msg = $button_dam_ci_5_gwiazdek
MsgBox(0, "Dam sobie 5 gwiadek", "Ze bym to ja mogl sam sobie dac")
EndSelect
WEnd
While $User <> "ziuto"
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
Case $msg = $button_lubie_cie
MsgBox(0, "Lubie cie", "A za co ?")
InputBox("A za co ?", "Za co mnie lubisz ?", "???")
MsgBox(0, "Za to", "Aha" & @CRLF & "Dobrze to wiedziec xD" & @CRLF & "Nq")
ShellExecute("http://www.mpcforum.pl/")
ExitLoop
Case $msg = $button_dam_ci_5_gwiazdek
ShellExecute("http://www.mpcforum.pl/user/259390-ziuto/")
EndSelect
WEnd


Opublikowano

@up, to nie to czego szuka, adlibregister nie działa tak jak myślisz. On zatrzymuje skrypt, aby wykonać poszczególne instrukcje. (jakby wdziera się pomiędzy aktualnie wykonywane instrkucje.)

Autoit nie obsługuje wielowątkowości więc jest to niemożliwe do wykonania w tym języku.

 

@marceli96

OPT ustawiaj na początku

Opublikowano

Znalazłem pewne zagadnienie w remarksach funkcji Send.

To hold a key down (generally only useful for games)

Send("{a down}") ;Holds the A key down

Send("{a up}") ;Releases the A key

 

 

A więc:

$time = 10 ;czas wcisniecia (sekundy)
$key = "1" ;klawisz

Send ("{"&$key&" down}")
Sleep ($time*1000)
Send ("{"&$key&" up}")

Opublikowano

@Sopel

 

Eh... AdLibRegistser nie zatrzymuje żadnego skryptu :] On działa na zasadzie SetTimer -> przerzuca wykonywanie funkcji na Windowsa.

Funkcja jest wywoływana przez WinApi co X czasu.

 

I choć, faktycznie, wielowątkowości nie obsługuje, to jednak w ten sposób - poniekąd - jest możliwe nią osiągnąć.

 

MSDN sam informuje, że SetTimer nie zapewnia żadnej synchronizacji, i odnoszenie się do globalnych danych programu ma efekt nieprzewidywalny.

 

Jednak do wykonywania powtarzalnych zadań, niezależnie od stanu danych aplikacji, AdLibRegister nadaje się całkiem nieźle.

Ta sygnatura jest pusta.

Opublikowano

Troszkę się pogubiłem. Więc da radę zrobić taki skrypt czy nie za bardzo ?

 

@edit

ziuto, skrypt działa jak należy. Mógłbyś mi jeszcze podać linijki, które odpowiadają za czas ? Żebym w razie czego mógł zmienić.

ryuw.png

Opublikowano

przecież ci opisał która zmienna odpowiada za czas

 

jakbyś nie wiedział to SLEEP w skrypcie

If you = stupid then

insert(foot.in.your.ass)

end if

licznik-54-96732-stat.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...