Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 19:05

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

Advertisement



[Frage] Was meint ihr ?

Discussion on [Frage] Was meint ihr ? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
[Frage] Was meint ihr ?

Also, ich habe letztens angefangen mich ein wenig mit AutoIT zu befassen.

da habe ich mich nach ein paar Videos an mein eigenes mini Projekt gewagt
Also hab ich mir gedacht, schreib ich mir ein Game Starter ...

Code:
#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Headline = GUICreate("Game Starter", 270, 360, 455, 185)
$Help = GUICtrlCreateMenu("&Help")
$Sound = GUICtrlCreateMenu("Sound"&@TAB&"", $Help)
$Sound_100 = GUICtrlCreateMenuItem("Sound ON"&@TAB&"Shift+Ctrl+5 (ZEHNERTASTATUR)", $Sound)
$Sound_0 = GUICtrlCreateMenuItem("Sound OFF", $Sound)
$Info = GUICtrlCreateMenuItem("Info"&@TAB&"", $Help)
$system = GUICtrlCreateMenu("&Systemstart")
$herunterfahren = GUICtrlCreateMenuItem("Herunterfahren"&@TAB&"Ctrl+Alt+D", $system)
$restart = GUICtrlCreateMenuItem("Restart"&@TAB&"", $system)
$abmelden = GUICtrlCreateMenuItem("Abmelden", $system)
GUISetBkColor(0x3399FF)
$Anno_1 = GUICtrlCreateButton("Start", 120, 40, 97, 25)
$Ann = GUICtrlCreateButton("Start", 120, 72, 97, 25)
$Residen = GUICtrlCreateButton("Start", 120, 104, 97, 25)
$Minecraf = GUICtrlCreateButton("Start", 120, 136, 97, 25)
$Anno = GUICtrlCreateLabel("Anno 2070", 16, 48, 56, 17)
$Anno_2 = GUICtrlCreateLabel("MW 2", 18, 78, 56, 17)
$LOCO = GUICtrlCreateLabel("SPMinecraft", 18, 180, 60, 17)
$Resident = GUICtrlCreateLabel("Resident Evil", 16, 115, 66, 17)
$Close = GUICtrlCreateButton("Close", 16, 280, 201, 41)
$SP_Minecraft = GUICtrlCreateButton("Start", 120, 168, 97, 25)
$Loc = GUICtrlCreateButton("Start", 120, 197, 97, 25)
$Lastchaos = GUICtrlCreateButton("Start", 121, 232, 97, 25)
$Minecraft = GUICtrlCreateLabel("Minecraft", 16, 144, 48, 17)
$LO = GUICtrlCreateLabel("LOCO", 24, 208, 33, 17)
$Last = GUICtrlCreateLabel("Generic name", 24, 240, 70, 17)
Dim $Headline_AccelTable[2][2] = [["^+{5 (ZEHNERTASTATUR)}", $Sound_100],["^!d", $herunterfahren]]
GUISetAccelerators($Headline_AccelTable)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
SoundPlay("C://xxx.mp3")
SoundSetWaveVolume(100)


$ini = @ScriptDir & "/testini.ini"

$MinecraftSP = Inputbox("Pfad","Pfad von MinecraftSP")
Sleep(5000)
$Resident_Evil = InputBox("Pfad","Pfad von Resident Evil")
Sleep(5000)
$Anno_2070 = Inputbox("Pfad","Pfad von Anno 2070")
Sleep(5000)
$Anno_1404 = InputBox("Pfad","Pfad von Anno 1404 ")
Sleep(5000)
$LastCHAOS1 = Inputbox("Pfad","Pfad von Last Chaos")
Sleep(5000)
$lOCOO= InputBox("Pfad","Pfad von LOCO ")
Sleep(5000)
$Minecraft = Inputbox("Pfad","Pfad von Minecraft")
Sleep(5000)

IniWrite($ini, "Section","SP_Minecraft",$MinecraftSP)
IniWrite($ini, "section","Resident Evil",$Resident_Evil)
IniWrite($ini, "Section","Anno 2070",$Anno_2070)
IniWrite($ini, "section","Anno 1401",$Anno_1404)
IniWrite($ini, "Section","LastChaos",$LastCHAOS1)
IniWrite($ini, "section","LOCO",$lOCOO)
IniWrite($ini, "Section","Minecraft",$Minecraft)

MsgBox(0,"Pfad von SP Minecraft", $MinecraftSP)
MsgBox(0,"Pfad von Resident Evil",$Resident_Evil)
MsgBox(0,"Pfad von Anno 2070", $Anno_2070)
MsgBox(0,"Pfad von Anno 1404",$Anno_1404)
MsgBox(0,"Pfad von Last Chaos", $LastCHAOS1)
MsgBox(0,"Pfad von LOCO",$lOCOO)
MsgBox(0,"Pfad von Minecraft", $Minecraft)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $herunterfahren
			Shutdown(1)
		Case $restart
			Shutdown(2)
		Case $abmelden
			Shutdown(0)
		Case $Minecraf
			run($Minecraft)
		Case $Loc
			run($lOCOO)
		case $Lastchaos
			run($LastCHAOS1)

			Case $Anno_1

				run($Anno_2070)
			Case $Ann
				run($Anno_1404)
			Case $Residen
				run($Resident_Evil)
			Case $SP_Minecraft
				run($MinecraftSP)
			Case $Close
				Exit
			Case $Info
				MsgBox(0, "Info", "Version 1.0")
			Case $Sound_0
				SoundSetWaveVolume(100)
				sleep(100)
				SoundSetWaveVolume(80)
				sleep(100)
				SoundSetWaveVolume(60)
				sleep(100)
				SoundSetWaveVolume(40)
				sleep(100)
				SoundSetWaveVolume(20)
				sleep(100)
				SoundSetWaveVolume(0)
			Case $Sound_100
				SoundSetWaveVolume(0)
				sleep(100)
				SoundSetWaveVolume(20)
				sleep(100)
				SoundSetWaveVolume(40)
				sleep(100)
				SoundSetWaveVolume(60)
				sleep(100)
				SoundSetWaveVolume(80)
				sleep(100)
				SoundSetWaveVolume(100)
	EndSwitch
WEnd
Ich wollte jetzt eigentlich nur Fragen, wie man es macht, dass man auf einem PC den Pfad nur einmal eingeben muss und danach es nicht mehr machen muss
und ob ihr noch irgendwelche Verbesserungsvorschläge habt ^^

LG xDeadess
xDeadless is offline  
Old 06/29/2012, 21:39   #2
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Du speicherst die Pfade ja breits in einer .ini ab. Du solltest lieber Eingabefelder verwenden und auf die Inputbox() Funktion verzichten. Beim Programmstart befüllst du dann einfach die Eingabefelder. Auf Sleeps solltest du weitgehend verzichten, diese sind bei hohen Wartezeiten nicht nur schlecht für das Script (da das ganze Script pausiert wird), sondern auch nervig für den Anweder.

Du kannst ja mal folgendes probieren:
Erstelle eine GUI, auf der Anfangs nur ein Button existiert. Bei einem Klick auf den Button forderst du den Benutzer auf eine .exe mittels FileOpenDialog() auszusuchen. Anschließend soll ein neuer Button erstellt werden (dynamisch). Optimal wäre es, wenn du das Icon der .exe in der GUI (im Button) anzeigen würdest. Alternativ kannst du darauf einfach verzichten oder den Benutzer dazu auffordern selber ein Bild auszuwählen.
Die Benutzereinstellungen kannst du dann wieder einfach in einer .ini speichern. Beim nächsten Programmstart werden die Daten ausgelesen und die Buttons wieder erstellt.
Das ganze ist einfacher als man es am Anfang vielleicht denkt.
KDeluxe is offline  
Thanks
1 User
Old 06/29/2012, 22:10   #3
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
ok ty, werde morgen oder so es mal probieren

ok, ich habe schon mal angefagen ;D

Ich hab es "schon" geschafft, das wenn ich mit dem Button1 eine exe auswähle, ein zweiter Button erstellt wird.

Aber ich weiß grad net weiter, was ich machen muss damit er die Daten aus der *.ini ausließt ....
und wie ich das Icon von der exe bekomme ...
xDeadless is offline  
Old 07/02/2012, 14:27   #4
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
I need help ...
xDeadless is offline  
Old 07/02/2012, 20:07   #5


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Du kannst mit IniRead die Ini wieder auslesen

Mit FileExist kannst du checken, ob diese bereits erstellt wurde.
Lawliet is offline  
Old 07/02/2012, 20:07   #6
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
icons aus files auslesen, ist ohne tieferes verständnis über den aufbau von pe-files nicht möglich...

darum sollte es hier aber auch garnicht gehen. dich sollte zunächst einmal interessieren, wie ich in autoit richtig mit guis arbeite.

für den anfang sollte ein einfaches kleines test-gui genügen. damit unser script nich sofort nach dem erstellen beendet wird, fügen wir eine kleine endlosschleife hinzu und haben schonmal mehr als die hälfte geschaft:
Code:
GUICreate('Test', 300, 40, Default ,Default, 0x10CA0000)

While True
	Switch GUIGetMsg()
		Case -3
			ExitLoop
	EndSwitch
WEnd
jetzt noch ein input und einen button dazu, dem button die funktion geben per fileopendialog den pfad einer datei zu bestimmen, das ganze per guictrlsetdata in das input schreiben und wir sind schon fertig:
Code:
GUICreate('Test', 300, 40, Default ,Default, 0x10CA0000)
$input = GUICtrlCreateInput('', 10, 10, 250, 20)
$button = GUICtrlCreateButton('...', 265, 10, 30, 20)

While True
	Switch GUIGetMsg()
		Case -3
			ExitLoop
		Case $button
			GUICtrlSetData($input, FileOpenDialog('Suche deine Datei', @ScriptDir, 'Alle Dateien (*.*)'))
	EndSwitch
WEnd
man hätte natürlich auch den pfad für den späteren gebrauch in einer variable speichern können, jedoch denke ich das solltest du wirklich ohne weiteres selbst hinbekommen.

wichtig ist nur das du deinen main part immer in EINER endlosschleife abarbeitest.
lolkop is offline  
Old 07/02/2012, 20:15   #7


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Du hast aber GuiSetState(@SW_Show), zwischen dem Code zur GUI und der Schleife, vergessen
Lawliet is offline  
Old 07/02/2012, 21:00   #8
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Lawliet! View Post
Du hast aber GuiSetState(@SW_Show), zwischen dem Code zur GUI und der Schleife, vergessen
der style 0x10CA0000 beinhaltet:
  • 0x10000000 ($WS_VISIBLE)
  • 0x00C00000 ($WS_CAPTION)
  • 0x00080000 ($WS_SYSMENU)
  • 0x00020000 ($WS_MINIMIZEBOX)
womit das ganze von vornherein sichtbar ist, was die nutzung des befehls nutzlos machen würde.

Edit:
Das gui unsichtbar erstellen, und erst nach der erstellung sichtbar machen macht nur dann sinn, wenn die menge der controls so hoch ist, das die erstellung vom user wahrgenommen werden kann, bzw wenn das gui aus welchen gründen auch immer vorerst nich sichtbar sein sollte.

keiner der beiden punkte trifft hier zu, also ist es effizienter das ganze sofort sichtbar zu erstellen =)
lolkop is offline  
Thanks
1 User
Old 07/05/2012, 09:51   #9
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
man oh man bin ich blöd...

So weit wie lolkop geschrieben hat, war ich auch schon.
Da habe ich auch schon.
Aber wenn ich das Programm dann neustarte muss ich immer und immer wieder den Pfad neu mit FileOpenDialog reinhauen. Ich habe schon mit IniWritte den Pfad in die ini geschrieben, aber das Programm ließt den Pfad net aus, sondern will den Pfad von neuen schreiben...
xDeadless is offline  
Old 07/05/2012, 10:50   #10


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
If not iniread(...xyz) then
$MinecraftSP = Inputbox("Pfad","Pfad von MinecraftSP")
Sleep(5000)
$Resident_Evil = InputBox("Pfad","Pfad von Resident Evil")
Sleep(5000)
$Anno_2070 = Inputbox("Pfad","Pfad von Anno 2070")
Sleep(5000)
$Anno_1404 = InputBox("Pfad","Pfad von Anno 1404 ")
Sleep(5000)
$LastCHAOS1 = Inputbox("Pfad","Pfad von Last Chaos")
Sleep(5000)
$lOCOO= InputBox("Pfad","Pfad von LOCO ")
Sleep(5000)
$Minecraft = Inputbox("Pfad","Pfad von Minecraft")
Sleep(5000)

IniWrite($ini, "Section","SP_Minecraft",$MinecraftSP)
IniWrite($ini, "section","Resident Evil",$Resident_Evil)
IniWrite($ini, "Section","Anno 2070",$Anno_2070)
IniWrite($ini, "section","Anno 1401",$Anno_1404)
IniWrite($ini, "Section","LastChaos",$LastCHAOS1)
IniWrite($ini, "section","LOCO",$lOCOO)
IniWrite($ini, "Section","Minecraft",$Minecraft)

else

;Pfad auslesen und einsetzten

endif
Lawliet is offline  
Thanks
1 User
Old 07/05/2012, 11:04   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
ich denke dein problem liegt darinn, das @WorkingDir mit dem FileOpenDialog neu gesetzt wird. speicherst du entwas in "*.ini", so landet es in @WorkingDir&"*.ini".

willst du deine ini in @ScriptDir speichern, kannst du also entweder den vollen pfad der ini angeben, oder du setzt @WorkingDir = @ScriptDir

beispiel (@WorkingDir = @ScriptDir Methode):
Code:
GUICreate('Test', 300, 40, Default ,Default, 0x10CA0000)
$input = GUICtrlCreateInput(IniRead('save.ini', 'saves', 'path', ''), 10, 10, 250, 20)
$button = GUICtrlCreateButton('...', 265, 10, 30, 20)

While True
	Switch GUIGetMsg()
		Case -3
			ExitLoop
		Case $button
			GUICtrlSetData($input, FileOpenDialog('Suche deine Datei', @ScriptDir, 'Alle Dateien (*.*)'))
	EndSwitch
WEnd

FileChangeDir (@ScriptDir)
IniWrite('save.ini', 'saves', 'path', GUICtrlRead($input))
lolkop is offline  
Thanks
1 User
Old 07/05/2012, 11:53   #12
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
danke
xDeadless is offline  
Old 07/05/2012, 11:59   #13
 
elite*gold: 464
Join Date: Dec 2010
Posts: 3,998
Received Thanks: 3,909
naja da du neu bist reporte ich dich mal nicht

Danke drücken nicht sagen
Dr.Toni-old is offline  
Old 07/05/2012, 13:17   #14
 
xDeadless's Avatar
 
elite*gold: 0
Join Date: Jun 2012
Posts: 53
Received Thanks: 1
ok, dann mache ich mal nur noch eine Sache und nicht beide
xDeadless is offline  
Reply


Similar Threads Similar Threads
[FRAGE] Meint ihr , man wird gebannt ? (Prestige Token Glitch?
02/05/2012 - Call of Duty - 116 Replies
Hallo, ich wollt euch fragen , ob ihr denkt , dass man gebannt wird , wenn man den Glitch gemacht habt. Hab aus Fun den Glitch gemacht. Hab Prestige 3 fair erkämpft, Doch jetzt hab ich Schiss das ich wegen -100 Prestige Tokens banned werde... . Ja wahrscheinlich sagt ihr: Pech gehabt!!!, Dein problem... Du scheiß Hacker/Cheater/Glitcher. Doch ich war mir nicht sicher dass ich deswegen gebannt werden könne. Bin mal gespannt was das wird. Robert Bowling kündigte an, dass man Stats Reset, 2...
[FRAGE] Meint ihr es kommt noch ein 26. Server raus?
03/28/2011 - Metin2 - 29 Replies
^This.
[Frage] Gute investition? Was meint ihr?
01/12/2011 - WarRock - 4 Replies
30 Tage Gold Prem. 1600 G1C Holen. 2Slot D.Baretta 80 3Slot G36 200 5Slot Tmp9 400 6Slot Medic Box 80 8Slot MP7A1 Gold 800 Dann sind wegen Nachlass 1216 G1C Verbaucht. 384G1C bleiben Ürbig. Meine Frage Gute Investition und könnt ihr mir sagen was ich für restlichen G1C Kaufen soll, Was zum schnell lvl'n oder Engineer?
[FRAGE] Was meint ihr ist der schnellste Weg zum lvln
11/28/2010 - WarRock - 14 Replies
HI, ich will gern lvln aber das soll alles autom. gehn, während ich afk bin. Also ich will auch kein Geld ausgeben (sprich FastPlant/Defuse VIP hacks...usw). Und Teleport to plant und tel to defuse auto F geht ja ziemlich langsam glaube ich(wenig exp). zombi mode durchspieln während ich afk bin? dazu hab ich keine idee... Fällt sonst noch jmd. ne gute Variante ein?
[Frage] Vladimir, was meint ihr zu diesem Spielstil/Build/whatever?
08/21/2010 - League of Legends - 20 Replies
Also ich wollte euch mal mal fragen was ihr zu meinem Vladimir Spielstil meint und was ich daran verbessern kann. Bitte nur konstruktive Vorschläge und nich sowas wie "RTFM noob, totale scheiße die du machst omg" Masteries Vlad Masteries Hierbei find ich geskilltes Entzünden und Erschöpfen, den Mpen und die CDR gut Runen Ich bevorzuge gelb auf AP und den Rest auf mpen



All times are GMT +1. The time now is 19:07.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.