Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

SAMP


  • Please log in to reply
31 replies to this topic
Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
ok ja ich habe es mir so vorgestellt das man in einem Feld ein Passwort eingeben kann und dann auf einen Button klickt. dann soll eine Meldung kommen ob das Passwort richtig oder falsch ist. falls es halt richtig ist soll man die Befehle nutzen können und falls das Passwort falsch ist halt nicht.

xXMotionstylerXx
  • Members
  • 84 posts
  • Last active: Jan 15 2016 08:06 AM
  • Joined: 06 Apr 2013
Das ist der Link zum Gui Smart Creator(mit diesem kannst du Gui's erstellen) http://www.autohotke...artgui-creator/

Dann musst du ein Fenster erstellen mit einem Edit feld und einem Button

Nach dem kannst du dann mit dem Code die Funktion vom Button und von dem Editfeld


Ungefähr so
635 634 ... Sind BSP Koordinaten

Gui, Add, Edit 635 635 635 vPasswortfeld,Passwort

Mit dem <vPasswortfeld> defenierst du dieses Edit feld

Gui, Add, Button 625 342 623 gAbchecken ,Abchecken

Mit dem <gAbchecken> " " " "


Wenn du dies gemacht hast dann melde dich bei mir :)

Eric

Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
ich verstehe das ab vpasswort nicht. sorry

Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

vPasswort weist dem Edit die Variable "Passwort" zu, und ermöglicht es dir, nach der Ausführung eines "Gui, Submit" Befehls, über %Passwort% auf den Inhalt im Editfeld zuzugreifen, also in deinem Fall, zu checken ob das Passwort richtig ist.


Find the recent autohotkey version here: ahkscript.org


Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
:/ Ok. Ich check das irgendwie nicht wirklich. hat jemand ein Beispiel?

xXMotionstylerXx
  • Members
  • 84 posts
  • Last active: Jan 15 2016 08:06 AM
  • Joined: 06 Apr 2013
Hm also im Edit feld steht 15

Die Funktion des buttons ist :

Checken ob im Editfeld 10 steht wenn ja Passwort richtig wenn nein Programm aus

Ich hoffe du hast es verstanden ;)

Eric

nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Hier:
Ein sogenanntes Control (Bestandteil eines Fensters wie z.B. ein Button) können bestimmte Aktionen ausführen wenn man sie Drückt oder ähnliches.
Dafür erstellt man ein sogenanntes Label:

Gui,add,Button, gButtonGeclickt,Hello World! ;einen Button zu einem neuen Fenster hinzufügen 
Gui,show ; dieses Fenster dann zeigen.
return ;warten das etwas passiert
ButtonGeclickt: ;Das Label
Msgbox Hello World ;Eine Magbox mit dem Inhalt Hello World anzeigen lassen.
return ;wieder nichts tun

Wenn du den Code ausführst solltest du ein Fenster zu sehen bekommen, in dem ein Knopf ist.

Wenn du den Knopf clickst erscheint eine Msgbox mit dem Inhalt Hello World!

 

Magie?

 

Nein Hier sehen wir ein Label und ein Knopf der darauf verweist.

Schuld daran ist die Folgende Zeile:

Gui,add,Button, gButtonGeclickt,Hello World!

"Gui" ist erstmal der Befehl mit dem man auf alle Gui Befehle zu greifen kann.

der nächste Teil "add" besagt das wir ein Control hinzufügen möchten.

"Button" gibt an das dieses neue Control ein Knopf sein soll.

"gButtonGeclickt" ist der entscheidende Teil. Er sorgt dafür, dass wenn der Knopf gedrückt wird das Label angesprungen wird welches hinter dem g steht.

Der letzte Teil "Hello World!" legt einfach nur fest was auf dem Knopf stehen soll

 

 

Jetzt das Label

Ein Label ist ziemlich einfach erklärt:

Erst folgt der Labelname dann ein :.

In unserem Fall also:

ButtonGeclickt:

Am Ende jedes Labels muss ein return stehen sonst verursacht man total leicht Fehler:

Buttongeclickt:
.
.
.
return

Zwischen dem Label Anfang und dem return steht nun der Code den wir ausführen wollen.

 

 

vVariablen:

Ein Control (Wie z:B. ein Edit Control) hat nicht nur eine Funktion die ausgelöst werden kann sondern hat auch einen Inhalt:

nämlich den geschriebenen Text

.

Wie sollen wir den jetzt erhalten?

 

Dafür gibt es in Autohotkey die Möglichkeit einem Control eine Variable zuzuweisen:

Gui, Add, Edit, vPasswortfeld,Passwort

Wieder das gleiche wie eben:

  • Gui: alle Gui Funktionen
  • Add: die "ein Control hinzufügen"- Funktion
  • Edit: ein Edit Control hinzufügen
  • vPasswortfeld: diesem Edit-Control die Variable Passwortfeld (!nicht vPasswortfeld) zuweisen.
  • Der Inhalt des Controls wenn es erstellt wird.

Nun müssen wir wenn wir den Inhalt des Controls in die Variable Passwortfeld legen wollen nur noch die folgende Zeile ausführen:

Gui,Submit,NoHide

Dann steht der Inhalt in der Variable Passwortfeld.

 

 

If abfrage:

Das ist für Anfänger häufig ein schwierig ist Thema da hier Sachen Teilweise noch inkonsistent ist. (Für eine echte Sprache wäre es ungefähr eine Sonderfall.(wie z.b im Englischen kein s obwohl es He she oder it ist)).

Diese inkonsistenzen führen am Anfang häufig zu Fehlern (obwohl es eig. leicht ist).

 

Eine If Abfrage vergleich Variablen oder ähnliches miteinander und führt daraufhin Code aus.

Perfekt um deinen eingegebenen String(Text) mit einem anderen String zu vergleichen.

PasswortFeld:="Mein Passwort"
If (Passwortfeld="Mein Passwort")
{
Msgbox HalloWelt!
}

PasswortFeld:="Nicht mein Passwort"
If (Passwortfeld="Mein Passwort")
{
Msgbox HalloWelt!
}

Eine If-Abfrage ist eig. relativ leicht erklärt:

zu erst kommt ein If.

Dahinter steht in Klammern () die sogenannte Bedingung (hier: Passwortfeld="Mein Passwort").

Danach steht in geschweiften Klammern{} der Code (Hier:Msgbox Hallo Welt!). 

Das Passwort hierbei hießt Mein Passwort (ohne Anführungszeichen "").

 

 

Wenn man alles zusammenfügt erhält man eine einfache Passwortabfrage:

Gui,Add,Edit,vPasswort,Passwort
Gui,add,Button,gMeinGosub,Passwort Eingegeben !
Gui,show
return

MeinGosub:
Gui,Submit,NoHide
If (Passwort="Neues Passwort")
{
Msgbox Richtig
}
return

Wenn du dir alles ordentlich durchgelesen hast solltest du in der Lage sein folgende Sachen zu benennen:

  1. Wie heißt die neue Variable des Edit Controls ?
  2. Wie heißt das neue Label des Knopfes ?
  3. Wie heißt das neue Passwort ?

Wenn du das nicht weißt Frag nach (egal ob du jetzt probleme mit Wörtern oder Verständnisprobleme hast).

Wenn du meinst es zu wissen schreib die Antworten hier hin.

Wenn du mehr wissen willst dann Frag nach .

:D

Ich hoffe ich konnte helfen.


Visit the new forum ahkscript.org.

http://ahkscript.org


Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
1. vPasswortfeld
2. Passwort eingegeben
3. Neues Passwort

Und wie mache ich das jetzt das die Befehle freigeschaltet werden, wenn das Passwort richtig ist?

nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

1. Leider nicht. (ohne v)
2. Leider nicht. (das ist der Name)
3. Richtig.
 
Du musst unter jeden Hotkey diese If Abfrage setzten:

Gui,Add,Edit,vPasswort,Passwort
Gui,add,Button,gMeinGosub,Passwort Eingegeben !
Gui,show
return

MeinGosub:
Gui,Submit,NoHide
If (Passwort="Neues Passwort")
{
Msgbox Richtig
Gui,Hide
}
return
F1::
If (Passwort="neues Passwort") 
{
;führe etwas aus 
} 
return 
F2:: 
If (Passwort="neues Passwort") 
{
;führe etwas aus 
} 
return

Visit the new forum ahkscript.org.

http://ahkscript.org


Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

An deiner Stelle würde ich eine Art "Schalter" setzten. Also eine Variable die entweder 0 oder 1 enthält und mit der man dann sehr gut in IF Abfragen arbeiten kann.

In AHK gibt es allerdings keine echten Datentypen (wie hier bspw. Boolean), daher muss man das ganze eher konzeptionell betrachten.

 

Mal ganz kurz die Struktur:

Passwort abfragen
 - passwort falsch -> leader_switch := 0
 - passwort richtig -> leader_switch := 1

...

später wenn ein Leaderbefehl ausgeführt werden soll:

If leader_switch
{
   Befehl ausführen
}

Logischerweise ist das Pseudocode...


Find the recent autohotkey version here: ahkscript.org


Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
danke <3

Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

ja, oder wie nnnik es gemacht hat, aber dann wird bei vielen Befehlen, das Script größer ;)

Außerdem hast du mit AHK das Problem, dass das Passwort jetzt im Quelltext steht und es jeder sehen kann...


Find the recent autohotkey version here: ahkscript.org


Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
@nnnik: habe das jetzt so gemacht, aber irgendwie passiert nichts wenn man auf den Button klickt.
@Alibaba: So wie dz das machst verstehe ich das nicht

nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012
Gui,Add,Edit,vPasswort,Passwort
Gui,add,Button,gMeinGosub,Passwort Eingegeben !
Gui,show
return
 
MeinGosub:
Gui,Submit,NoHide
If (Passwort="Neues Passwort")
{
Msgbox Richtig
Gui,Hide
}
return
F1::
If (Passwort="neues Passwort") 
{
Msgbox F1 gedrückt
} 
return 
F2:: 
If (Passwort="neues Passwort") 
{
 Msgbox F2 gedrückt
} 
return

Es sollte eig. eine Msgbox mit richtig erscheinen wenn du bei meinem Beispiel Code das Passwort richtig eintippst.

Danach solltest du zwei Verschiedene Msgboxen sehen wenn du F1 oder F2 drückst.

 

Poste am besten mal deinen Code.


Visit the new forum ahkscript.org.

http://ahkscript.org


Fresh_
  • Members
  • 15 posts
  • Last active: Aug 24 2013 09:27 PM
  • Joined: 20 Aug 2013
ok danke. aber das mit dem heal und armor klappt net