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

Jak Zrobić wyłączanie programu na hasło?


Rekomendowane odpowiedzi

Opublikowano
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
GUICreate("Troll",@DesktopWidth,@DesktopHeight,0,0)


$hInput_end = GUICtrlCreateInput("Podaj kod tutaj", 100, 50, 100, 20)
$hButton_end = GUICtrlCreateButton("Koniec", 100, 120, 100, 25)
$kod = 123456




While 1
GUISetState()
Sleep(100)
GUISetBkColor(0xff0000)
Sleep(100)
GUISetBkColor(0x00ff00)
Sleep(100)
GUISetBkColor(0x0000ff)




$msg = GUIGetMsg()  ;odczytanie ID zdarzenia jakie zaszło w GUI
   Switch $msg
 case $GUI_EVENT_CLOSE, $hButton_end


If $hInput_end = $kod Then
ExitLoop
ElseIf Then
MsgBox($MB_SYSTEMMODAL, "Error", "Zły kod", 10) ; chcę tutaj dodać odliczanie 10s. ale jeszcze nie wiem jak.
EndIf


 EndSwitch
WEnd


While 2
   Sleep(100)
GUISetBkColor(0xff0000)
Sleep(100)
GUISetBkColor(0x00ff00)
Sleep(100)
GUISetBkColor(0x0000ff)
   WEnd

To jest kod tego okna, ale no nie wiem dlaczego nie mogę ustawić funkcji If w switch :<

1377774857-U369478.png

Opublikowano

Widzę, że tworzysz wkur...cza dla lamerów.

Przejrzałem kod dokładnie i masz parę błędów formalnych (oprócz tego ElseIf):

1. Zmienna $hInput_end nie zawiera zawartości pola INPUT, lecz uchwyt do kontrolki, odczyt zawartości funkcja GUICtrlRead, której argumentem musi być właśnie ten uchwyt.

2. GuiSetState() nie powinien być w pętli, lecz przed nią.

3. W pętli za dużo Sleep'ów, stąd większość czasu pętla spędza na oczekiwaniu. Powoduje to trudności przechwycenia zdarzenia wciśnięcia klawisz.

 

Pozmieniałem trochę też kod, aby był bardziej elegancki, a skrypt lepiej wyglądający w działaniu.

Oto moja propozycja:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Dim $sKod = 123456, $iLicznik=0

GUICreate("Troll", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP )

$hInput_end = GUICtrlCreateInput("", 100, 50, 100, 20)
GUICtrlCreateLabel("Podaj kod:", 100, 30)
$hButton_end = GUICtrlCreateButton("Koniec", 100, 120, 100, 25)

GUISetState()

While 1
   $msg = GUIGetMsg()
   Switch $msg
      case $hButton_end
         If GUICtrlRead($hInput_end) = $sKod Then
             ExitLoop
         Else
             MsgBox(16, "Error", "Zły kod!", 3)
         EndIf
   EndSwitch
   $iLicznik += 1
   If $iLicznik>4 Then
	  GUISetBkColor(Random(0, 0xFFFFFF))
	  $iLicznik = 0
   EndIf
   Sleep(25)
WEnd

Nie wiem do czego była druga pętla, więc ją usunąłem.

Polecam mój podręcznik do AutoIt'a na Wikibooks: https://pl.wikibooks.org/wiki/AutoIt

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...