AutoIt(GUI)Problem

07/27/2010 12:49 Nakroma#1
Hallo,
Ich will eine GUI programmieren für meinen P-Server.
Das Script sieht so aus:
Code:
#include <GUIConstants.au3>

GUICreate("Nakroma´s Privat Server Client", 500, 150)

GUICtrlCreateLabel("Bitte wähle eine Aktion aus!", 30, 10)
$ndjoin = GUICtrlCreateButton("Privat Server Join", 20, 50, 180)
$blizzjoin = GUICtrlCreateButton("Blizzard Join", 20, 100, 180)
$account = GUICtrlCreateButton("Account erstellen", 300, 50, 180)
$homepage = GUICtrlCreateButton("Zur Homepage", 300, 100, 180)
GUISetState(@SW_SHOW)

While 1
  $msg = GUIGetMsg()

  Select
    Case $msg = $ndjoin
      #include <File.au3>
      _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 1, 'set realmlist ', 1 ); DEINEREALMLIST=Serverrealmlist einsetzen
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 2, 'REALMLIST', 1 );
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/deDE/realmlist.txt', 3, '', 1 );
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 4, '', 1 );
	  Run ("C:/Programme/World of Warcraft/World of Warcraft.exe")
	  ExitLoop
	  
	Case $msg = $blizzjoin
	#include <File.au3>
      _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 1, 'set realmlist eu.logon.worldofwarcraft.com', 1 ); DEINEREALMLIST=Serverrealmlist einsetzen
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 2, 'set patchlist eu.version.worldofwarcraft.com', 1 );
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 3, 'set realmlistbn ""', 1 );
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 4, 'set portal eu', 1 );
	  Run ("C:/Programme/World of Warcraft/World of Warcraft.exe")
	  ExitLoop
	
	Case $msg = $account
	ShellExecute('http://accountpage.de')
	
	Case $msg = $homepage
	ShellExecute('http://homepage.de')
	
	Case $msg = $GUI_EVENT_CLOSE
      MsgBox(0, "Client Message", "Client wird beendet!")
      ExitLoop

    
  EndSelect
WEnd
Und ich habe ein Einstellungsmenü gemacht.
Code:
#include <GUIConstants.au3>

GUICreate("Nakroma´s Einstellungsmenü", 500, 150)
$realmlistinput = GUICtrlCreateInput("P-Server Realmlist", 20, 20, 100)
$realmlistbutton = GUICtrlCreateButton("OK", 140, 20, 80)
$accountinput = GUICtrlCreateInput("Account-Page", 20, 100, 100)
$accountbutton = GUICtrlCreateButton("OK(Mit Http)", 140, 100, 80)
$homepageinput = GUICtrlCreateInput("Homepage", 200, 60, 100)
$homepagebutton = GUICtrlCreateButton("OK(Mit Http)", 320, 60, 80)

GUISetState(@SW_SHOW)


While 1
  $msg = GUIGetMsg()

  Select
  Case $msg = $realmlistbutton
	  $realmlist = GUICtrlRead($realmlistinput)
	  send ($realmlist)
      MsgBox(0, "Lol", $realmlist)

    Case $msg = $accountbutton
		$account = GUICtrlRead($accountinput)
		send ($account)
		MsgBox(0, "LOl", $account)
	
Case $msg = $homepagebutton
	$homepage = GUICtrlRead($homepageinput)
	Send ($homepage)
	MsgBox(0, "Lol", $homepage)
	
	Case $msg = $GUI_EVENT_CLOSE
      MsgBox(0, "Message", "Programm wird beendet!")
      ExitLoop
  EndSelect
WEnd
Meine Frage: Wie kann ich mit dem Einsteller die Realmlist, Accountpage und die Homepage überschreiben.
Quasi:
Code:
	  _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 2, 'REALMLIST', 1 );
Und REALMLIST wird durch $realmlist im Einsteller ersetzt.
Vielen Dank für Alle Antworten im Voraus.
MfG
Nakroma[
07/27/2010 16:41 DraaaKe#2
Das ist doch genau so leicht wie du es oben mit filewritetoline gemacht hast^^

Nur FileWriteToLine ist eher, wenn du unbedingt vorhandene Dateien bearbeiten willst.

Wenn du Einstellungen speichern willst, dann würde ich das mit Inis lösen!

Code:
#include <GUIConstants.au3>

GUICreate("Nakroma´s Einstellungsmenü", 500, 150)
$realmlistinput = GUICtrlCreateInput("P-Server Realmlist", 20, 20, 100)
$realmlistbutton = GUICtrlCreateButton("OK", 140, 20, 80)
$accountinput = GUICtrlCreateInput("Account-Page", 20, 100, 100)
$accountbutton = GUICtrlCreateButton("OK(Mit Http)", 140, 100, 80)
$homepageinput = GUICtrlCreateInput("Homepage", 200, 60, 100)
$homepagebutton = GUICtrlCreateButton("OK(Mit Http)", 320, 60, 80)

GUISetState(@SW_SHOW)


While 1
  $msg = GUIGetMsg()

  Select
  Case $msg = $realmlistbutton
	  $realmlist = GUICtrlRead($realmlistinput)
	  send ($realmlist);Muss man das verstehen? xD Bau das send aus!
          IniWrite("Einstellungen.ini","Einstellungen","Realmlist",$realmlist);Mit dem wird nun das was oben ausgelesen wird in die Einstellungen INI reingeschrieben!
      MsgBox(0, "Lol", $realmlist)

    Case $msg = $accountbutton
		$account = GUICtrlRead($accountinput)
		send ($account);Hier genau das selbe wie oben durchführen^^
		MsgBox(0, "LOl", $account)
	
Case $msg = $homepagebutton
	$homepage = GUICtrlRead($homepageinput)
	Send ($homepage);Und hier noch einmal. Und das send wegmachen nicht vergessen
	MsgBox(0, "Lol", $homepage)
	
	Case $msg = $GUI_EVENT_CLOSE
      MsgBox(0, "Message", "Programm wird beendet!",3);Hier hab ich mal 3 Sekunden anzeige Zeit eingebaut
      ExitLoop
  EndSelect
WEnd
So also du gibst es in deinem Programm dann so wieder:

$Realmlist = IniRead("Einstellungen.ini","Einstellungen","Realm list",1)
Dann halt das was du damit machen möchtest wenn es ne Website wäre:
ShellExecute($Realmlist)

Man hat dein Problem zwar wirklich NICHT verstanden weil du viel zu wenig dein Problem, sondern eher deinen Bot beschreibst, aber ich denke ich hab das getroffen was du wolltest

€dit: Aso du willst eine vorhandene Datei überschreiben? Du beantwortest dir doch die Frage selbst^^

Mit _FileWriteToLine und dann eben anstatt den Text der hineingeschrieben wird einfach $realmlist eintragen. DAS SEND MUSS ABER TROTZDEM WEG xD

Das was ich beschrieben habe, dient eher dazu wenn dein Bot eigene Einstellungen fällen muss, und nicht eine bereits vorhandene Datei ändert
07/29/2010 09:16 Nakroma#3
Okey, Mein Problem:
Klar kann ich $realmlist einsetzen, aber dann ist die Zeile die die realmlist.txt im WoW Ordner ersetzt, nicht mehr da. Das Programm muss folgendes können:
Wenn ich im Einstellungsmenü(Realmlist)eingebe: 127.0.0.1
Muss im Client statt
Code:
 _FileWriteToLine ( 'C:/Programme/World of Warcraft/Date/DeDE/realmlist.txt', 1, 'set realmlist DEINEREALMLIST', 1 ); DEINEREALMLIST=Serverrealmlist einsetzen
DEINEREALMLIST, 127.0.0.1 stehen. Und das kriege ich nicht hin... Genauso mit Homepage und AccCreate.