Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 20:57

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

Advertisement



Problem mit der Funktion

Discussion on Problem mit der Funktion within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
Problem mit der Funktion

Hi leute ich habe mich aus lust und laune vor ein script zu machen um mehrere dlls zum injecten zu verwalten..

müsst ihr nicht verstehen

Jedenfalls check ich einfach nicht wie ich das jetz machen soll ...

Ich komm vom einen Fehler in den anderen das gibts echt nich haha

hier der teil:

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			
		Case $Button5
			_start()

	EndSwitch
WEnd


Func _start(ByRef $var1, $var)


$var1 = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")

If FileExists(@ScriptDir & "\Path.ini") Then 
	run($var1)
Else

$var = FileOpenDialog("C:\Program Files\", "Executables (*.exe)")
IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $var)
run($var)
EndIf
EndFunc

Ich will einfach dass in der funktion:

1. geschaut wird ob die ini it dem pfad des zu startenden oprogramms existiert.
2. wenn nicht soll sie eben angelegt werden
3. wenn sie existiert soll das programm eben gestartet werden.

aber ich hab grad einfach nicht den kopf ich komm grad nich weiter xD
freehuntx is offline  
Old 12/03/2010, 13:53   #2
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Wozu ByRef? o.O

So sollte es gehn:

Code:
Func _Start()
	Local $Var1, $Var
	If FileExists(@ScriptDir & "\Path.ini") Then
		$Var1 = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
		Run($Var1)
	Else
		$Var = FileOpenDialog("C:\Program Files\", "Executables (*.exe)")
		IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $Var)
		Run($Var)
	EndIf
EndFunc   ;==>_Start
PenGuin :O is offline  
Old 12/03/2010, 16:06   #3


 
Al Kappaccino's Avatar
 
elite*gold: 179
Join Date: Oct 2009
Posts: 7,853
Received Thanks: 8,558
Quote:
Originally Posted by pinguin94 View Post
Wozu ByRef? o.O

So sollte es gehn:

Code:
Func _Start()
	Local $Var1, $Var
	If FileExists(@ScriptDir & "\Path.ini") Then
		$Var1 = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
		Run($Var1)
	Else
		$Var = FileOpenDialog("C:\Program Files\", "Executables (*.exe)")
		IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $Var)
		Run($Var)
	EndIf
EndFunc   ;==>_Start
Nix gelernt?
Er will eine Funktion erstellen, an die er Paramter übergeben kann.

Dumm nur wenn bei 2 NICHT optionalen Parametern die Funktion mit "Nix" aufruft ...
Al Kappaccino is offline  
Old 12/03/2010, 16:31   #4
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Ja aber er benutzt doch die Variablen gar nicht o.O
Er deklariert sie doch erneut in der Funktion durch einen Aufruf. Also $Var1 und $Var, deshalb dachte ich, er hatte kein Plan^^

Denk nicht, ich könnte das nicht.. -.- Ich hab seine Frage einfach nicht verstanden.

Wenn er das mit Parameter machen will:

Code:
Func _Start($IniPath)
	Local $Var1, $Var
	If FileExists($IniPath) Then
		$Var1 = IniRead($IniPath, "path", "key", "NotFound")
		Run($Var1)
	Else
		$Var = FileOpenDialog("C:\Program Files\", "Executables (*.exe)")
		IniWrite($IniPath, "Path", "key", $Var)
		Run($Var)
	EndIf
EndFunc   ;==>_Start
so wäre der Inipfad variabel.
PenGuin :O is offline  
Old 12/03/2010, 17:02   #5
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
was wollt ihr denn mit run bezwecken?
ZeraPain is offline  
Old 12/03/2010, 18:12   #6
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Frag den TE.
PenGuin :O is offline  
Old 12/03/2010, 19:11   #7
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
total sinnlos var und var1 lokal zu machen, dann bewirkt die funktion ja nichts mehr.
wennschon vorher global setzen oder mit return werte zurückliefern.

entweder so:

Code:
Global $value

_start($value)

Func _start(ByRef $var)
	If FileExists(@ScriptDir & "\Path.ini") Then
		$var = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
	Else
		$var = FileOpenDialog("Select exe", @ProgramFilesDir, "Executables (*.exe)")
		If $var <> "" Then IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $var)
	EndIf
EndFunc

MsgBox(0,0,$value)
oder so:

Code:
Global $value

$value = _start()

Func _start()
	If FileExists(@ScriptDir & "\Path.ini") Then
		$var = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
	Else
		$var = FileOpenDialog("Select exe", @ProgramFilesDir, "Executables (*.exe)")
		If $var <> "" Then IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $var)
	EndIf
	Return $var
EndFunc

MsgBox(0,0,$value)
oder so:

Code:
Global $value

_start()

Func _start()
	If FileExists(@ScriptDir & "\Path.ini") Then
		$value = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
	Else
		$value = FileOpenDialog("Select exe", @ProgramFilesDir, "Executables (*.exe)")
		If $value <> "" Then IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $value)
	EndIf
EndFunc

MsgBox(0,0,$value)
ZeraPain is offline  
Thanks
1 User
Old 12/03/2010, 19:35   #8
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Jetzt begreif ich, was er wollte...
PenGuin :O is offline  
Old 12/03/2010, 21:11   #9


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by JakeFrost77 View Post
Nix gelernt?
Er will eine Funktion erstellen, an die er Paramter übergeben kann.

Dumm nur wenn bei 2 NICHT optionalen Parametern die Funktion mit "Nix" aufruft ...
Nein will er nicht!
Er weist den Parametern in der Funktion nämlich den Wert zu, d.h. was er will sind lokale Variablen.

Quote:
total sinnlos var und var1 lokal zu machen, dann bewirkt die funktion ja nichts mehr.
wennschon vorher global setzen oder mit return werte zurückliefern.
Auch du hast den Code wohl nicht verstanden.
Natürlich bewirkt die Funktion was, sie führt das Programm aus, das an dem Pfad ist, der in der Ini steht.
Was soll sie denn auch zurückliefern? Sie liest selbst den Pfad aus und führt selbst aus.
Weder Rückgabewert noch Parameter sind notwendig, pinguin hat es absolut richtig geschrieben.

Falls nicht, hat der TE einfach einen total bescheuerten Code geposted, der etwas völlig anderes macht, als er will.
MrSm!th is offline  
Old 12/03/2010, 21:38   #10
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
ach das war also der sinn von run, habe darauf garnicht geachtet sondern mich auf die ini beschänkt ;-) dann sorry
ZeraPain is offline  
Thanks
1 User
Old 12/03/2010, 21:57   #11
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Ich weiß immernoch nicht, was genau der TE nun möchte, ich habe eigentlich seine Funktion so umgeschrieben, dass er keine Parameter mehr braucht und sie ein wenig gekürzt. Mehr konnte ich nicht aus dem Startpost rauslesen.
PenGuin :O is offline  
Old 12/04/2010, 00:28   #12
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,622
Received Thanks: 2,070
MrSm!th hat schon recht...

Ich danke euch für eure hilfe...



So klappts

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			
		Case $Button5
			_start()

	EndSwitch
WEnd


Func _start()
	If FileExists(@ScriptDir & "\Path.ini") Then
		$value = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
	run($value)
	Else
		$value = FileOpenDialog("Select exe", @ProgramFilesDir, "Executables (*.exe)")
		If $value <> "" Then IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $value)
		run($value)
	EndIf
EndFunc
War wohl einfach zu müde haha
freehuntx is offline  
Old 12/04/2010, 12:16   #13
 
PenGuin :O's Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
Quote:
Originally Posted by freehuntx View Post
MrSm!th hat schon recht...

Ich danke euch für eure hilfe...



So klappts

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
			
		Case $Button5
			_start()

	EndSwitch
WEnd


Func _start()
	If FileExists(@ScriptDir & "\Path.ini") Then
		$value = IniRead(@ScriptDir & "\Path.ini", "path", "key", "NotFound")
	run($value)
	Else
		$value = FileOpenDialog("Select exe", @ProgramFilesDir, "Executables (*.exe)")
		If $value <> "" Then IniWrite(@ScriptDir & "\Path.ini", "Path", "key", $value)
		run($value)
	EndIf
EndFunc
War wohl einfach zu müde haha
Also lag ich ja doch von vornerein richtig mit meiner Funktion.
Problem solved, gut
PenGuin :O is offline  
Reply


Similar Threads Similar Threads
[C++]Funktion einer Klasse in einer anderen Funktion der Klasse verwenden, aber wie?
07/25/2010 - C/C++ - 3 Replies
Mein Problem ist eigentlich recht simpel und die Lösung wahrscheinlich auch. Da ich bisher fast 0 mit Klassen am Hut hatte, wollte ich mich doch mit dem Thema anfreunden und hatte gleich angefangen: int test::Funktion2() { int temp; cin>>temp; return temp; }
Problem mit Der Verkauf Funktion in EasyMetin2
06/03/2010 - Metin2 - 5 Replies
SO ich beschreibe mal das Problem ich will tp sachen farmen Da man eingeben kann das er boni sachen filtert habe ich das so gemacht Und zwar der char läuft zur gemi dann passiert nichts weiter er bleibt einfach stehen es öffnet sich kein laden fenster NICHTS Woran könnte es liegen? Schonmal danke im vorraus PS: ich farme nur zum Eigen gebrauch
ein problem mit der hacking protect funktion trat auf
09/03/2009 - S4 League - 2 Replies
hey ^^ nach dem heutigen patch bekomm ich immer diese meldung nach dem lade screen von s4: ein problem mit der hacking protect funktion trat auf Screen: http://img227.imageshack.us/img227/2751/s4problem .th.png bitte um hilfe danke schonmal im vorraus
Problem mit LUA - OnLoad funktion macht Stress :/
04/07/2007 - World of Warcraft - 3 Replies
So, ich bin grade dabei ein kleines AddOn zu schreiben. Jetzt bekomme ich folgenden Fehler: http://img528.imageshack.us/img528/8632/unbenannt xq7.jpg Der Code der Funktion OnLoad function WDO_OnLoad&#40;&#41; SLASH_WDO1 = &#34;/wdo&#34;;



All times are GMT +2. The time now is 20:57.


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.