Bitte poste auch immer deinen Code dazu, sonst können wir dir ja auch nicht helfen etwas zu verbessern Außerdem führt niemand gerne eine reine Exe-Datei aus...
Beiträge von Joriktos
-
-
Sicher geht das, kommt natürlich auf den Aufbau und das Format der Quelldatei an
Wenn du uns das an einem Beispiel schilderst, dann können wir bestimmt helfen -
[autoit]
WinGetPos("[ACTIVE]")
[/autoit]Damit bekommst du die Position und Maße des aktiven Fensters, somit kannst du dir alles errechnen, was du brauchst
X sollte sein: "X-Fensterposition" + "Fensterbreite" - "Breite des Tooltip" - "Platz der an der Rechten Seite bleiben soll"
Y sollte sein: "Y-Fensterposition" + "Fensterhöhe" - "Breite des Tooltip" - "Platz der rechts unten bleiben soll"
Zumindest wenn ich keine Denkfehler habeEdit: Durch
[autoit]WinGetHandle("[ACTIVE]")
[/autoit]bekommst du auch noch das Handle des aktiven Fensters und damit kannst du sogar das aktive Fenster als Parent für deine ToolTip-GUI angeben, dann verschiebt sich die sogar mit (Vorausgesetzt du machst das ganze mit einer "WS_POPUP-GUI")
-
-
So geht es:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>Global $iSecOld = @SEC
[/autoit] [autoit][/autoit] [autoit]$msg = GUICreate("uhrzeit", 200, 100, -1, -1)
[/autoit]
$uhr = GUICtrlCreateLabel("" & @HOUR & ":" & @MIN & ":" & @SEC, 15, 15, 90, 20, 1)
GUISetState()
While 1
Local $msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If @SEC <> $iSecOld Then
GUICtrlSetData($uhr, "" & @HOUR & ":" & @MIN & ":" & @SEC)
$iSecOld = @SEC
EndIf
WEndLiegt übrigens am Sleep, wenn man das weg lässt flackert es zwar, aber man kann's schließen
-
Wenn du deine Skripte parallel laufen lässt und alle unterschiedlich lange laufen, dann macht dein Ansatz mit While keinen Sinn.
Dann kannst du es zum Beispiel so lösen:
Buttons erstellen und Programme dazu definieren:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Global $aButton[10][4] ; Für die 10 die Anzahl deiner Buttons/Programme einfügen
For $i = 0 To 9 ; Für die 9 die Anzahl deiner Buttons/Programme - 1 einfügen
$aButton[$i][3] = 0
Next$aButton[0][0] = GUICtrlCreateButton("Skript0", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$aButton[0][1] = "D:\AutoIT\Skripte\Skript0.exe" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
$aButton[0][2] = "Skript0.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben$aButton[1][0] = GUICtrlCreateButton("Skript1", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
[/autoit] [autoit][/autoit] [autoit]
$aButton[1][1] = "D:\AutoIT\Skripte\Skript1" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
$aButton[1][2] = "Skript1.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben;...
[/autoit] [autoit][/autoit] [autoit]$aButton[9][0] = GUICtrlCreateButton("Skript9", X, Y [, width [, height [, style [, exStyle]]]]) ; Deinen Button an gewünschter Position erstellen.
[/autoit]
$aButton[9][1] = "D:\AutoIT\Skripte\Skript9.exe" ; Pfad des Skripts in Spalte 1 des Arrays schreiben
$aButton[9][2] = "Skript9.exe" ; Name des Skripts in Spalte 2 des Arrays schreiben
Skripte starten:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $aButton[0][0]
_StartSkript(0)
Case $aButton[1][0]
_StartSkript(1)
;...
Case $aButton[9][0]
_StartSkript(9)
EndSwitchFunc _StartSkript($iArrayLine)
[/autoit]
$aButton[$iArrayLine][3] = Run($aButton[$iArrayLine][1])
EndFunc
Laufende Skripte überprüfen:Spoiler anzeigen
[autoit]
[/autoit]
Func _ActiveScripts()
$iActiveScripts = 0
For $i = 0 To 9 ; Für die 9 die Anzahl deiner Buttons/Programme - 1 einfügen
If $aButton[$i][3] <> 0 Then ; Wenn der Prozess gestartet wurde ist $aButton[$i][3] <> 0
If ProcessExists($aButton[$i][3]) Then ; Wenn der Prozess weiterhin existiert:
GUICtrlSetColor($aButton[$i][0], 0x00ff00) ; Button-Textfarbe grün färben
$iActiveScripts += 1
Else ; Wenn der Prozess nicht mehr läuft:
GUICtrlSetColor($aButton[$i][0], 0x000000) ; Button-Textfarbe schwarz färben
$aButton[$i][3] = 0
EndIf
EndIf
Next
Return $iActiveScripts ; Funktion gibt die Anzahl der aktuell laufenden Skripte zurück (vielleicht ist das ja nützlich )
EndFuncSo, endlich fertig Ich garantiere nicht auf Funktionalität (ungetestet) und warne vor eventuellen Schreibfehlern, da ich das ganze gerade hier in der Antwort geschrieben habe, da ich gerade kein SciTE/AutoIT zur Verfügung habe.
Ich hoffe das ist ein gute Lösungsansatz für dich und vielleicht kannst du das ja so einbauen Vielleicht gibt es sogar eine noch kürzere Lösung, aber das ist denke ich schon recht gut gelöst
Liebe Grüße und eine gute Nacht
JoriktosEdit:
[autoit]
Übrigens setztGUICtrlSetColor
[/autoit]nur die Textfarbe des Buttons, nicht die Hintergrund-/Buttonfarbe selbst. Dafür gibt es
[autoit]GUICtrlSetBkColor
[/autoit]
[autoit]
Und mit#include <ButtonConstants.au3>
[/autoit]
; ...
GUICtrlSetStyle($b1, $GUI_SS_DEFAULT_BUTTON)setzt man es wieder zurück
-
ist hier leider keine möglichkeit...das programm befindet sich im autostart und bevor es zur eigentlichen schleife kommt werden verschiedene dinge abgefragt und erledigt...bei einem neustart würde diese dinge nochmal ablaufen und das sollen die nichtNaja, jetzt hast du ja eine Lösung, aber du kannst Programme neu starten lassen, ohne dass die "Anfangsdinge" ausgeführt werden
[autoit]
[/autoit][autoit][/autoit][autoit]
If $CmdLine[0] = 0 Then
;Blabla
EndIf;Deine Schleife
[/autoit]Und dann musst du aus deinem Programm heraus dein Programm mit einem Parameter starten (DeinProgramm.exe -1)
-
Bau doch noch ein
[autoit]
[/autoit]
If Not FileExists(@ScriptDir & "\Spieler") Then
DirCreate(@ScriptDir & "\Spieler")
EndIf
ein, dann muss der Ordner nicht selbst erstellt werdenAußerdem solltest du dir mal diesen Thread anschauen: [Tutorial] Sauber Programmieren
Da stehen tolle Sachen über die Variablenbenennung und über Einrückungen drin -
Push
-Ich suche immernoch ein Workaround
Edit: Also es liegt nicht direkt an _GUICtrlSlider_SetPos, sondern es geht auch nicht, wenn ich es mit einem direkten DllCall anspreche...
[autoit]DllCall("user32.dll", "lresult", "SendMessageW", "hwnd", ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iLoopCount & "]"), "uint", $TBM_SETPOS, "wparam", True, "lparam", 100 - $iVolume)
[/autoit]Edit2: Es funktioniert doch, aber es gibt ein anderes Problem: Es wird zwar der Slider verschoben, dies hat aber keinerlei auswirkung auf die Lautstärke und wird auch nach dem schließen vom Lautstärkemixer wieder verworfen, hat jemand eine Idee, warum das so ist?
-
Bitteschön, meine Soundcheck.au3 War nur für mich gedacht, deshalb nicht so übersichtlich...
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiSlider.au3>
#include "Win7SoundHandler.au3"Opt("WinTitleMatchMode", 2)
[/autoit][autoit][/autoit][autoit]
Global $sVolumeMixerTitle = ""#region ### START Koda GUI section ### Form=
[/autoit][autoit][/autoit][autoit]
$Form1 = GUICreate("Dialog", 308, 272, 735, 289)
$Button1 = GUICtrlCreateButton("Run", 23, 17, 75, 25)
$Button2 = GUICtrlCreateButton("Get Apps", 115, 17, 75, 25)
$Button3 = GUICtrlCreateButton("", 207, 17, 75, 25)
$Button4 = GUICtrlCreateButton("", 23, 60, 75, 25)
$Button5 = GUICtrlCreateButton("Volume", 115, 60, 75, 25)
$Button6 = GUICtrlCreateButton("", 207, 60, 75, 25)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Win7SH_Startup()
Case $Button2
$bla = _MixerGetPrograms()
_ArrayDisplay($bla)
Case $Button3
$bla2 = _GetProgramSoundlevel("Winamp")
MsgBox(0, "", $bla2[0] & @CRLF & $bla2[1])
Case $Button4
Case $Button5
$sProgram = InputBox("", "Program:")
$iVolume = InputBox("", "Volume:")
$Error = _SetProgramSoundlevel($sProgram, $iVolume)
;MsgBox(0, "", $Error & @CRLF & @error)
EndSwitch
WEnd -
Ich weiß, es sind noch nicht ganz 24 Stunden um, aber Hilfe wäre gerade echt gut, da ich gerade etwas Zeit habe^^
Übrigens funktioniert _GUICtrlSlider_GetPos immer einwandfrei, nur das SetPos macht Probleme, ich habe mir dazu auch Win7_Sound von BugFix angeschaut, aber das hilft mir auch nicht weiter, weil dort scheint es zu funktionieren und eigentlich ist es doch bei mir sehr gleich gelöst, oder habe ich da etwas übersehen? Übrigens mach ich das alles, damit der Benutzer weiterhin den Lautstärkemixer verwenden kann, was ja bei BugFix' UDF nicht funktioniert, außerdem möchte ich weitere nette Erweiterungen einbauen -
Für euch immer Aber bisschen was arbeiten müsst ihr schon
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include-once
#include <GuiSlider.au3>Global $sVolumeMixerTitle = ""
[/autoit] [autoit][/autoit] [autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _Win7SH_Startup
; Description ...: Startup Win7SoundHandler: Declare Variables; Get the name of the Volume Mixer in the right language
; Syntax ........: _Win7SH_Startup()
; Parameters ....:
; Return values .: $sVolumeMixerTitle - The Title of the Volume Mixer Window in the Systemlanguage.
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _Win7SH_Startup()
OnAutoItExitRegister("_Win7SH_Shutdown")
Global $bSndVolClose = False
Global $iSndVolStartups = 0
Global $asPrograms[2][2] = [[0]]
Global $hPID = Run("sndvol -r", @SystemDir, @SW_HIDE)
$sVolumeMixerTitle = _GetTitleFromPID($hPID)
ProcessClose($hPID)$sVolumeMixerTitle = StringSplit($sVolumeMixerTitle, " - ", 1)
[/autoit] [autoit][/autoit] [autoit]
$sVolumeMixerTitle = $sVolumeMixerTitle[1]Local $iCountProgramsInstance = 0
[/autoit] [autoit][/autoit] [autoit]
Local $iCountPrograms = 1Global $sMuteText = ""
[/autoit] [autoit][/autoit] [autoit]
Global $aPrograms
Global $aProgramInfo[2] = [0]
$sMuteText = _GetMuteText()Return $sVolumeMixerTitle
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_Win7SH_Startup; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _Win7SH_Shutdown
; Description ...: Closes SndVol.exe, if it's needed.
; Syntax ........: _Win7SH_Shutdown()
; Parameters ....:
; Return values .: None
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _Win7SH_Shutdown()
$iSndVolStartups = 1
_SndVolShutdown()
EndFunc; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _GetTitleFromPID
; Description ...: Returns the Name of a Window to a PID.
; Syntax ........: _GetTitleFromPID($hPID)
; Parameters ....: $hPID - A handle value.
; Return values .: $sTitle - The Title of the Volume Mixer Window in the Systemlanguage.
; Author ........:
; Modified ......: Rafael K. (Joriktos, autoit.de)
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _GetTitleFromPID($hPID)
$sTitle = ""
$stPID = DllStructCreate("int")
Do
$aWinList = WinList()
For $i = 1 To $aWinList[0][0]
If $aWinList[$i][0] <> "" Then
DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $aWinList[$i][1], "ptr", DllStructGetPtr($stPID))
If DllStructGetData($stPID, 1) = $hPID Then
$sTitle = $aWinList[$i][0]
ExitLoop
EndIf
EndIf
Next
Sleep(100)
Until $sTitle <> ""
ProcessClose($hPID)
Return $sTitle
EndFunc ;==>_GetTitleFromPID; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Name ..........: _GetMuteText
; Description ...: Returns the text before the Programname (ex. English: "Mute"; ex. German: "Stumm für")
; Syntax ........: _GetMuteText()
; Parameters ....:
; Return values .: $sMuteText - The text before the Programname (ex. English: "Mute"; ex. German: "Stumm für")
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _GetMuteText()
Local $sRandomProgramName
Local $iNamePosition
_SndVolStartup()
Local $sRandomProgramName = ControlGetText($sVolumeMixerTitle, "", 301)
$asPrograms = _MixerGetPrograms()
_SndVolShutdown()
For $iCountPrograms = 1 To $asPrograms[0][0]
$iNamePosition = StringInStr($asPrograms[$iCountPrograms][0], $sRandomProgramName)
If $iNamePosition <> 0 Then
ExitLoop
EndIf
Next
$sMuteText = StringLeft($asPrograms[$iCountPrograms][0], $iNamePosition - 1)
Return $sMuteText
EndFunc ;==>_GetMuteText; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _SndVolStartup
; Description ...: Start the Volume Mixer or get the PID of an opened one.
; Syntax ........: _SndVolStartup()
; Parameters ....:
; Return values .:
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _SndVolStartup()
If $sVolumeMixerTitle = "" Then
Return 0
Else
If WinExists($sVolumeMixerTitle) Then
$hPID = WinGetProcess($sVolumeMixerTitle)
Else
$hPID = Run("SndVol -r", @SystemDir, @SW_HIDE)
$bSndVolClose = True
WinWait($sVolumeMixerTitle)
EndIf
$iSndVolStartups += 1
EndIf
EndFunc ;==>_SndVolStartup; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _SndVolShutdown
; Description ...: Close the Volume Mixer if _SndVolStartup() opened a new Instance of Volume Mixer, else do nothing.
; Syntax ........: _SndVolShutdown()
; Parameters ....:
; Return values .:
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _SndVolShutdown()
If $sVolumeMixerTitle = "" Then
Return 0
Else
If $iSndVolStartups = 1 Then
If $bSndVolClose = True Then
ProcessClose($hPID)
$bSndVolClose = False
EndIf
EndIf
If $iSndVolStartups > 0 Then
$iSndVolStartups -= 1
EndIf
EndIf
EndFunc ;==>_SndVolShutdown; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _MixerGetPrograms
; Description ...:
; Syntax ........: _MixerGetPrograms()
; Parameters ....:
; Return values .: 0 - You have to use _Win7SH_Startup() first.
; $asPrograms - An Array. $asPrograms[0][0] = Number of Programs; $asPrograms[n][0] = Programname; $asPrograms[n][1] = Volume
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _MixerGetPrograms()
If $sVolumeMixerTitle = "" Then
Return 0
Else
_SndVolStartup()
$iCountProgramsInstance = 0
$iCountPrograms = 1
While 1
$iCountProgramsInstance += 2
If $sMuteText = "" Then
$asPrograms[$iCountPrograms][0] = ControlGetText($sVolumeMixerTitle, "", "[CLASS:ToolbarWindow32; INSTANCE:" & $iCountProgramsInstance & "]")
Else
$asPrograms[$iCountPrograms][0] = StringReplace(ControlGetText($sVolumeMixerTitle, "", "[CLASS:ToolbarWindow32; INSTANCE:" & $iCountProgramsInstance & "]"), $sMuteText, "", 1, 1)
EndIf
If $asPrograms[$iCountPrograms][0] = "" Then
If $iCountPrograms = 1 Then
ReDim $asPrograms[2][2]
$asPrograms[0][0] = 0
$asPrograms[1][1] = ""
Else
ReDim $asPrograms[$iCountPrograms][2]
EndIf
ExitLoop
Else
$asPrograms[0][0] = $iCountPrograms
$asPrograms[$iCountPrograms][1] = 100 - _GUICtrlSlider_GetPos(ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iCountPrograms & "]"))
$iCountPrograms += 1
ReDim $asPrograms[$iCountPrograms + 1][2]
EndIf
WEnd
_SndVolShutdown()
Return $asPrograms
EndIf
EndFunc ;==>_MixerGetPrograms; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _GetProgramSoundlevel
; Description ...:
; Syntax ........: _GetProgramSoundlevel($sProgram[, $iFullTitle = False])
; Parameters ....: $sProgram - A string value.
; $iFullTitle - [optional] An integer value. Default is False.
; Return values .: 0 - You have to use _Win7SH_Startup() first.
; $aProgramInfo - An Array. $aProgramInfo[0] = Programname; $aProgramInfo[1] = Volume (0-100)
; Author ........: Rafael K. (Joriktos, autoit.de)
; Modified ......:
; Remarks .......:
; Related .......:
; Link ..........:
; Example .......: No
; ===============================================================================================================================
Func _GetProgramSoundlevel($sProgram, $iFullTitle = False)
If $sVolumeMixerTitle = "" Then
Return 0
Else
_SndVolStartup()
$aPrograms = _MixerGetPrograms()
$aProgramInfo[0] = 0
$aProgramInfo[1] = 0
If $iFullTitle = True Then
For $iLoopCount = 1 To $aPrograms[0][0]
If $aPrograms[$iLoopCount][0] = $sProgram Then
$aProgramInfo[0] = $aPrograms[$iLoopCount][0]
$aProgramInfo[1] = $aPrograms[$iLoopCount][1]
ExitLoop
EndIf
Next
EndIf
If $iFullTitle = False Then
For $iLoopCount = 1 To $aPrograms[0][0]
If StringInStr($aPrograms[$iLoopCount][0], $sProgram) <> 0 Then
$aProgramInfo[0] = $aPrograms[$iLoopCount][0]
$aProgramInfo[1] = $aPrograms[$iLoopCount][1]
ExitLoop
EndIf
Next
EndIf
_SndVolShutdown()
Return $aProgramInfo
EndIf
_SndVolShutdown()
EndFunc ;==>_GetProgramSoundlevelFunc _SetProgramSoundlevel($sProgram, $iVolume, $iFullTitle = False)
[/autoit]
If $sVolumeMixerTitle = "" Then
Return 0
ElseIf Not StringIsDigit($iVolume) Then
SetError(1)
Else
_SndVolStartup()
$aPrograms = _MixerGetPrograms()
$aProgramInfo[0] = 0
$aProgramInfo[1] = 0
If $iFullTitle = True Then
For $iLoopCount = 1 To $aPrograms[0][0]
If $aPrograms[$iLoopCount][0] = $sProgram Then
$aProgramInfo[0] = $aPrograms[$iLoopCount][0]
$aProgramInfo[1] = $aPrograms[$iLoopCount][1]
ExitLoop
EndIf
Next
EndIf
If $iFullTitle = False Then
For $iLoopCount = 1 To $aPrograms[0][0]
If StringInStr($aPrograms[$iLoopCount][0], $sProgram) <> 0 Then
$aProgramInfo[0] = $aPrograms[$iLoopCount][0]
$aProgramInfo[1] = $aPrograms[$iLoopCount][1]
ExitLoop
EndIf
Next
EndIf
If $aProgramInfo[0] <> "" Then
_GUICtrlSlider_SetPos(ControlGetHandle($sVolumeMixerTitle, "", "[CLASS:msctls_trackbar32; INSTANCE:" & $iLoopCount & "]"), 100 - $iVolume)
_SndVolShutdown()
Return $aProgramInfo
Else
_SndVolShutdown()
SetError(2)
Return 0
EndIf
EndIf
EndFunc ;==>_SetProgramSoundlevelIch bin gerade dabei ein besseres Soundmanagement für Win7/8 zu basteln
Ihr müsst euch dafür _SetProgramSoundlevel (letzte Funktion) anschauen. -
Servus, kann es sein, dass
[autoit]_GUICtrlSlider_SetPos
[/autoit]
nicht mit versteckten Fenstern funktioniert? Wenn das Fenster geöffnet ist, dann funktioniert es Problemlos. Gibt es dafür einen Workaround oder so etwas? -
Hab ich mir alles angeschaut, aber:
[Blockierte Grafik: http://www10.pic-upload.de/13.04.13/rbdrrxewbnq2.png] -
Die servers.dat hat irgendwie eine komische Kodierung oder sowas... Ich versuch da mal was drüber rauszufinden, wie man das am besten bearbeiten kann.
-
Also du willst deinen Server in die Servers.dat von dem Minecraft-Client schreiben?
-
Wunderbar, kein Problem
-
Du kannst es ja auch ohne Installation dazu geben Mit der 7zip-32.dll, glaub ich
-
Hast du das mit einem eigenen Script reinkopiert? Hast du die Datei innerhalb des Ordners geöffnet und kein FileClose() verwendet? Das ist mir mal passiert, dass ich eine Datei per FileOpen() geöffnet hatte und dann das FileClose() vergessen hatte, danach wollte ich die Datei per ShellExecute() ausführen, was nicht ging und ich habe ewig nicht gefunden, warum es so war
Bei dir ist zwar ein anderes Problem, aber eventuell hat es trotzdem damit zu tun -
Also dann könntest du noch @CR und @LF probieren oder warum nimmst du nicht einfach $split1[2]? Dann sollte er dir genau das geben, was dir _StringBetween() geben sollte