|
You last visited: Today at 04:48
Advertisement
Tratsch rund um Autoit / Autoit Talk | kleinere Fragen
Discussion on Tratsch rund um Autoit / Autoit Talk | kleinere Fragen within the AutoIt forum part of the Coders Den category.
07/03/2013, 19:44
|
#1411
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
@Requi
Das ist egal.
Quote:
Originally Posted by »FlutterShy™
Ne . Nur halt wenn im String " vorkommt nimmt man '
|
Msgbox(0,0,"String""xD")
MfG
|
|
|
07/03/2013, 21:33
|
#1412
|
elite*gold: 278
Join Date: Aug 2010
Posts: 145
Received Thanks: 19
|
Schleife oder ähnliches
Hi,
ich habe auch nocheinmal eine Frage und zwar habe ich eine Script, indem ein Benutzername und ein Passwort aus jeweils einem Textfeld ausgelesen wird. Jetzt habe ich es so gemacht das der Benutzer mehrere Benutzer und Passwörter eingeben kann d.h. mehrere Textfelder.
Jetzt zu meiner Frage  : Ist es möglich, mit einer Schleife oder ähnlichem es so hinzukriegen das er beim 1. Durchlauf Benutzer1 nimmt und beim 2. Benutzer2?
Denn in meiner jetzigen Form ist der Script ewig lang, da ich den Vorgang immer nur hintereinander eingefügt habe.
Danke für eure Hilfe
Gruß
Evoh
|
|
|
07/03/2013, 22:10
|
#1413
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by evoh12
Hi,
ich habe auch nocheinmal eine Frage und zwar habe ich eine Script, indem ein Benutzername und ein Passwort aus jeweils einem Textfeld ausgelesen wird. Jetzt habe ich es so gemacht das der Benutzer mehrere Benutzer und Passwörter eingeben kann d.h. mehrere Textfelder.
Jetzt zu meiner Frage  : Ist es möglich, mit einer Schleife oder ähnlichem es so hinzukriegen das er beim 1. Durchlauf Benutzer1 nimmt und beim 2. Benutzer2?
Denn in meiner jetzigen Form ist der Script ewig lang, da ich den Vorgang immer nur hintereinander eingefügt habe.
Danke für eure Hilfe
Gruß
Evoh
|
2d Array mit Benutzer|Passwort und dann in einer For-Schleife durchgehen.
Gleich kommt noch ein Beispiel
€dit:
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 223, 165, 192, 124)
$Benutzer = GUICtrlCreateInput("Benutzer", 32, 32, 169, 21)
$Password = GUICtrlCreateInput("Password", 24, 64, 137, 21)
$Go = GUICtrlCreateButton("Go", 32, 112, 89, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
Global $aUserPassword[10][2] = [['Benutzer1', 'Passwort1'], _
['Benutzer2', 'Passwort2'], _
['Benutzer3', 'Passwort3'], _
['Benutzer4', 'Passwort4'], _
['Benutzer5', 'Passwort5'], _
['Benutzer6', 'Passwort6'], _
['Benutzer7', 'Passwort7'], _
['Benutzer8', 'Passwort8'], _
['Benutzer9', 'Passwort9'], _
['Benutzer10', 'Passwort10']]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Go
For $i = 0 To UBound($aUserPassword) - 1
If GUICtrlRead($Benutzer) == $aUserPassword[$i][0] And GUICtrlRead($Password) == $aUserPassword[$i][1] Then
MsgBox(0x40, 'Hi', 'OK')
ExitLoop
EndIf
Next
EndSwitch
WEnd
Beispiel-Benutzername: Benutzer1
Beispiel-Passwort: Passwort1
MfG
|
|
|
07/04/2013, 15:31
|
#1414
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Ich hab mal ne Frage.. undzwar ist es ja so wenn man einen Button drückt, wird die Aufgabe die der Button besitzt nur 1-mal ausgeführt. Wie griegt man es hin wenn man z.B. ne Zahl "10" durch den Button runterzählen lassen will. Also so das wenn einmal geklickt wird auch nur eine Zahl runtergezählt wird und wenn der Button länger gedrückt wird er automatisch schon weiter runterzählt bis man den Button wieder los lässt. Und danach soll ein anderer Button wiederhochzählen ggf. wenn er über 10 ist disablen so dass man nicht über 10 kommen kann.
Edit:Habs schon so weit das die Buttons disabled werden falls 0 oder über 10 sodass nicht tiefer und höher gezählt werden kann.. nur komm ich nicht drauf wie man die Button gedrückthalten funktion hingriegt.
|
|
|
07/04/2013, 16:07
|
#1415
|
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
|
Das kommt drauf an, was genau du haben möchtest.
Grundsätzlich kannst du einfach in der Funktion eine For-Schleife machen, die 10 mal durchgegangen wird. Da machst du halt ein Sleep(1000) rein und verringerst die Zahl in jedem Durchgang um 1.
Code:
Func button()
For $i= 1 To 10
$zahl -= 1
Sleep(1000)
Next
EndFunc
Das Problem ist, dass in der Zeit nichts anderes gemacht werden kann.
Willst du gleichzeitig andere Befehle ausführen, kannst du eine Funktion machen, die die Zahl verringert und per AdlibRegister alle 1000ms ausführen.
Dann baust du noch mit AdlibUnregister ein, dass die Funktion nicht weiter aufgerufen wird, wenn die Zahl 0 erreicht.
Code:
AdlibRegister("button", 1000)
Func button()
$zahl -= 1
If $zahl = 0 Then AdlibUnRegister("button")
EndFunc
Die dritte Möglichkeit wäre, eine Variable zu machen, die angibt, ob der Button gedrückt wurde und einen Timer zu starten, wenn der Button gedrückt wird. Dann fragst du in der Main-Schleife des Scripts ab, ob der Button gedrückt wurde und wenn ja, ob 1000ms seit dem letzten Verringern der Zahl vergangen sind, verringerst sie ggf und setzt den Timer wieder auf 0.
Code:
$gedrueckt = False
$t = 0
While 1
If $gedrueckt Then
If TimerDiff($t) >= 1000 Then
$zahl -= 1
$t = TimerInit()
If $zahl = 0 Then $gedrueckt = False
EndIf
EndIf
WEnd
Func button()
$gedrueckt = TrayCreateItem
Next
PS: Da wo hier nur $zahl-=1 steht, musst du natürlich auch das entsprechende Label im GUI updaten.
|
|
|
07/04/2013, 16:19
|
#1416
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by -STORM-
Das kommt drauf an, was genau du haben möchtest.
Grundsätzlich kannst du einfach in der Funktion eine For-Schleife machen, die 10 mal durchgegangen wird. Da machst du halt ein Sleep(1000) rein und verringerst die Zahl in jedem Durchgang um 1.
Das Problem ist, dass in der Zeit nichts anderes gemacht werden kann.
Willst du gleichzeitig andere Befehle ausführen, kannst du eine Funktion machen, die die Zahl verringert und per AdlibRegister alle 1000ms ausführen.
Dann baust du noch mit AdlibUnregister ein, dass die Funktion nicht weiter aufgerufen wird, wenn die Zahl 0 erreicht.
PS: Da wo hier nur $zahl-=1 steht, musst du natürlich auch das entsprechende Label im GUI updaten.
|
Der zählt jetzt runter richtig, aber er zählt auch weiter wenn der Button nicht mehr gedrückt ist.. ich hab mir da sowas ähnliches wie bei dem GuiCtrlCreateUpDown vorgestellt.
|
|
|
07/04/2013, 16:44
|
#1417
|
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
|
Den Button gedrückt zu halten, ist eigentlich nicht vorgesehen.
Indirekt könntest du das lösen, indem du abfragst, ob die Maustaste gedrückt ist, und wenn ja, ob der Zeiger sich über dem Button befindet.
|
|
|
07/04/2013, 17:45
|
#1418
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by -STORM-
Den Button gedrückt zu halten, ist eigentlich nicht vorgesehen.
Indirekt könntest du das lösen, indem du abfragst, ob die Maustaste gedrückt ist, und wenn ja, ob der Zeiger sich über dem Button befindet.
|
Hab mal nen Code geschrieben:
Code:
$Form1 = GUICreate("DOUBLE FEED", 201, 70, -1, -1)
Opt("GUIOnEventMode", 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_GUI_EVENT_PRIMARYDOWN")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_GUI_EVENT_PRIMARYDOWN1")
Global $Button2 = GUICtrlCreateButton("+", 88, 40, 17, 17)
Global $Button3 = GUICtrlCreateButton("-", 104, 40, 17, 17)
Func _GUI_EVENT_PRIMARYDOWN()
While 1
Sleep(100)
If $x = "100" Then Exitloop
If BitAND(_GUICtrlButton_GetState($Button2), $BST_PUSHED) = $BST_PUSHED Then
$x += 1
If GUICtrlRead($Label3) <> ("Sound: " & $x & "%") Then
GUICtrlSetData($Label3, "Sound: " & $x & "%")
$object.settings.volume = $x
EndIf
If $x = "100" Then Exitloop
Else
Return
EndIf
WEnd
EndFunc
Func _GUI_EVENT_PRIMARYDOWN1()
While 1
Sleep(100)
If $x = "0" Then Exitloop
If BitAND(_GUICtrlButton_GetState($Button3), $BST_PUSHED) = $BST_PUSHED Then
$x -= 1
If GUICtrlRead($Label3) <> ("Sound: " & $x & "%") Then
GUICtrlSetData($Label3, "Sound: " & $x & "%")
$object.settings.volume = $x
EndIf
If $x = "0" Then Exitloop
Else
Return
EndIf
WEnd
EndFunc
Func _Exit()
Exit
EndFunc
EDIT: Ich habs jetzt soweit das er nach unten zählt das Label flackert zwar aber egal.. nur zählt er nicht nach oben...
|
|
|
07/05/2013, 14:15
|
#1419
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by Achat
@Requi
Das ist egal.
Msgbox(0,0,"String""xD")
MfG
|
übersicht und :
Code:
Msgbox(0,0,'String""xD')
|
|
|
07/05/2013, 14:31
|
#1420
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Kilroy.
EDIT: Ich habs jetzt soweit das er nach unten zählt das Label flackert zwar aber egal.. nur zählt er nicht nach oben...
|
für dein problem gibt es guigetcursorinfo...
Code:
GUICreate('GUI', 200, 40, Default, Default, 0x10C80000)
$ctrlBtn = GUICtrlCreateButton('Press Me', 10, 10, 85, 20)
$ctrlLabel = GUICtrlCreateLabel(0, 105, 10, 85, 20, 0x1201)
While GUIGetMsg()<>-3
$cursor = GUIGetCursorInfo()
If $cursor[2] And $cursor[4]=$ctrlBtn Then GUICtrlSetData($ctrlLabel, GUICtrlRead($ctrlLabel)+1)
WEnd
|
|
|
07/05/2013, 18:50
|
#1421
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Quote:
Originally Posted by lolkop
für dein problem gibt es guigetcursorinfo...
Code:
GUICreate('GUI', 200, 40, Default, Default, 0x10C80000)
$ctrlBtn = GUICtrlCreateButton('Press Me', 10, 10, 85, 20)
$ctrlLabel = GUICtrlCreateLabel(0, 105, 10, 85, 20, 0x1201)
While GUIGetMsg()<>-3
$cursor = GUIGetCursorInfo()
If $cursor[2] And $cursor[4]=$ctrlBtn Then GUICtrlSetData($ctrlLabel, GUICtrlRead($ctrlLabel)+1)
WEnd
|
Jo klappt, nur bin ich jetzt überfragt wie ich das stop wenn das Label die 1000 oder die 0 erreicht hat O.o Exitloop geht nicht weil ich da noch andere Sachen in der While habe, und es kommt ne Fehlermeldung, wenn ich aufn Desktop klick. Habs schon mit Else Return versucht geht aber nich..
|
|
|
07/05/2013, 19:48
|
#1422
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Die "Fehlermeldung" lässt sich verhindern, indem du zusätzlich auf "Not @error" testest. Das mit dem Wert lässt sich mit einem einfachen If lösen.
Code:
GUICreate('GUI', 200, 40, Default, Default, 0x10C80000)
$ctrlBtn = GUICtrlCreateButton('Press Me', 10, 10, 85, 20)
$ctrlLabel = GUICtrlCreateLabel(0, 105, 10, 85, 20, 0x1201)
While GUIGetMsg()<>-3
$labelValue = GUICtrlRead($ctrlLabel)
If $labelValue < 1000 Then
$cursor = GUIGetCursorInfo()
If Not @error And $cursor[2] And $cursor[4]=$ctrlBtn Then GUICtrlSetData($ctrlLabel, $labelValue+1)
EndIf
WEnd
|
|
|
07/06/2013, 11:08
|
#1423
|
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
|
Ja das funktioniert. Wieder was dazugelernt, vielen Dank!
noch eine nicht so dramatische Frage, manchmal wird das Label sofort auf 0 oder gleich 200 höher gesetzt wieso passiert das?
EDIT: Habs mit nem simplen Sleep(1) wegbekommen.
MfG
Kilroy.
|
|
|
07/06/2013, 11:54
|
#1424
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Kilroy.
Ja das funktioniert. Wieder was dazugelernt, vielen Dank!
noch eine nicht so dramatische Frage, manchmal wird das Label sofort auf 0 oder gleich 200 höher gesetzt wieso passiert das?
EDIT: Habs mit nem simplen Sleep(1) wegbekommen.
MfG
Kilroy.
|
man baut doch kein zusätzliches sleep in die schleife ein, in der sich schon ein guigetmsg befindet <.<
arbeite mit timern, wenn du das ganze verlangsamen willst...
|
|
|
07/07/2013, 14:45
|
#1425
|
elite*gold: 278
Join Date: Aug 2010
Posts: 145
Received Thanks: 19
|
Hallo,
ich habe mal wieder eine kleine Frage:
Und zwar möchte ich den Inhalt meiner 2 Input´s in Arrays speichern nur ich weiß nciht wie das gehen soll..
Ich habe es jetzt so versucht
PHP Code:
$Test[0][0] = $Input1
$Test[0][1] = $Input2
Nur dort wird mir immer der Wert 4 und 5 ausgegeben, obwohl ich in den Feldern 1 und 2 stehen habe.
PHP Code:
#include<IE.au3>
#include<Array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\****\desktop\kodak autoit\forms\votetest1.kxf
$Form1_1 = GUICreate("Form1", 615, 438, 258, 131)
$Ueberschirft = GUICtrlCreateLabel("Test1", 208, 8, 181, 28)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("1", 40, 72, 145, 21)
$Input2 = GUICtrlCreateInput("2", 40, 112, 145, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
DIM $Test[1][2]
$Test[0][0] = $Input1
$Test[0][1] = $Input2
_ArrayDisplay($Test,"Kompletter Array")
Danke für eure Hilfe.
|
|
|
Similar Threads
|
[Sammelthread]Fragen zu Autoit wie man Hacks herstellt(Autoit) + Antworten
11/16/2011 - Metin2 - 0 Replies
Hallo Liebe Community,
Ich habe diesen Thread aufgemacht weil manche leute mit Autoit nicht mehr weiterkommen wie man Hack herstellt ,ich habe mit schon ein Multihack mit Autoit herstellt das war einfach .Da viele User nicht weiterkommen werden habe ich mich entschieden ein Thread aufzumachen mit Fragen und ich den dann Antworten kann und helfen kann!
------------------------------------------------- ---------------------------
Mein Multihack:...
|
All times are GMT +1. The time now is 04:48.
|
|