|
You last visited: Today at 20:57
Advertisement
Problem mit der Funktion
Discussion on Problem mit der Funktion within the AutoIt forum part of the Coders Den category.
12/03/2010, 07:27
|
#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
|
|
|
12/03/2010, 13:53
|
#2
|
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
|
|
|
12/03/2010, 16:06
|
#3
|
elite*gold: 179
Join Date: Oct 2009
Posts: 7,853
Received Thanks: 8,558
|
Quote:
Originally Posted by pinguin94
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 ...
|
|
|
12/03/2010, 16:31
|
#4
|
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.
|
|
|
12/03/2010, 17:02
|
#5
|
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
|
was wollt ihr denn mit run bezwecken?
|
|
|
12/03/2010, 18:12
|
#6
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Frag den TE.
|
|
|
12/03/2010, 19:11
|
#7
|
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)
|
|
|
12/03/2010, 19:35
|
#8
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Jetzt begreif ich, was er wollte...
|
|
|
12/03/2010, 21:11
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
|
Quote:
Originally Posted by JakeFrost77
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.
|
|
|
12/03/2010, 21:38
|
#10
|
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
|
|
|
12/03/2010, 21:57
|
#11
|
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.
|
|
|
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
|
|
|
12/04/2010, 12:16
|
#13
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
Quote:
Originally Posted by freehuntx
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
|
|
|
|
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()
SLASH_WDO1 = "/wdo";
|
All times are GMT +2. The time now is 20:57.
|
|