Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 02:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Autoit Spezielle Variable

Discussion on Autoit Spezielle Variable within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
Autoit Spezielle Variable

hihi

ich habe eine frage:

kann mir jmd sagen, wie ich in auto it eine variable erstelle, welche
ein wort als inhalt zugewiesen bekommt, wobei da wort zufällig auf einer internetseite generiert wird ??

ich habe mir gedacht, dass ich das wort markieren und kopieren lasse
und dann das "kopierte" der variable als wert zuweise .... wäre nett, wenn mit jmd helfen könnte
Synthesys is offline  
Old 02/06/2010, 18:54   #2
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
ansatz

naja da mir bisher keine geantwortet hat habe ich mir einiges überlegt:


ichh ba e mir gedacht, dass ich ja theoretisch einfach eine inputbox erstellen könnte und dann mit dem programm einfach kopieren und einfügen lassen kann ....

also mein ansatz sieht so aus:

Code:
#include <GUIConstantsEx.au3>
GUICreate("Bot", 335, 100)

GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)
$startbutton = GUICtrlCreateButton("Start", 190, 8, 60)

GUISetState(@SW_SHOW)

$start = 0
$H = "Hilfe"
$H2 = "H"

While $start=0
	$msg = GUIGetMsg()
	
	Select
		Case $msg = $startbutton
		$start=$start+1
		
		Case $msg = $GUI_EVENT_CLOSE
		GUIDelete()
		ExitLoop
	
	EndSelect
	
WEnd


$zehn = 0
MouseClick ("left", 375, 368) 


while $zehn<10

if $ele==$H	then
send ($H2)
sleep (100)
send ("{Enter}")
sleep (250)


Else
send ($H)
sleep (100)
send ("{Enter}")
sleep (250)	 
EndIf

EndIf
	
$zehn=$zehn+1

Wend
--> es öffnet sich ein fenster mit einem textfeld und dem Start-button

(mehr oder weniger aus dem touturial übernommen... )

aber was mich nervt ist, dass

1. sich die Inputbox (nicht in diesem beispiel aber allg.) schliest nachdem etwas eingegeben wurde
2. dass ich auch wenn ich etwas eingebe die variable ele nicht besetzt wird ...

ich dachte eig. dass die Variable den wert übergeben bekommt, der in dem textfeld steht, sobald man start drückt ... aber dies ist nicht der fall -.-



vlt kennt ja jmd von euch eine bessere
(elegantere) Lösung
Synthesys is offline  
Old 02/06/2010, 19:12   #3
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
verstehe ehrlich gesagt garnicht was du möchtest, drück dich mal klipp und klatr in einem satz aus
kknb is offline  
Old 02/06/2010, 19:48   #4
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
hmm schwierig zu formulieren ....

aber ich habe das problem jetzt mehr oder weniger umgangen ....

was jetzt dazu gekommen ist:

Programm startet

--> es öffnet sich ein fenster mit einem Textfeld

Code:
#include <GUIConstantsEx.au3>
GUICreate("PSE-Bot", 335, 100)

GUICtrlCreateLabel("Element", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)

GUISetState(@SW_SHOW)
mein problem ist jetzt:

ich will, dass die variable $ele durch den inhalt des textfeldes deklariert wird


--> ich gebe was in das feld ein und drücke enter --> varaible $ele hat jetzt meine eingabe als wert übergeben bekommen.


das ganz ewil ich dann auch noch in eine while-schleife packen aber das kommt erst später ....

jetzt ist primär mein problem, um es in einem satz zu formulieren

Die übergabe des Textinhaltes eines zuvor generierten textfelds an eine variable
[und das ganze in einer schleife ]
Synthesys is offline  
Old 02/06/2010, 19:59   #5
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
du willst nichts deklarieren. du willst einfach den inhalt des inputs auslesen nehm ich an?

$ergebnis=guictrlread($ele)

Code:
#include <GUIConstantsEx.au3>
GUICreate("Bot", 335, 100)

GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)
$startbutton = GUICtrlCreateButton("Start", 190, 8, 60)

GUISetState(@SW_SHOW)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $startbutton
			MsgBox(0,"",GUICtrlRead($ele))
	EndSwitch
WEnd
kknb is offline  
Thanks
1 User
Old 02/06/2010, 20:32   #6
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
hmm ok
dann eben input auslesen

also so was wie in java der bufferd reader machen würde

danke für die antwort ich probiers gleich mal aus



aber:

geht es auch, ohne den start-button ?
(also z.B. mit enter bestätigen ?)
[habs noch nit ausprobiert aber ich denke mal so was in der art: ]

Code:
#include <GUIConstantsEx.au3>
GUICreate("Bot", 335, 100)

GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)

GUISetState(@SW_SHOW)
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case [COLOR="Red"]{Enter}[/COLOR] ; funktioniert so wahrscheinlich nicht ... aber da muss ich erst mal ein bischen rumprobieren :D 
			MsgBox(0,"",GUICtrlRead($ele))
	EndSwitch
WEnd

und 2.

was wenn ich die variable $ele öfters neu beschreiben will
also so, dass das fenster geöffnet bleibt
--> ich gebe einen text ein; lese den inhalt des inputs aus, nachdem ich enter [start] gedrück habe --> es passiert je nach text etwas (des ist eig kein problem..) --> ich gebe einen neuen text in das noch geöffnete fenster ein und belege die variable neu ....

ich hoffe das ist so verständlich xD

vielen dank schon mal
Synthesys is offline  
Old 02/07/2010, 00:09   #7
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
klar das ist kein problem. jedesmal wenn du enter drückst wird der inhalt des inputfeldes neu eingelesen.

Code:
#include <GUIConstantsEx.au3>
#include <Misc.au3>

GUICreate("Bot", 335, 100)
GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)
GUISetState(@SW_SHOW)
$dll = DllOpen("user32.dll")



While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
	if _IsPressed("0D", $dll) then
		MsgBox(0,"",GUICtrlRead($ele))
	EndIf
WEnd
kknb is offline  
Old 02/07/2010, 10:16   #8
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
hey vielen dank ich denke so sollte ich es jetzt ganz gut realisieren können
Synthesys is offline  
Old 02/07/2010, 10:26   #9
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
ok ich habe das jetzt mal ausprobiert... .

sobald ich jetzt etwas in das textfeld eingebe öffnet sich ein neues fenster und meine eingabe wird wieder ausgegeben ...

was ich aber gerne hätte wäre, dass je nach eingabe dann etwas bestimmtes passiert.

Aber so, dass jedes mal wenn ich etwas eingebe genau einmal die aktion ausgeführt wird, bis ich wieder etwas eingeben ...


Code:
#include <GUIConstantsEx.au3>
#include <Misc.au3>

GUICreate("Bot", 335, 100)
GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)
GUISetState(@SW_SHOW)
$dll = DllOpen("user32.dll")



While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
	if _IsPressed("0D", $dll) then
		MsgBox(0,"",GUICtrlRead($ele))  ;das text feld soll auch ausgewertet werden
	EndIf
WEnd


$H = "Test" 

While True
	
	If $ele==$H Then 

	    MouseClick ("left", 220, 220) 
            sleep (100)
	    MouseClick ("left", 220, 220) 
		
	EndIf
	
WEnd
das ist jetzt die etwas gekürzte fassung,... ich habe in wirklichkeit ca. 15 verschiedene aktionen, die gemacht werden sollen aber $H soll hier zum testen verwendet werden....

also wenn ich ich das feld test eingebe soll 2 mal mit der maus auf eine bestimmte stelle geklickt werden

wenn ich nocheinmal test eingeben soll das gleiche wieder passieren

aber immer nur dann wenn ich etwas neues eingegeben habe und dann wieder enter gedrückt habe


ich weiss ich bin nervig aber ich bekomme es leider nicht hin .. habe erst vor 3 tagen mit autoit angefangen

-- mir fehlt der doch recht hilfreiche goto befehl aus bat ^^ --
Synthesys is offline  
Old 02/07/2010, 13:58   #10
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
Code:
#include <GUIConstantsEx.au3>
#include <Misc.au3>

GUICreate("Bot", 335, 100)
GUICtrlCreateLabel("ele", 8, 10)
$ele = GUICtrlCreateInput("", 60, 8, 120)
GUISetState(@SW_SHOW)
$dll = DllOpen("user32.dll")

gui()

func gui()
local  $H = "Test"
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
	if _IsPressed("0D", $dll) then
		if guictrlread($ele) == $h then
			return machwas()
		elseif guictrlread($ele) == "anderes wort" then
			return machwas1()
		EndIf
	EndIf
WEnd
endfunc

func machwas()
	MouseClick ("left", 220, 220)
	sleep (100)
	MouseClick ("left", 220, 220)
	return gui()
EndFunc

func machwas1()
;irgendwas anderes
EndFunc
kknb is offline  
Old 02/07/2010, 19:36   #11
 
elite*gold: 0
Join Date: Feb 2010
Posts: 8
Received Thanks: 0
hey danke jetzt funktioniert alles so wie ich es mir vorgestellt habe

den func befehl kannte ich bisher noch nicht ^^ aber er erinnert mich etwas an die unterprogramme in Java

hmm so wie es aussieht hat autoit eher den "aufbau" (ich nenn das jetzt einfach mal so) einer Programmiersprache als einer skriptsprache ^^

also danke nochmal
Synthesys is offline  
Reply

Tags
autoit, text, variable


Similar Threads Similar Threads
Spezielle Tasten bei Autoit
05/27/2010 - Main - 5 Replies
Hallo leute ich bräucht mal hilfe also kann mir irgendjemand sagen was ich eingeben muss für spezielle tasten z.B. die Tabulator Taste (die über caps) weil ich würde gern was coden aber mir fehlen immer die befehle für die tasten und ich find die auch nirgens hab jeze schon ni halbe stunde gesucht :(
[AutoIT]Variable Conversion
10/30/2009 - AutoIt - 2 Replies
Is there any way to convert a variable into a certain other type? For example: Variable $A should be a float set to 5.01382 however when I bring it into AutoIT, it converts it to an Unsigned Long giving me a different value of something like 1099238427 So basically I just want to know if there is a command, or any way to code a function that can convert Variables set to Unsigned Long into Float/Double/Unsigned Short
AutoIt Variable Question
03/08/2008 - Conquer Online 2 - 10 Replies
Another stupid AutoIt Question... Ok So... I have lets say I have an inputbox called $input and it works fine. So lets say the input box says What is your name? And so the user types Bob I am wondering how to have a message box come up and say Hello Bob! If possible I need whole code. Whoever answers my question gets thanks :D



All times are GMT +2. The time now is 02:11.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.