1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Matricus

Beiträge von Matricus

  • GUI kontrollieren, trotz Schleife etc. (Adlib)

    • Matricus
    • 28. Oktober 2011 um 12:27

    Das Problem dabei ist, dass das Script eine UDF ist, sprich in das Hauptscript hinzugefügt wird.
    Das Hauptscript macht währenddessen nichts (akzeptiert auch keine GUI-Anfragen, da es noch kein GUI zeigt), es wartet bis die UDF einen Wert zurückgibt.

    Das von dir verlinkte Script verwendet interne Zählfunktionen (Differenz seit Start), weswegen das GUI permanent angesprochen werden kann.
    Anders als mein Script läuft der Counter permanent in der GUI-Schleife und wartet auf GUI-Events (OnClick) um dann Funktion X auszuführen.
    Mein Script soll jedoch in der GUI-Schleife laufen (ob nun GetMsg oder OnEvent ist egal), aber nebenbei automatisch einen bestimmten Ablauf durchlaufen und dennoch bei GuiEvent X, Funktion Y aufrufen.

    Ich werde die UDF einfach mal standalone als executable machen und per cmdline aufrufen, sollte niemand eine zündende Idee haben.

    ps: Ich habe mal ein Bild vom Updater angehangen.
    Dass Control das angesteuert werden können soll ist "full changelog" ($GUI_B_Patchnotes), welches dann bei Klick eine .txt Datei öffnet.

    Dateien

    updater.png 337,92 kB – 0 Downloads
  • Script hängt bei Fensterbewegung

    • Matricus
    • 27. Oktober 2011 um 18:42

    Mach es mal bei einem anderem Fenster von Windows.

    Afaik ist das normales "Windows behaviour".

  • GUI kontrollieren, trotz Schleife etc. (Adlib)

    • Matricus
    • 27. Oktober 2011 um 18:29

    Seid gegrüßt!

    Ich bin ja nun schon relativ lange mit AutoIt 'unterwegs', aber habe gerade was die Kontrolle von GUIs angeht, während das Script normal weiterlaufen soll noch immer meine Probleme.
    Bisher habe ich das Problem immer umgangen und das Script entsprechend angepasst, aber nun eben nicht mehr.

    Das Script ist ein Updater für meine zahlreichen Tools hier in der Firma. Es ist eine UDF die in das jeweilige Script mit eingebunden wird und dann nur mit wenigen Funktionsaufrufen gesteuert wird (den Rest macht die UDF selbst, da die Tools & Server jeweils die selbe Struktur haben).

    Problem: Kontrolle des Updater-GUIs (Buttons, Labels etc. klicken), während der Updater im Hintergrund seine Arbeit verrichtet.
    Das GUI wird von der UDF gestellt und gesteuert, nicht von dem Mainscript.

    Ich hatte mich damals schon damit beschäftigt und mit Adlib rumgespielt und auch damals etwas funktionstüchtiges, einfaches zusammenbekommen (klickbare Buttons, obwohl das Script in einer Schleife irgendwas anderes gemacht hat).
    Keine Ahnung wie ich es damals gemacht habe, aber ich probiere hier schon eine Weile rum und hab schon gut gegoogelt, aber naja... vielleicht kann mir einer von euch das fehlende Bauteil verraten. ;)

    Was ich im Script mache ist, zunächst das GUI per Funktion zu erstellen (klappt) und im Anschluss per Adlib die "master function" (_lib_update_master) aufzurufen, welche den Update Prozess steuert.
    Während diese Funktion arbeitet, soll das GUI jedoch weiterhin ansprechbar sein... was es nicht ist.

    Genauer gesagt, möchte ich das $GUI_B_Patchnotes (Label) anklickbar ist und dann als Event (_lib_changelog()) eine Datei öffnet.

    Wo liegt der (Denk-)Fehler?

    Zum Testen des Scripts:
    Ordnerstrktur erstellen: %userprofile%\DublinTools\CTI\download
    In \download die Datei "CTI.notes" mit min 1 Zeile erstellen, sowie die Datei "changelog.txt".

    Source vom Updater (bei weitem noch nicht vollständig):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    ;~ Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $GUI_W_Splash, $GUI_W_Image, $GUI_Progress_Main, $GUI_Progress_Sub, $GUI_L_Headline, $GUI_L_Patchnotes, $GUI_B_Patchnotes, $GUI_Box_Patchnotes, $GUI_L_Progress_Main, $GUI_L_Progress_Sub
    Global $int_BetaUpdate = 0, $int_ProjectName, $int_Logfile
    Global $upd_PathServer, $upd_PathClient, $upd_PathRestart, $upd_VersServer, $upd_VersClient, $upd_FileInformation, $upd_FileNotes, $upd_FileRads, $upd_ArrayInformation, $upd_ArrayNotes, $upd_DataNotes

    [/autoit] [autoit][/autoit] [autoit]

    $upd_PathServer = "\\riot3\File Transfer\DublinTools\"
    $upd_PathClient = @UserProfileDir & "\DublinTools\"
    $upd_VersClient = FileGetVersion(@ScriptFullPath)

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_GuiCreate()
    $GUI_W_Splash = GUICreate("Updater", 650, 391, -1, -1, BitOR($WS_MINIMIZEBOX,$WS_POPUP,$WS_GROUP))
    GUISetFont(9, 400, 0, "Cambria")
    $GUI_W_Image = GUICtrlCreatePic("C:\Users\dbusch\Desktop\Tools\CTI\assets\splash.jpg", 0, 0, 668, 404, BitOR($SS_NOTIFY,$WS_GROUP))
    $GUI_Progress_Sub = GUICtrlCreateProgress(24, 315, 270, 11, BitOR($PBS_SMOOTH,$WS_BORDER))
    $GUI_Progress_Main = GUICtrlCreateProgress(24, 350, 270, 11, BitOR($PBS_SMOOTH,$WS_BORDER))
    $GUI_L_Headline = GUICtrlCreateLabel("", 24, 24, 271, 18)
    $GUI_L_Patchnotes = GUICtrlCreateLabel("Changelog Preview", 24, 65, 175, 15)
    $GUI_B_Patchnotes = GUICtrlCreateLabel("full changelog", 220, 65, 75, 15, $WS_BORDER)
    $GUI_Box_Patchnotes = GUICtrlCreateLabel("", 24, 80, 271, 202, $WS_BORDER)
    $GUI_L_Progress_Sub = GUICtrlCreateLabel("", 24, 300, 270, 15)
    $GUI_L_Progress_Main = GUICtrlCreateLabel("", 24, 335, 270, 15)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($GUI_L_Headline, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetBkColor($GUI_L_Patchnotes, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetBkColor($GUI_Box_Patchnotes, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetBkColor($GUI_B_Patchnotes, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetBkColor($GUI_L_Progress_Main, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetBkColor($GUI_L_Progress_Sub, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetState($GUI_Box_Patchnotes, $GUI_HIDE)
    GUICtrlSetState($GUI_L_Patchnotes, $GUI_HIDE)
    GUICtrlSetState($GUI_B_Patchnotes, $GUI_HIDE)
    GUICtrlSetColor($GUI_L_Headline, 0xBF9B3B) ; gold
    GUICtrlSetColor($GUI_L_Patchnotes, 0xBF9B3B) ; gold
    GUICtrlSetColor($GUI_Box_Patchnotes, 0x3061BE) ; blue
    GUICtrlSetColor($GUI_B_Patchnotes, 0x3061BE) ; blue
    GUICtrlSetColor($GUI_L_Progress_Main, 0xBF9B3B) ; gold
    GUICtrlSetColor($GUI_L_Progress_Sub, 0xBF9B3B) ; gold
    GUICtrlSetFont($GUI_L_Headline, 12, 800, 0, "Cambria")
    GUICtrlSetFont($GUI_L_Patchnotes, 10, 800, 0, "Cambria")
    ;~ GUICtrlSetFont($GUI_Box_Patchnotes, 9, 400, 0, "Cambria")
    ;~ GUICtrlSetOnEvent($GUI_B_Patchnotes, "_lib_changelog")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    _lib_update_GuiCreate()
    AdlibRegister('_adlib')

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_B_Patchnotes Then _lib_changelog()

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _adlib()
    _lib_update_Master("CTI", 1)
    ;~ AdlibUnRegister("_adlib")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_changelog()
    ShellExecute($upd_PathClient & "\download\changelog.txt")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_Master($pProjectName, $pUpdateStep, $pBetaUpdate = 0)
    Local $tUpdate = 0
    $int_ProjectName = $pProjectName
    $int_BetaUpdate = $pBetaUpdate
    $int_Logfile = $pProjectName & ".log"
    $upd_PathClient &= $int_ProjectName
    $upd_PathServer &= $int_ProjectName
    $upd_FileInformation = $int_ProjectName & ".update" ; update information
    $upd_FileNotes = $int_ProjectName & ".notes" ; patchpreview
    $upd_FileRads = $int_ProjectName & ".rads" ; tool structure information (for RADS check)
    If $int_BetaUpdate = 1 Then $upd_PathServer &= "\Beta"

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($GUI_L_Headline, "Launching " & $int_ProjectName)

    [/autoit] [autoit][/autoit] [autoit]

    Select
    Case $pUpdateStep = 1
    If Not FileExists($upd_PathClient & "\download") Then DirCreate($upd_PathClient & "\download")

    [/autoit] [autoit][/autoit] [autoit]

    _lib_update_GuiSetState(11)
    _lib_update_getInformation()

    [/autoit] [autoit][/autoit] [autoit]

    _lib_update_GuiSetState(12)
    $tUpdate = _lib_update_checkVersion()
    If $tUpdate = 1 Then
    _lib_update_GuiSetState(13)
    _lib_update_getNotes()
    _lib_update_GuiSetState(14)
    ;~ _lib_update_getRads()
    Else
    _lib_update_GuiSetState(50) ; no update / launch tool
    Return
    EndIf
    EndSelect
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_getInformation()
    Local $answer

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($upd_PathClient & "\" & $upd_FileInformation) Then
    _FileReadToArray($upd_PathClient & "\" & $upd_FileInformation, $upd_ArrayInformation)
    Else
    FileCopy($upd_PathServer & "\" & $upd_FileInformation, $upd_PathClient & "\" & $upd_FileInformation, 1)
    _FileReadToArray($upd_PathClient & "\" & $upd_FileInformation, $upd_ArrayInformation)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If Not IsArray($upd_ArrayInformation) Then MsgBox(48, "ERROR", "ERROR - No Information Array!")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_getNotes()
    Local $answer, $i

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($upd_PathClient & "\download\" & $upd_FileNotes) Then
    _FileReadToArray($upd_PathClient & "\download\" & $upd_FileNotes, $upd_ArrayNotes)
    Else
    FileCopy($upd_PathServer & "\" & $upd_FileNotes, $upd_PathClient & "\download\" & $upd_FileNotes, 1)
    _FileReadToArray($upd_PathClient & "\download\" & $upd_FileNotes, $upd_ArrayNotes)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If Not IsArray($upd_ArrayNotes) Then
    MsgBox(48, "ERROR", "ERROR - No Patchnotes Array!")
    Else
    For $i=1 To $upd_ArrayNotes[0] Step 1
    $upd_DataNotes &= $upd_ArrayNotes[$i] & @CRLF
    Next
    GUICtrlSetData($GUI_Box_Patchnotes, $upd_DataNotes)
    GUICtrlSetState($GUI_Box_Patchnotes, $GUI_SHOW)
    GUICtrlSetState($GUI_L_Patchnotes, $GUI_SHOW)
    GUICtrlSetState($GUI_B_Patchnotes, $GUI_SHOW)
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_GuiSetState($pState)
    Select
    Case $pState = 11
    GUICtrlSetData($GUI_Progress_Sub, 5)
    GUICtrlSetData($GUI_Progress_Main, 2)
    GUICtrlSetData($GUI_L_Progress_Sub, "retrieving information")
    GUICtrlSetData($GUI_L_Progress_Main, "checking for updates")

    [/autoit] [autoit][/autoit] [autoit]

    Case $pState = 12
    GUICtrlSetData($GUI_Progress_Sub, 40)
    GUICtrlSetData($GUI_Progress_Main, 10)
    GUICtrlSetData($GUI_L_Progress_Sub, "comparing versions")

    [/autoit] [autoit][/autoit] [autoit]

    Case $pState = 13
    GUICtrlSetData($GUI_Progress_Sub, 60)
    GUICtrlSetData($GUI_Progress_Main, 15)
    GUICtrlSetData($GUI_L_Progress_Sub, "retrieving changelogs")

    [/autoit] [autoit][/autoit] [autoit]

    Case $pState = 14
    GUICtrlSetData($GUI_Progress_Sub, 80)
    GUICtrlSetData($GUI_Progress_Main, 20)
    GUICtrlSetData($GUI_L_Progress_Sub, "retrieving update details")

    [/autoit] [autoit][/autoit] [autoit]

    Case $pState = 50
    GUICtrlSetData($GUI_Progress_Sub, 100)
    GUICtrlSetData($GUI_Progress_Main, 100)
    GUICtrlSetData($GUI_L_Progress_Sub, "Done")
    GUICtrlSetData($GUI_L_Progress_Main, "Launching " & $int_ProjectName)
    Sleep(2500)
    EndSelect
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _lib_update_checkVersion()
    Local $answer
    ;~ $upd_VersServer = $upd_ArrayInformation[1]
    $upd_VersServer = 1

    [/autoit] [autoit][/autoit] [autoit]

    If $upd_VersServer > $upd_VersClient Then
    $answer = MsgBox(64+4, "Updater", "Update available!" & @CRLF & @CRLF & _
    "Targeted Tool: " & $int_ProjectName & @CRLF & _
    "Your Version: " & $upd_VersClient & @CRLF & _
    "Server Version: " & $upd_VersServer & @CRLF & @CRLF & _
    "Proceed and update to latest version?")

    [/autoit] [autoit][/autoit] [autoit]

    If $answer = 6 Then
    Return 1
    Else
    Return 0
    EndIf
    EndIf
    EndFunc

    [/autoit]
  • Dateiinhalte vergleichen

    • Matricus
    • 2. November 2010 um 16:19

    Danke euch beiden.
    Mit _ArraySearch() ist es in der Tat einfacher und schneller. :)

  • Dateiinhalte vergleichen

    • Matricus
    • 2. November 2010 um 14:40

    Fehler selbst gefunden *Kopf->Wand*.
    Fehl war, dass er sich in einer Endlosschleife gedreht hat.

    Bei der Überprüfung der Werte habe ich vergessen "ExitLoop" einzufügen, sofern beide Werte gleich sind (und er damit zum nächsten Pfad gehen soll).

    /closed

  • Dateiinhalte vergleichen

    • Matricus
    • 2. November 2010 um 14:26

    Ich weiß dieses Thema gab es schon desöfteren und ich hab auch schon über die Suche einige gefunden.
    Das Script lief zwar vorher schon, bevor ich angefangen hab zu suchen, aber es war recht langsam.

    Worum gehts: Das Script soll 2 Dateien miteinander vergleichen und Unterschiede in Datei 3 schreiben.

    Dabei müssen verschiedene Dinge beachtet werden.
    Es werden je 2 Werte aus der jeweiligen Datei gelesen; Pfad + Wert.
    Diese Werte soll er mit einer neueren Version der Datei vergleichen.
    Die Crux dabei ist nun, dass die Reihenfolge unterschiedlich sein kann.

    Das bedeutet nun genau:

    • Pfad + Wert aus Datei 1 lesen
    • Pfad in Datei 2 suchen

      • wenn gefunden, dann Werte vergleichen

        • wenn unterschiedlich, dann in Datei 3 schreiben (sonst nichts)
        • wenn gleich, dann nichts machen, sondern wieder zum Anfang springen (nächtsen Pfad + Wert aus Datei 1 lesen)
      • wenn nicht gefunden, dann in Datei 3 schreiben

    Der Aufbau beider Dateien ist identisch, hier mal ein Auszug:

    Code
    7e2f19c75105047a0668b19ee620dcac *ace/ace_cp.deploy
    cf4684fe0d4b39cb8edccf6ea4922e8d *ace/CM/bkg.png
    e2d0b78edeafd93685b73733877aca10 *ace/CM/cmerrors.ace
    fbe2f82503b07029d469959f2324425f *ace/CM/mdinfo.ace


    Mein Script:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $OldFile = "old.txt", $NewFile = "new.txt", $TargetLog = @ScriptDir & "\changes.txt"
    Global $OldHandle, $NewHandle, $TargetHandle, $ChangeAmount, $OldLines, $NewLines, $OldCounter = 4, $NewCounter = 4, $OldData, $NewData

    [/autoit] [autoit][/autoit] [autoit]

    _FileCreate($TargetLog)
    $OldHandle = FileOpen($OldFile, 0) ; current state file
    $NewHandle = FileOpen($NewFile, 0) ; new state file
    $TargetHandle = FileOpen($TargetLog, 2) ; difference file

    [/autoit] [autoit][/autoit] [autoit]

    _compareFiles()

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ProgressOn("test", "file")

    [/autoit] [autoit][/autoit] [autoit]

    Func _compareFiles()

    [/autoit] [autoit][/autoit] [autoit]

    $OldLines = _FileCountLines($OldFile)
    $NewLines = _FileCountLines($NewFile)

    [/autoit] [autoit][/autoit] [autoit]

    While $OldCounter <= $OldLines
    $OldData = StringSplit(FileReadLine($OldHandle, $OldCounter), "*")
    $OldData[1] = StringTrimRight($OldData[1], 1)
    ;~ ProgressSet($OldCounter, $OldData[2])
    _searchFile()

    [/autoit] [autoit][/autoit] [autoit]

    $OldCounter += 1
    WEnd
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _searchFile()
    Local $match = 0

    [/autoit] [autoit][/autoit] [autoit]

    While $NewCounter <= $NewLines
    $NewData = StringSplit(FileReadLine($NewHandle, $NewCounter), "*")
    $NewData[1] = StringTrimRight($NewData[1], 1)

    [/autoit] [autoit][/autoit] [autoit]

    If $NewData[2] = $OldData[2] Then
    $match = 1
    Select
    Case $OldData[1] = $NewData[1]

    [/autoit] [autoit][/autoit] [autoit]

    Case $OldData[1] <> $NewData[1]
    FileWrite($TargetHandle, $NewData[2] & @CRLF)
    ExitLoop
    EndSelect
    Else
    $NewCounter += 1
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $match = 0 And $NewCounter = $NewLines Then FileWrite($TargetHandle, $NewData[2] & @CRLF)
    WEnd
    EndFunc

    [/autoit]

    Das funktioniert soweit auch, aber es scheint extrem langsam zu sein (das Script beendet sich selbst nach 10 Minuten nicht von selbst).
    Nach 2 Minuten hat es gerade mal 2 Unterschiede gefunden (von Einträgen die unter den ersten 10 Zeilen sind).

    Als generelle Info: Die Anzahl der Zeilen beider Dateien ist >3000.
    Dennoch sollte es daran nicht liegen, da die CPU nicht mal 2% Auslastung hat...


    Jemand Vorschläge zur Verbesserung? Hab ich vielleicht unnötige Dinge drin?

    Grüße

  • Variable in die Run Funktion einbauen - Wie ?

    • Matricus
    • 10. August 2010 um 15:00
    [autoit]

    $website = "http://www.ebay.de/"

    [/autoit][autoit][/autoit][autoit]

    ShellExecute($website, "", "", "", @SW_MAXIMIZE)

    [/autoit]

    ShellExecute ruft eine Webseite mit dem Standardbrowser auf.

    Wenn du Run verwendet möchtest, müsste es so aussehen:

    [autoit]

    $website = "http://www.ebay.de/"

    [/autoit][autoit][/autoit][autoit]

    Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $website, "", @SW_MAXIMIZE)

    [/autoit]

    Eine Variable wie $website darf nicht in dem String (also zwischen den "") stehen, ansonsten wird nicht der Wert der Variable genommen, sondern der Name der Variable (eben ein normaler String).
    @ProgramFilesDir weißt automatisch auf das Windows Programmverzeichnis, denn nicht jeder hat Windows auf C:.

  • Nach Bild im Programmfenster (Webseite) suchen

    • Matricus
    • 9. August 2010 um 21:30
    Zitat von Sprenger120

    Ja das ginge mit, wenn du mit Firefox arbeitest, mit dem FF UDF. (Einfach mal im -forum danach suchen)

    PS: Kann ich mal die Seite wissen weil es kann sein das der Webseitenbetreiber Fernsteuerung von der Website verbietet.

    Es ist eben keine Webseite aus dem Internet, sondern eine lokale des Programmes.
    Es ist das Startprogramm eines Spieles, welches als Webseite aufgebaut ist (also das Startprogramm, nicht das Spiel).
    Sie besteht eben aus .css, html und .js.
    Nebenbei bemerkt basiert der gesamte launcher (neben den 3 genannten typen) noch auf IE und Adobe Air.

    Zitat


    Hast du dir mal die IE Funktionen in der IE.au3 angesehen?
    _IEGetObjById
    _IEGetObjByName
    _IEAction

    könnten zum Ziel führen.

    Werd' ich mal schauen, Danke.


    Wenn noch jemand einen Geistesblitz hat, immer her damit. ;)

  • Nach Bild im Programmfenster (Webseite) suchen

    • Matricus
    • 9. August 2010 um 18:02

    Heyho Scriptingkollegen,

    ich hab da ein Problem.
    Naja, was heißt Problem, eher eine Frage.

    Und zwar:

    Ein Programm - in dem Fall der launcher eines Spieles - ist als Webseite designed.
    Sprich CSS, html und javascripts bestimmen den dynamischen Inhalt, inklusiver der buttons.

    So, da ist bereits das Problem.
    Die buttons sind "nur" Bilder die per Javascript/css animiert werden (hover event, click event usw.).

    So, eben die Position des Buttons möchte ich rausfinden, da es dazu kein control gibt.

    Das Window Info Tool sagt das dazu:


    [Blockierte Grafik: http://img844.imageshack.us/img844/8311/autoitwindowinfo.th.png]

    Das sind die Infos, wenn ich mit der Maus über dem button bin, den ich eben finden möchte.
    Die selben Angaben sind an jeder Stelle im Fenster.

    Gibt es eine Möglichkeit die Position des buttons rauszufinden (für Click)?
    Dazu sei gesagt, dass sich das theme (als Farbe und Position) je nach Rechner ändern kann, zudem kommt die Auflösung dazu.

    Ich hab mir schon gedacht nach Programmstart per WinGetPos() die Position abzufragen und von dort dann jeweils x/y statische Werte dazuzuaddieren, aber das würde eben auch nur mit dem standard theme funktionieren.

    Jemand eine Idee?


    Grüße

  • Benötige Hilfe bei GUIs!

    • Matricus
    • 25. Mai 2010 um 14:35

    Das machst du in der while-Schleife, indem du dort per case the Variable des Buttons/... aufrufst.

    z.B.

    [autoit]


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $Button1
    MsgBox(64, "OK!", "Du hast auf Ok geklickt")

    [/autoit][autoit][/autoit][autoit]

    Case $Button2
    MsgBox(64, "Abbrechen!", "Du hast auf Abbrechen geklickt")

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]

    Die Variablen $Button1 usw. natürlich durch die Variablennamen der in der GUI angegebenen ersetzen.

    Siehe dazu auch der Hilfe unter "GUICreate" oder GUIGetMsg() bzw. GUISetOnEvent()

  • Benötige Hilfe bei GUIs!

    • Matricus
    • 25. Mai 2010 um 14:26

    Du darfst die Input Box natürlich nicht separat (also außerhalb der GUI) erstellen, wenn diese in der GUI sein soll. ;)


    Hier hast du dein GUI mit einer Inputbox, als Beispiel.
    Du kannst in Koda entsprechend das Feld "Inputbox" auswählen und so direkt platzieren.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Dialog", 379, 147, 347, 263)
    GUISetBkColor(0x6D6D6D)
    $GroupBox1 = GUICtrlCreateGroup("", 40, 17, 300, 73)
    $Input1 = GUICtrlCreateInput("Please insert text here", 54, 48, 273, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("OK", 65, 99, 75, 25)
    $Button2 = GUICtrlCreateButton("Cancel", 242, 99, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]
  • 'Datenexport' - "interaktives" schreiben einer .bat

    • Matricus
    • 9. März 2010 um 14:04

    ... *doof ist*

    Problem selbst gelöst.

    Ich ändere einfach den Inhalt des batch-scriptes..

    [autoit]

    'start notepad "' & $ausgewählterOrdner & '\dateiname.txt"'

    [/autoit]

    ... ich bin so... naja, was solls. ;)
    /closed

  • 'Datenexport' - "interaktives" schreiben einer .bat

    • Matricus
    • 9. März 2010 um 13:59

    Grüße... ja ich mal wieder ;)

    Heute wiedermal mit einer Frage... und zwar hab ich einen Datenexport (für Hardwaredaten) erstellt.
    Wenn der Nutzer auf Export klickt wird er nach einem Verzeichnis gefragt per FileSelectFolder

    So, nun wird eine .txt Datei erzeugt (_FileCreate) und die Daten dort hinein geschrieben.
    Am Ende des Exports wird eine weitere Datei erzeugt, diesmal eine batch Datein (.bat).
    In diese wird "start" & $ausgewählterOrdner & "\dateiname.txt" geschrieben und nach @tempdir kopiert.

    Dieses batchfile wird danach gestartet um das Export-Log zu öffnen.

    Der Fehler der nun dabei auftritt ist, dass wenn der Nutzer beim Export einen Ordner auswählt der ein Leerzeichen enthält, wie z.B. bei XP "Dokumente und Einstellungen", kann XP damit nicht umgehen und versucht nur "C:\Dokumente" zu öffnen.

    Spoiler anzeigen
    [autoit]

    Func SysExport()
    $GameData[0] = FileSelectFolder("Bitte das Zielverzeichnis für den Export auswählen.", "", 2, @MyDocumentsDir)
    GUICtrlSetState($SysInfo_Export, $GUI_SHOW)
    _FileCreate($GameData[0] & "\SystemInformationen.txt")
    GUICtrlSetState($SysInfo_BarL_status, $GUI_SHOW)
    GUICtrlSetData($SysInfo_Export, 10)
    $Dump = FileOpen($GameData[0] & "\SystemInformationen.txt", 2)
    GUICtrlSetData($SysInfo_Export, 20)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . .")
    FileWrite($Dump, "League of Legends - Get it fixed! Tool" & @CRLF & "Systeminformationen" & @CRLF)
    GUICtrlSetData($SysInfo_Export, 30)
    FileWrite($Dump, "______________________________________" & @CRLF & @CRLF)
    GUICtrlSetData($SysInfo_Export, 40)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . . .")
    FileWrite($Dump, "Betriebssystem: " & $System[1] & " - " & $System[2] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 50)
    FileWrite($Dump, "Servicepack: " & $System[3] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 60)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . ")
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "CPU Modell: " & $Hardware[1] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 70)
    FileWrite($Dump, "CPU Taktung: " & $Hardware[4] & "x" & $Hardware[2] & " (aktuell: " & $Hardware[3] & ")" & @CRLF)
    GUICtrlSetData($SysInfo_Export, 75)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . .")
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "Grafikkarte: " & $Hardware[8] & @CRLF)
    FileWrite($Dump, "Grafikspeicher: " & $Hardware[9] & @CRLF)
    FileWrite($Dump, "Treiberdatum: " & $Hardware[10] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 80)
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "Mainboard: " & $Hardware[12] & " (OEM: " & $Hardware[11] & ")" & @CRLF)
    FileWrite($Dump, "Arbeitsspeicher: " & $Hardware[6] & " (" & $Hardware[7] & " Modul(e))" &@CRLF)
    GUICtrlSetData($SysInfo_Export, 90)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . . .")
    Sleep(500)
    FileClose($Dump)
    Sleep(500)
    ; => Hier gehts los mit Batch
    _FileCreate(@TempDir & "\SystemInformationen.bat")
    GUICtrlSetData($SysInfo_Export, 100)
    $Dump = FileOpen(@TempDir & "\SystemInformationen.bat", 2)
    sleep(100)
    FileWrite($Dump, "start " & $GameData[0] & "\Systeminformationen.txt")
    GUICtrlSetData($SysInfo_BarL_status, "Fertig! Öffne Exportdatei")
    FileClose($Dump)
    Run(@TempDir & "\SystemInformationen.bat", @TempDir)
    GUICtrlSetData($SysInfo_BarL_status, "Datei geöffnet!")
    GUICtrlSetState($SysInfo_Export, $GUI_HIDE)
    Sleep(3000)
    GUICtrlSetState($SysInfo_BarL_status, $GUI_HIDE)
    EndFunc

    [/autoit]

    Daher die Frage... kann man dies auch irgendwie anderst lösen... z.B. das Notepad starten und diesem eine Datei zum öffnen übergeben?

  • Array - subscript used with non-array variable

    • Matricus
    • 7. März 2010 um 08:18

    Öhm, ja ok... sag ja ist ein Anfängerfehler.. ;)
    Das ich das selbst nicht gesehen hab obwohl's direkt daneben stand /blush

    Danke Raupi und den anderen für die Hilfe. :)

    /solved

  • Array - subscript used with non-array variable

    • Matricus
    • 7. März 2010 um 00:24

    Okay... guter Einwand.

    ... sind nun angehängt.

    Diese müssen in den Unterordner \files vom Scriptverzeichnis... zudem die Zeilen 39 bis 43 auskommentiert werden.
    Dort wird die Schriftart Calibri installiert... Dateien wären zu groß für's Archiv.
    GUI sieht dann zwar etwas... doof aus, aber sollte ausführbar sein.

    Dateien

    files.rar 139,99 kB – 276 Downloads
  • Array - subscript used with non-array variable

    • Matricus
    • 6. März 2010 um 23:41

    Also bei mir funktionierts... liegt wohl bei dir dran, dass du die ganzen Dateien nicht hast die ich per Fileinstall an entsprechenden Stellen "installieren" lassen.

    ... lässt sich auch ohne Probleme kompilieren.. kannst dir ja mal von meinem rapidshare account den .exe runterladen (32bit) und starten, dann siehst das es funktioniert und auch lauffähig ist.

    Aber naja, vielleicht reicht ja auch schon ein Hinweis.

    Die Arrays werden ja im "Startvorgang" des Programmes deklariert (Global) und auch mit Daten gefüllt.
    Diese Daten sollen später im Script - in einer eigenen Funktion und GUI - ausgegeben werden als Labels (GUICtrlCreateLabel()), daher ja auch als Global deklariert.

    Wenn ich "normale" Variablen und keine Arrays verwende funktioniert das ohne Probleme, doch sobald die die Variablen mit den Arrays ersetze, kommt oben genannter Fehler.

    Muss ich der Funktion noch irgendwas übergeben, sodass diese die Arrays auch "findet"?

  • Array - subscript used with non-array variable

    • Matricus
    • 6. März 2010 um 21:47

    Grüße!

    Ich mal wieder...
    In meinen Script hab ich vor kurzem nun die meisten Variablen in ein paar Arrays zusammengefasst.
    Speichern und Abruf (_ArrayDisplay()) funktioniert ohne Probleme, aber sobald ich den Wert des Array in ein Label des GUIs hinzufüge kommt der besagte Fehler

    subscript used with non-array variable

    Google und Forumssuche haben zwar was informatives zurückgegeben, aber nichts was zur Problemlösung beitragen könnte.

    Hoffe jemand findet meinen Fehler, welcher vermutlich ein Anfängerfehler ist... ;)

    Hier die Deklaration inkl. Datenabruf und Speicherung...

    Spoiler anzeigen
    [autoit]

    Global $LoLFixit_Launcher = GUICreate("LoL- Get it fixed! Launcher", 345, 136, 496, 308)
    GUISetFont(10, 400, 0, "Microsoft Sans Serif")
    $L_wait = GUICtrlCreateLabel("Bitte einen Moment Geduld.", 16, 16, 167, 20)
    $L_primary = GUICtrlCreateLabel("Das Fixing-Tool für League of Legends wird gestartet.", 16, 40, 320, 20)
    $Bar_status = GUICtrlCreateProgress(16, 104, 313, 14)
    GUICtrlSetColor(-1, 0x008000)
    GUICtrlSetBkColor(-1, 0xFFFBF0)
    GUICtrlSetTip(-1, "status")
    ;Global $B_exit = GUICtrlCreateButton("Abbrechen", 280, 98, 83, 25, 0)
    $Bar_label = GUICtrlCreateLabel("Status", 18, 80, 310, 19)
    GUICtrlSetFont(-1, 9, 800, 0, "Microsoft Sans Serif")
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    GUISetState(@SW_SHOW)
    _GetInfos()
    GUIDelete($LoLFixit_Launcher)
    While 1
    Sleep(1000)
    WEnd
    ; # Launcher: GUI Ende #

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetInfos()
    ; # Launcher: Start #
    GUICtrlSetData($Bar_status, 1)
    GUICtrlSetData($Bar_label, "Starte Informationssammlung")
    Sleep(1000)
    Global $Hardware[13], $System[11], $GameData[9]
    Global $Dump, $Dump2
    #cs
    Global $DirEU, $DirUS, $Dir, $Dir2, $DirFault, $rescdir ; => für LoL Verzeichnisse
    Global $inetcfg ; => Internet Explorer registry value
    Global $OS, $OS1, $OSarch, $OSinstall, $OSinstalltemp, $SP, $User, $PCName, $IP1, $IP2, $admin ; => allgemeine Systemdaten
    Global $temp, $name, $objItem ; => sonstiges
    Global $S_CPUName, $S_CPUmax, $S_CPUatm, $S_CPUcores, $S_CPUcoreSUM, $S_RAM, $S_RAMcount, $S_DispRAM, $S_DispTyp, $S_DispDriver, $S_DispDrivertemp, $S_MBoem, $S_MBmodel ; => Hardware Daten
    #ce
    GUICtrlSetData($Bar_status, 8)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: read registry values #
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [LoL US]")
    Sleep(750)
    $Dump = StringSplit(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{868EC22E-7E82-4760-9265-3F2E705BF24B}", "InstallLocation"), "\")
    $i = 2
    $GameData[2] = $Dump[1]
    While $i < $Dump[0]
    $GameData[2] = $GameData[2] & "\" & $Dump[$i]
    GUICtrlSetData($Bar_status, $i + 10)
    $i = $i + 1
    WEnd
    Global $Dump = ""
    Global $Dump[20]
    GUICtrlSetData($Bar_status, 21)
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [LoL EU]")
    Sleep(750)
    $Dump = StringSplit(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\leagueoflegends\leagueoflegends", "UninstallPath"), "\")
    $i = 2
    $GameData[1] = $Dump[1]
    While $i < $Dump[0]
    $GameData[1] = $GameData[1] & "\" & $Dump[$i]
    GUICtrlSetData($Bar_status, $i + 30)
    $i = $i + 1
    WEnd
    GUICtrlSetData($Bar_status, $i + 40)
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [Internet Explorer]")
    Sleep(750)
    $System[10] = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Internet Settings", "GlobalUserOffline")
    GUICtrlSetData($Bar_status, $i + 43)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: read environment data #
    GUICtrlSetData($Bar_status, $i + 46)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Betriebssystem]")
    Sleep(350)
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $System[2] = @OSArch
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Dump = StringSplit($objItem.InstallDate, "")
    $Dump2 = StringSplit($objItem.Name, "|")
    Next
    EndIf
    $System[1] = $Dump2[1]
    $System[4] = $Dump[7] & $Dump[8] & "." & $Dump[5] & $Dump[6] & "." & $Dump[1] & $Dump[2] & $Dump[3] & $Dump[4]
    GUICtrlSetData($Bar_status, $i + 49)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Update Status]")
    Sleep(350)
    $System[3] = @OSServicePack
    GUICtrlSetData($Bar_status, $i + 52)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [PC-Name & Nutzer]")
    Sleep(350)
    $System[6] = @ComputerName
    $System[5] = @UserName
    GUICtrlSetData($Bar_status, $i + 56)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Netzwerk Status]")
    Sleep(350)
    $System[8] = @IPAddress1
    $System[9] = @IPAddress2
    GUICtrlSetData($Bar_status, $i + 60)

    [/autoit] [autoit][/autoit] [autoit]

    if IsAdmin() Then
    $System[7] = "Ja"
    Else
    $System[7] = "Nein"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: WMI queries to get hardware data #
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Hardware]")
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    GUICtrlSetData($Bar_status, $i + 62)

    [/autoit] [autoit][/autoit] [autoit]

    ; RAM
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemoryArray", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 64)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[6] = $objItem.MaxCapacity / 1024 / 1024 & " GB"
    $Hardware[7] = $objItem.MemoryDevices
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; CPU
    GUICtrlSetData($Bar_status, $i + 66)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 68)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[3] = $objItem.CurrentClockSpeed & " MHz"
    $Hardware[2] = $objItem.MaxClockSpeed & " MHz"
    $Hardware[1] = $objItem.Name
    $Hardware[4] = $objItem.NumberOfCores
    $Hardware[5] = $objItem.NumberOfLogicalProcessors
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Grafik
    GUICtrlSetData($Bar_status, $i + 70)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 72)
    If IsObj($colItems) then
    For $objItem In $colItems
    $strAcceleratorCapabilities = $objItem.AcceleratorCapabilities(0)
    $Hardware[9] = $objItem.AdapterRAM / 1024 / 1024 & " MB"
    $Hardware[8] = $objItem.Caption
    $Dump = StringSplit($objItem.DriverDate, "")
    Next
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    $Hardware[10] = $Dump[5] & $Dump[6] & "." & $Dump[7] & $Dump[8] & "." & $Dump[1] & $Dump[2] & $Dump[3] & $Dump[4]

    [/autoit] [autoit][/autoit] [autoit]

    ; Mainboard
    GUICtrlSetData($Bar_status, $i + 74)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 76)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[11] = $objItem.Manufacturer
    $Hardware[12] = $objItem.Model
    Next
    EndIf
    GUICtrlSetData($Bar_status, $i + 80)

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($Hardware)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: setting variables #
    GUICtrlSetData($Bar_label, "Initialisiere Daten")
    GUICtrlSetData($Bar_status, 82)
    $GameData[7] = "lol.launcher.exe"
    Sleep(100)
    GUICtrlSetData($Bar_status, 84)
    $GameData[6] = 0
    Sleep(100)
    GUICtrlSetData($Bar_status, 86)
    $GameData[4] = @TempDir
    Sleep(100)
    GUICtrlSetData($Bar_status, 88)
    Sleep(100)
    GUICtrlSetData($Bar_status, 90)
    GUICtrlSetData($Bar_label, "Lade Oberfläche")
    Global $Main_B_upcoming, $Laun_B_close, $Laun_B_play, $Laun_B_error, $Shop_B_blank, $Conn_B_analyse, $Info_B_notes, $Win_close, $run_lol
    Global $B_EU, $B_US
    Sleep(100)
    GUICtrlSetData($Bar_status, 92)
    Global $OS_label, $SP_label, $install_label, $PCname_label, $User_label, $admin_label, $arch_label ; => SysInfo: Allgemein
    GUICtrlSetData($Bar_status, 94)
    Global $CPU_typ_label, $CPU_curclock_label, $CPU_maxclock_label, $CPU_cores_label, $CPU_coreSUM_label ; => SysInfo: CPU
    Global $GPU_card_label, $GPU_RAM_label, $GPU_DriverDate_label ; => SysInfo: Grafik
    GUICtrlSetData($Bar_status, 96)
    Global $MB_OEM_label, $MB_model_label, $RAM_amount_label, $RAM_count_label, $SysInfo_B_ExportText, $SysInfo, $SysInfo_Export, $ExportDir, $SysInfo_BarL_status, $File ; => SysInfo: sonstiges
    GUICtrlSetData($Bar_status, 98)
    GUICtrlSetData($Bar_label, "Starte Programm")
    Sleep(500)
    GUICtrlSetData($Bar_status, 100)

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(64, "Test Box for variables", $OS & @CRLF & $OSinstall)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: verify LoL data #
    If $System[3] = "" Then
    $System[3] = "kein Servicepack installiert"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Hardware[11] = "System manufacturer" Then
    $Hardware[11] = "Information nicht verfügbar"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Hardware[12] = "System Product Name" Then
    $Hardware[12] = "Information nicht verfügbar"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $GameData[1] = "" And $GameData[2] = "" Then
    MsgBox(48, "LoL - Get it fixed!", "Es konnte keine LoL - Installation gefunden werden." & @CRLF & "Nachfolgend bitte den Installationsordner wählen.", 5)
    $GameData[3] = FileSelectFolder("Das Installationsverzeichnis konnte nicht automatisch erkannt werden." & @CRLF & "Bitte wähle dein LoL Installationsverzeichnis", "", 2, "C:\programme\")
    $GameData[8] = $GameData[3]
    main()
    ElseIf $GameData[1] <> "" And $GameData[2] <> "" Then
    launcher_EUandUS()
    EndIf
    EndFunc ;==>_GetInfos

    [/autoit]


    Hier das GUI in das die Daten am Ende sollen...
    In dem Fall z.B. der Fehler bei
    $OS_label = GUICtrlCreateLabel($System[1], 200, 64, 252, 23)
    oder
    $SP_label = GUICtrlCreateLabel($System[3], 200, 112, 252, 23)
    usw.

    Spoiler anzeigen
    [autoit]

    Func SysInfo()
    _ArrayDisplay($System)
    $SysInfo = GUICreate("Get it fixed! - System Überblick", 511, 838, 616, 96)
    GUISetFont(10, 800, 0, "Calibri")
    $System = GUICtrlCreateGroup("System", 24, 32, 465, 209)
    GUICtrlSetFont(-1, 15, 800, 0, "Calibri")
    $OS_prim = GUICtrlCreateLabel("Betriebssystem:", 32, 64, 111, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $OS_label = GUICtrlCreateLabel($System[1], 200, 64, 252, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SP_prim = GUICtrlCreateLabel("Servicepack:", 32, 112, 89, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $SP_label = GUICtrlCreateLabel($System[3], 200, 112, 252, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $install_prim = GUICtrlCreateLabel("Installationsdatum:", 32, 208, 136, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $install_label = GUICtrlCreateLabel($System[4], 200, 208, 250, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $PCname_prim = GUICtrlCreateLabel("Computername:", 32, 136, 114, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $PCname_label = GUICtrlCreateLabel($System[6], 200, 136, 253, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $User_prim = GUICtrlCreateLabel("Benutzer:", 32, 160, 69, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $User_label = GUICtrlCreateLabel($System[5], 200, 160, 251, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $admin_prim = GUICtrlCreateLabel("administrative Rechte:", 32, 184, 158, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $admin_label = GUICtrlCreateLabel($System[7], 200, 184, 256, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $arch_prim = GUICtrlCreateLabel("Systemarchitektur:", 32, 88, 134, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $arch_label = GUICtrlCreateLabel($System[2], 200, 88, 249, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Hardware = GUICtrlCreateGroup("Hardware", 24, 256, 465, 457)
    GUICtrlSetFont(-1, 16, 800, 0, "Calibri")
    $CPU = GUICtrlCreateGroup("CPU", 40, 280, 433, 161)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $CPU_typ_prim = GUICtrlCreateLabel("Modell:", 48, 312, 56, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_curclock_prim = GUICtrlCreateLabel("akt. Taktung:", 48, 336, 94, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_maxclock_prim = GUICtrlCreateLabel("max. Taktung:", 48, 360, 100, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_cores = GUICtrlCreateLabel("phys. Kerne:", 48, 384, 88, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_coreSUM = GUICtrlCreateLabel("Kerne ges.:", 48, 408, 78, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_typ_label = GUICtrlCreateLabel($Hardware[1], 200, 312, 259, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_curclock_label = GUICtrlCreateLabel($Hardware[3], 200, 334, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_maxclock_label = GUICtrlCreateLabel($Hardware[2], 200, 360, 267, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_cores_label = GUICtrlCreateLabel($Hardware[4], 200, 384, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_coreSUM_label = GUICtrlCreateLabel($Hardware[5], 200, 408, 265, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Grafik = GUICtrlCreateGroup("Grafik", 40, 448, 433, 113)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $GPU_card_prim = GUICtrlCreateLabel("Karte:", 48, 480, 45, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_RAM_prim = GUICtrlCreateLabel("Speicher:", 48, 504, 67, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_DriverDate_prim = GUICtrlCreateLabel("Treiberdatum:", 48, 528, 102, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_card_label = GUICtrlCreateLabel($Hardware[8], 200, 480, 260, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $GPU_RAM_label = GUICtrlCreateLabel($Hardware[9], 200, 504, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $GPU_DriverDate_label = GUICtrlCreateLabel($Hardware[10], 200, 528, 262, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $misc = GUICtrlCreateGroup("sonstiges", 40, 568, 433, 137)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $MB_oem_prim = GUICtrlCreateLabel("Mainboard OEM:", 48, 600, 121, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $MB_model_prim = GUICtrlCreateLabel("Mainboard Modell:", 48, 624, 136, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $RAM_amount_prim = GUICtrlCreateLabel("Arbeitsspeicher:", 48, 648, 114, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $RAM_count_prim = GUICtrlCreateLabel("Anzahl Module:", 48, 672, 111, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $MB_OEM_label = GUICtrlCreateLabel($Hardware[11], 200, 600, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $MB_model_label = GUICtrlCreateLabel($Hardware[2], 200, 624, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $RAM_amount_label = GUICtrlCreateLabel($Hardware[6], 200, 648, 260, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $RAM_count_label = GUICtrlCreateLabel($Hardware[7], 200, 672, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $SysInfo_Main = GUICtrlCreateLabel("LoL - Get it fixed! Systemübersicht", 113, 8, 301, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    $SysInfo_L_Export = GUICtrlCreateLabel("Alle wichtigen Daten können auch exportiert werden um diese z.B. in", 32, 720, 450, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SysInfo_L_Export2 = GUICtrlCreateLabel("einem Forum zu posten. Dafür einfach folgenden Button anklicken.", 40, 744, 435, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SysInfo_B_ExportText = GUICtrlCreateButton("In Textdatei exportieren", 170, 800, 187, 33, 0)
    GUICtrlSetOnEvent(-1, "SysInfoExport")
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $SysInfo_Export = GUICtrlCreateProgress(171, 787, 185, 9, $PBS_SMOOTH)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlSetLimit(-1, 20, 0)
    $SysInfo_BarL_status = GUICtrlCreateLabel("Exportiere Daten . ", 176, 768, 180, 19, $SS_CENTER)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    EndFunc ; => SysInfo

    [/autoit]


    Gesamtes Script

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=files\symbol.ico
    #AutoIt3Wrapper_Compression=4
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    League of Legends - Get it fixed!
    Author: Matricus
    Version: 1.00

    [/autoit] [autoit][/autoit] [autoit]

    Program Function:
    Solve multiple issues with the League of Legends client.
    Provides a graphical user interface.
    Also provide some nice features to ''scan your PC'' for requirements
    or check the connection to the LoL-Servers.

    [/autoit] [autoit][/autoit] [autoit]

    Copyright by Aye Carumba Entertainment Studios

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>
    #include <Array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $LoL_EUandUS, $FixIt_Main, $workdir
    ; _____________________________________________________________________________________________________________
    ; ### Launcher Beginn###
    ; # Launcher: Installation der Schriftart Calibri #
    FileInstall(".\files\calibri.ttf", @WindowsDir & "\fonts\calibri.ttf")
    FileInstall(".\files\calibrib.ttf", @WindowsDir & "\fonts\calibrib.ttf")
    FileInstall(".\files\calibriz.ttf", @WindowsDir & "\fonts\calibriz.ttf")
    FileInstall(".\files\calibrii.ttf", @WindowsDir & "\fonts\calibrii.ttf")
    sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    FileDelete(@TempDir & "\upcoming.bat")
    FileDelete(@TempDir & "\upcoming_DE.txt")
    FileDelete(@TempDir & "\launcherfix.vbs")
    FileDelete(@TempDir & "\launcherfix.bat")
    FileDelete(@TempDir & "\winmtr.exe")
    FileDelete(@TempDir & "\trace.bat")
    FileDelete(@TempDir & "\changelog.bat")
    FileDelete(@TempDir & "\changelog_DE.txt")

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: GUI Beginn #
    Global $LoLFixit_Launcher = GUICreate("LoL- Get it fixed! Launcher", 345, 136, 496, 308)
    GUISetFont(10, 400, 0, "Microsoft Sans Serif")
    $L_wait = GUICtrlCreateLabel("Bitte einen Moment Geduld.", 16, 16, 167, 20)
    $L_primary = GUICtrlCreateLabel("Das Fixing-Tool für League of Legends wird gestartet.", 16, 40, 320, 20)
    $Bar_status = GUICtrlCreateProgress(16, 104, 313, 14)
    GUICtrlSetColor(-1, 0x008000)
    GUICtrlSetBkColor(-1, 0xFFFBF0)
    GUICtrlSetTip(-1, "status")
    ;Global $B_exit = GUICtrlCreateButton("Abbrechen", 280, 98, 83, 25, 0)
    $Bar_label = GUICtrlCreateLabel("Status", 18, 80, 310, 19)
    GUICtrlSetFont(-1, 9, 800, 0, "Microsoft Sans Serif")
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    GUISetState(@SW_SHOW)
    _GetInfos()
    GUIDelete($LoLFixit_Launcher)
    While 1
    Sleep(1000)
    WEnd
    ; # Launcher: GUI Ende #

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetInfos()
    ; # Launcher: Start #
    GUICtrlSetData($Bar_status, 1)
    GUICtrlSetData($Bar_label, "Starte Informationssammlung")
    Sleep(1000)
    Global $Hardware[13], $System[11], $GameData[9]
    Global $Dump, $Dump2
    #cs
    Global $DirEU, $DirUS, $Dir, $Dir2, $DirFault, $rescdir ; => für LoL Verzeichnisse
    Global $inetcfg ; => Internet Explorer registry value
    Global $OS, $OS1, $OSarch, $OSinstall, $OSinstalltemp, $SP, $User, $PCName, $IP1, $IP2, $admin ; => allgemeine Systemdaten
    Global $temp, $name, $objItem ; => sonstiges
    Global $S_CPUName, $S_CPUmax, $S_CPUatm, $S_CPUcores, $S_CPUcoreSUM, $S_RAM, $S_RAMcount, $S_DispRAM, $S_DispTyp, $S_DispDriver, $S_DispDrivertemp, $S_MBoem, $S_MBmodel ; => Hardware Daten
    #ce
    GUICtrlSetData($Bar_status, 8)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: read registry values #
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [LoL US]")
    Sleep(750)
    $Dump = StringSplit(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{868EC22E-7E82-4760-9265-3F2E705BF24B}", "InstallLocation"), "\")
    $i = 2
    $GameData[2] = $Dump[1]
    While $i < $Dump[0]
    $GameData[2] = $GameData[2] & "\" & $Dump[$i]
    GUICtrlSetData($Bar_status, $i + 10)
    $i = $i + 1
    WEnd
    Global $Dump = ""
    Global $Dump[20]
    GUICtrlSetData($Bar_status, 21)
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [LoL EU]")
    Sleep(750)
    $Dump = StringSplit(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\leagueoflegends\leagueoflegends", "UninstallPath"), "\")
    $i = 2
    $GameData[1] = $Dump[1]
    While $i < $Dump[0]
    $GameData[1] = $GameData[1] & "\" & $Dump[$i]
    GUICtrlSetData($Bar_status, $i + 30)
    $i = $i + 1
    WEnd
    GUICtrlSetData($Bar_status, $i + 40)
    GUICtrlSetData($Bar_label, "Lese Daten aus Registrierung [Internet Explorer]")
    Sleep(750)
    $System[10] = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Internet Settings", "GlobalUserOffline")
    GUICtrlSetData($Bar_status, $i + 43)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: read environment data #
    GUICtrlSetData($Bar_status, $i + 46)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Betriebssystem]")
    Sleep(350)
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $System[2] = @OSArch
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Dump = StringSplit($objItem.InstallDate, "")
    $Dump2 = StringSplit($objItem.Name, "|")
    Next
    EndIf
    $System[1] = $Dump2[1]
    $System[4] = $Dump[7] & $Dump[8] & "." & $Dump[5] & $Dump[6] & "." & $Dump[1] & $Dump[2] & $Dump[3] & $Dump[4]
    GUICtrlSetData($Bar_status, $i + 49)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Update Status]")
    Sleep(350)
    $System[3] = @OSServicePack
    GUICtrlSetData($Bar_status, $i + 52)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [PC-Name & Nutzer]")
    Sleep(350)
    $System[6] = @ComputerName
    $System[5] = @UserName
    GUICtrlSetData($Bar_status, $i + 56)
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Netzwerk Status]")
    Sleep(350)
    $System[8] = @IPAddress1
    $System[9] = @IPAddress2
    GUICtrlSetData($Bar_status, $i + 60)

    [/autoit] [autoit][/autoit] [autoit]

    if IsAdmin() Then
    $System[7] = "Ja"
    Else
    $System[7] = "Nein"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: WMI queries to get hardware data #
    GUICtrlSetData($Bar_label, "Lese Systemdaten [Hardware]")
    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    GUICtrlSetData($Bar_status, $i + 62)

    [/autoit] [autoit][/autoit] [autoit]

    ; RAM
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMemoryArray", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 64)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[6] = $objItem.MaxCapacity / 1024 / 1024 & " GB"
    $Hardware[7] = $objItem.MemoryDevices
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; CPU
    GUICtrlSetData($Bar_status, $i + 66)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 68)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[3] = $objItem.CurrentClockSpeed & " MHz"
    $Hardware[2] = $objItem.MaxClockSpeed & " MHz"
    $Hardware[1] = $objItem.Name
    $Hardware[4] = $objItem.NumberOfCores
    $Hardware[5] = $objItem.NumberOfLogicalProcessors
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Grafik
    GUICtrlSetData($Bar_status, $i + 70)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_VideoController", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 72)
    If IsObj($colItems) then
    For $objItem In $colItems
    $strAcceleratorCapabilities = $objItem.AcceleratorCapabilities(0)
    $Hardware[9] = $objItem.AdapterRAM / 1024 / 1024 & " MB"
    $Hardware[8] = $objItem.Caption
    $Dump = StringSplit($objItem.DriverDate, "")
    Next
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    $Hardware[10] = $Dump[5] & $Dump[6] & "." & $Dump[7] & $Dump[8] & "." & $Dump[1] & $Dump[2] & $Dump[3] & $Dump[4]

    [/autoit] [autoit][/autoit] [autoit]

    ; Mainboard
    GUICtrlSetData($Bar_status, $i + 74)
    $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    GUICtrlSetData($Bar_status, $i + 76)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Hardware[11] = $objItem.Manufacturer
    $Hardware[12] = $objItem.Model
    Next
    EndIf
    GUICtrlSetData($Bar_status, $i + 80)

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($Hardware)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: setting variables #
    GUICtrlSetData($Bar_label, "Initialisiere Daten")
    GUICtrlSetData($Bar_status, 82)
    $GameData[7] = "lol.launcher.exe"
    Sleep(100)
    GUICtrlSetData($Bar_status, 84)
    $GameData[6] = 0
    Sleep(100)
    GUICtrlSetData($Bar_status, 86)
    $GameData[4] = @TempDir
    Sleep(100)
    GUICtrlSetData($Bar_status, 88)
    Sleep(100)
    GUICtrlSetData($Bar_status, 90)
    GUICtrlSetData($Bar_label, "Lade Oberfläche")
    Global $Main_B_upcoming, $Laun_B_close, $Laun_B_play, $Laun_B_error, $Shop_B_blank, $Conn_B_analyse, $Info_B_notes, $Win_close, $run_lol
    Global $B_EU, $B_US
    Sleep(100)
    GUICtrlSetData($Bar_status, 92)
    Global $OS_label, $SP_label, $install_label, $PCname_label, $User_label, $admin_label, $arch_label ; => SysInfo: Allgemein
    GUICtrlSetData($Bar_status, 94)
    Global $CPU_typ_label, $CPU_curclock_label, $CPU_maxclock_label, $CPU_cores_label, $CPU_coreSUM_label ; => SysInfo: CPU
    Global $GPU_card_label, $GPU_RAM_label, $GPU_DriverDate_label ; => SysInfo: Grafik
    GUICtrlSetData($Bar_status, 96)
    Global $MB_OEM_label, $MB_model_label, $RAM_amount_label, $RAM_count_label, $SysInfo_B_ExportText, $SysInfo, $SysInfo_Export, $ExportDir, $SysInfo_BarL_status, $File ; => SysInfo: sonstiges
    GUICtrlSetData($Bar_status, 98)
    GUICtrlSetData($Bar_label, "Starte Programm")
    Sleep(500)
    GUICtrlSetData($Bar_status, 100)

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(64, "Test Box for variables", $OS & @CRLF & $OSinstall)

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: verify LoL data #
    If $System[3] = "" Then
    $System[3] = "kein Servicepack installiert"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Hardware[11] = "System manufacturer" Then
    $Hardware[11] = "Information nicht verfügbar"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Hardware[12] = "System Product Name" Then
    $Hardware[12] = "Information nicht verfügbar"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $GameData[1] = "" And $GameData[2] = "" Then
    MsgBox(48, "LoL - Get it fixed!", "Es konnte keine LoL - Installation gefunden werden." & @CRLF & "Nachfolgend bitte den Installationsordner wählen.", 5)
    $GameData[3] = FileSelectFolder("Das Installationsverzeichnis konnte nicht automatisch erkannt werden." & @CRLF & "Bitte wähle dein LoL Installationsverzeichnis", "", 2, "C:\programme\")
    $GameData[8] = $GameData[3]
    main()
    ElseIf $GameData[1] <> "" And $GameData[2] <> "" Then
    launcher_EUandUS()
    EndIf
    EndFunc ;==>_GetInfos

    [/autoit] [autoit][/autoit] [autoit]

    ;*****************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    ; ### Launcher Ende ###
    ; _______________________________________________________________________________________________________________
    ; _______________________________________________________________________________________________________________
    ; ### Functions Beginn ###

    [/autoit] [autoit][/autoit] [autoit]

    ; # Launcher: EU oder US (wenn beide gefunden) #
    Func launcher_EUandUS()
    Global $LoL_EUandUS = GUICreate("LoL - Get it fixed! Both", 423, 130, 484, 456)
    $L_primary = GUICtrlCreateLabel("Es wurde festgestellt das der EU und der US Client installiert ist.", 14, 16, 377, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Microsoft Sans Serif")
    $L_sub = GUICtrlCreateLabel("Bitte Client auswählen für den das Programm Fehler beheben soll.", 8, 40, 393, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Microsoft Sans Serif")
    Local $B_EU = GUICtrlCreateButton("EU-Client", 72, 72, 107, 41, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Microsoft Sans Serif")
    Local $B_US = GUICtrlCreateButton("US-Client", 232, 72, 107, 41, 0)
    GUICtrlSetFont(-1, 12, 800, 0, "Microsoft Sans Serif")
    GUISetState(@SW_SHOW, $LoL_EUandUS)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    GUICtrlSetOnEvent($B_EU, "Button_EU")
    GUICtrlSetOnEvent($B_US, "Button_US")
    EndFunc ;==>launcher_EUandUS

    [/autoit] [autoit][/autoit] [autoit]

    ; # misc: geplante Änderungen #
    Func upcoming()
    FileInstall(".\files\upcoming.bat", @TempDir & "\upcoming.bat")
    FileInstall(".\files\upcoming_DE.txt", @TempDir & "\upcoming_DE.txt")
    sleep(500)
    run(@TempDir & "\upcoming.bat","", @SW_HIDE)
    EndFunc ; => main_upcoming

    [/autoit] [autoit][/autoit] [autoit]

    ; # Fix: Schließen des Patchers nach Start #
    Func Launcher_closing()
    ;$workdir = $rescdir
    $GameData[0] = MsgBox(4, "Patcher Fix", "Es werden einige (temporäre) Dateien auf dem System gelöscht" & @CRLF & @CRLF & "Fortfahren?")
    if $GameData[0] = 6 Then
    if ProcessExists("lol.launcher.exe") OR ProcessExists("launcher.exe") OR ProcessExists("league of legends.exe") Then
    MsgBox(48, "Patcher Fix", "Mindestens 1 Prozess von League of Legends ist noch aktiv." & @CRLF & "Um das Problem beheben zu können müssen alle LoL-Prozesse geschlossen sein." & @CRLF & @CRLF & "In 5 Sekunden werden sie automatisch geschlossen", 6)
    ProcessClose("lol.launcher.exe")
    ProcessClose("launcher.exe")
    ProcessClose("league of legends.exe")
    EndIf
    FileInstall(".\files\LauncherFix.vbs", @TempDir & "\launcherfix.vbs")
    FileInstall(".\files\launcherfix.bat", @TempDir & "\launcherfix.bat")
    sleep(1000)
    if FileExists(@TempDir & "\launcherfix.vbs") AND FileExists(@TempDir & "\launcherfix.bat") Then
    run(@TempDir & "\launcherfix.bat","", @SW_HIDE)
    Else
    MsgBox(32, "Patcher Fix", "Es ist ein Fehler bei der Ausführung aufgetreten. Starte neuen Versuch", 5)
    FileInstall(".\files\LauncherFix.vbs", @TempDir & "\launcherfix.vbs")
    FileInstall(".\files\launcherfix.bat", @TempDir & "\launcherfix.bat")
    sleep(1000)
    if FileExists(@TempDir & "\launcherfix.vbs") AND FileExists(@TempDir & "\launcherfix.bat") Then
    run(@TempDir & "\launcherfix.bat","", @SW_HIDE)
    Else
    MsgBox(16, "Patcher Fix", "Konnte Skript aufgrund eines Fehlers nicht ausführen." & @CRLF & "Bitte diesen Fehler im Forum berichten mit den Systemdaten - Danke!" & @CRLF & @CRLF & "Fehlercode: 2" & @CRLF & "Beschreibung: can not execute launcherfix.vbs")
    EndIf
    EndIf
    MsgBox(64, "Patcher Fix", "Die temporären Dateien von LoL konnten erfolgreich gelöscht werden")
    if $GameData[6] = 1 Then
    MsgBox(64, "Run LoL", "Ich würde in v1.0 nun das starten: " & $workdir & "\" & $launcher)
    EndIf
    EndIf
    EndFunc ; Launcher_closing

    [/autoit] [autoit][/autoit] [autoit]

    ; # Fix: Play-Button nicht aktiv nach Patch #
    Func Launcher_play()
    ;$workdir = $rescdir
    $GameData[0] = MsgBox(4, "Spiel-Button Fix", "Es werden die Einstellungen des Internet Explorers zurückgesetzt." & @CRLF & @CRLF & "Fortfahren?")
    if $GameData[0] = 6 Then
    if ProcessExists("iexplore.exe") Then
    MsgBox(64, "Spiel-Button Fix", "Der Internet Explorer ist noch aktiv. Für diesen Fix muss er geschlossen sein." & @CRLF & "Er wird automatisch geschlossen...", 3)
    ProcessClose("iexplore.exe")
    EndIf
    run("control inetcpl.cpl,,6")
    BlockInput(1)
    WinWaitActive("Eigenschaften von Internet", "Internet Explorer-Einstellungen zurücksetzen")
    sleep(500)
    send("!z")
    WinWaitActive("Internet Explorer-Einstellungen zurücksetzen", "Möchten Sie wirklich alle Internet Explorer-Einstellungen zurücksetzen?")
    sleep(300)
    send("!p")
    sleep(300)
    send("!z")
    sleep(1000)
    WinWaitActive("Internet Explorer-Einstellungen zurücksetzen", "Internet Explorer-Einstellungen werden zurückgesetzt")
    sleep(5000)
    send("!s")
    if WinActive("Internet Explorer-Einstellungen zurücksetzen", "Internet Explorer-Einstellungen werden zurückgesetzt") Then
    sleep(5000)
    send("!s")
    EndIf
    BlockInput(0)
    MsgBox(64, "IE Zurücksetzung", "Die Einstellungen konnten erfolgreich zurückgesetzt werden.")
    sleep(1000)
    if $GameData[6] = 1 Then
    MsgBox(64, "variablen", "Ich würde in v1.0 nun das starten: " & $GameData[3] & "\" & $GameData[7])
    EndIf
    EndIf
    EndFunc ; Launcher_play

    [/autoit] [autoit][/autoit] [autoit]

    ; # Fix: Fehler im Startprogramm #
    Func Launcher_error()
    MsgBox(64, "launcher error", "This feature will come soon!")
    MsgBox(64, "launcher error", "It will do following: " & @CRLF & @CRLF & "- check the install path of LoL" & @CRLF & ">> prompt an information to reinstall the game" & @CRLF & "- install latest Adobe AIR" & @CRLF & "- install .NET Framework 3.5")
    EndFunc ; Launcher_error

    [/autoit] [autoit][/autoit] [autoit]

    ; # Fix: weiße/schwarze Seite im Shop #
    Func Shop_blank()
    MsgBox(64, "shop blank", "Dieser Fix ist noch nicht implementiert.")
    MsgBox(64, "shop blank", "It will do following: " & @CRLF & @CRLF & "- reset the configuration of Internet Explorer" & @CRLF & "- set https://shop.lol-europe.com as trusted site (to accept scripts)")
    EndFunc ; shop_blank

    [/autoit] [autoit][/autoit] [autoit]

    ; # helper: Verbindungsanalyse #
    Func Connection_trace()
    $GameData[0] = MsgBox(4, "Verbindungs Analyse", "Es wird das Programm WinMTR gestartet" & @CRLF & @CRLF & "Fortfahren?")
    ; => Überprüfung ob Firefox oder Internet Explorer laufen
    if $GameData[0] = 6 Then
    if ProcessExists("iexplore.exe") Then
    $GameData[0] = MsgBox(4, "Verbindungs Analyse", "Der Internet Explorer ist noch aktiv." & @CRLF & "Er kann das Ergebnis verfälschen, z.B. wenn Dateien heruntergeladen werden." & @CRLF & "Soll er geschlossen werden?", 7)
    If $GameData[0] = 6 Then
    ProcessClose("iexplore.exe")
    EndIf
    EndIf
    if ProcessExists("firefox.exe") Then
    $GameData[0] = MsgBox(4, "Verbindungs Analyse", "Der Firefox-Browser ist noch aktiv." & @CRLF & "Er kann das Ergebnis verfälschen, z.B. wenn Dateien heruntergeladen werden." & @CRLF & "Soll er geschlossen werden?", 7)
    If $GameData[0] = 6 Then
    ProcessClose("firefox.exe")
    EndIf
    EndIf
    ; => entpacken von WinMTR
    FileInstall(".\files\winmtr.exe", @TempDir & "\winmtr.exe")
    ; => start von WinMTR inkl. automatische Konfiguration und trace-Beginn
    sleep(500)
    run(@TempDir & "\winmtr.exe")
    WinWaitActive("WinMTR - 0.8")
    BlockInput(1)
    send("lol-europe.com")
    sleep(1000)
    send("!O")
    WinWaitActive("Options", "- WinMTR - 0.8 -")
    send("{del}")
    send("{del}")
    send("{del}")
    send("2.0")
    send("!O")
    sleep(500)
    BlockInput(0)
    ; => Hinweis auf Auswertungs-Helfer <> Angebot den Trace nach 5 Minuten zu stoppen, ein Log zu erzeugen und den "Helfer" zu starten.
    $answer = MsgBox(4, "Verbindungsanalyse", "Um ein genaueres Bild zu bekommen, sollte der Test mindestens 5 Minuten laufen." & @CRLF & "Soll der Test automatisch nach 5 Minuten angehalten werden?" & @CRLF & @CRLF & "Hinweis: Die Auswertung wird nur nach automatischen Abbruch unterstützt.")
    if $answer = 6 Then
    WinActivate("WinMTR - 0.8","")
    send("!S")
    sleep(500)
    MsgBox(64, "Verbindungsanalyse", "Für die Dauer der Analyse kann das Programm keine anderen Aktionen ausführen." & @CRLF & "Das Hauptfenster wird daher ausgeblendet und nach den 5 Minuten wieder eingeblendet.")
    GUISetState(@SW_HIDE, $FixIt_Main)
    WinSetOnTop("WinMTR - 0.8","",0)
    ;$savepath = "C:\Verbindungsanalyse.txt"
    sleep(300000)
    BlockInput(1)
    WinActivate("WinMTR - 0.8")
    send("!S")
    sleep(2000)
    send("!T")
    sleep(500)
    send($GameData[4] & "\Verbindungsanalyse.txt")
    sleep(500)
    send("!S")
    sleep(500)
    GUISetState(@SW_SHOW, $FixIt_Main)
    if WinActive("Speichern unter bestätigen") Then ; => sollte bereits eine Log-Datei vorhanden sein hier die Bestätigung zum Überschreiben
    send("!J")
    EndIf
    WinClose("WinMTR - 0.8")
    BlockInput(0)
    MsgBox(64, "Verbindungsanalyse", "Ablaufverfolgung beendet. Öffne Log...", 5)
    FileInstall(".\files\trace.bat", @TempDir & "\trace.bat")
    sleep(500)
    run( @TempDir & "\trace.bat","", @SW_HIDE)
    MsgBox(64, "Verbindungsanalyse", "Speicherort des Logs: %temp%\verbindungsanalyse.txt" & @CRLF & "Starte Auswertungs-Helfer", 5)
    sleep(500)
    Connection_trace_result()
    Else
    WinActivate("WinMTR - 0.8","")
    send("!S")
    EndIf
    EndIf
    endfunc ; connection_trace

    [/autoit] [autoit][/autoit] [autoit]

    ; # helper: Auswertung der Verbindungsanalyse #
    Func Connection_trace_result()
    MsgBox(64, "Auswertungs-Helfer", "Diese Funktion ist noch nicht implementiert." & @CRLF & "Bis dahin kannst du deine Ergebnisse jedoch im Forum veröffentlichen.")
    EndFunc ; => Connection_trace_result

    [/autoit] [autoit][/autoit] [autoit]

    ; # misc: Aktualisierungsnotizen #
    func Info_notes()
    FileInstall(".\files\changelog.bat", @TempDir & "\changelog.bat")
    FileInstall(".\files\changelog_DE.txt", @TempDir & "\changelog_DE.txt")
    sleep(500)
    run(@TempDir & "\changelog.bat","", @SW_HIDE)
    EndFunc ; Info_notes

    [/autoit] [autoit][/autoit] [autoit]

    ; # misc: Systeminformationen #
    Func SysInfo()
    _ArrayDisplay($System)
    $SysInfo = GUICreate("Get it fixed! - System Überblick", 511, 838, 616, 96)
    GUISetFont(10, 800, 0, "Calibri")
    $System = GUICtrlCreateGroup("System", 24, 32, 465, 209)
    GUICtrlSetFont(-1, 15, 800, 0, "Calibri")
    $OS_prim = GUICtrlCreateLabel("Betriebssystem:", 32, 64, 111, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $OS_label = GUICtrlCreateLabel($System[1], 200, 64, 252, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SP_prim = GUICtrlCreateLabel("Servicepack:", 32, 112, 89, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $SP_label = GUICtrlCreateLabel($System[3], 200, 112, 252, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $install_prim = GUICtrlCreateLabel("Installationsdatum:", 32, 208, 136, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $install_label = GUICtrlCreateLabel($System[4], 200, 208, 250, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $PCname_prim = GUICtrlCreateLabel("Computername:", 32, 136, 114, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $PCname_label = GUICtrlCreateLabel($System[6], 200, 136, 253, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $User_prim = GUICtrlCreateLabel("Benutzer:", 32, 160, 69, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $User_label = GUICtrlCreateLabel($System[5], 200, 160, 251, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $admin_prim = GUICtrlCreateLabel("administrative Rechte:", 32, 184, 158, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $admin_label = GUICtrlCreateLabel($System[7], 200, 184, 256, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $arch_prim = GUICtrlCreateLabel("Systemarchitektur:", 32, 88, 134, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $arch_label = GUICtrlCreateLabel($System[2], 200, 88, 249, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Hardware = GUICtrlCreateGroup("Hardware", 24, 256, 465, 457)
    GUICtrlSetFont(-1, 16, 800, 0, "Calibri")
    $CPU = GUICtrlCreateGroup("CPU", 40, 280, 433, 161)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $CPU_typ_prim = GUICtrlCreateLabel("Modell:", 48, 312, 56, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_curclock_prim = GUICtrlCreateLabel("akt. Taktung:", 48, 336, 94, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_maxclock_prim = GUICtrlCreateLabel("max. Taktung:", 48, 360, 100, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_cores = GUICtrlCreateLabel("phys. Kerne:", 48, 384, 88, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_coreSUM = GUICtrlCreateLabel("Kerne ges.:", 48, 408, 78, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $CPU_typ_label = GUICtrlCreateLabel($Hardware[1], 200, 312, 259, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_curclock_label = GUICtrlCreateLabel($Hardware[3], 200, 334, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_maxclock_label = GUICtrlCreateLabel($Hardware[2], 200, 360, 267, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_cores_label = GUICtrlCreateLabel($Hardware[4], 200, 384, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $CPU_coreSUM_label = GUICtrlCreateLabel($Hardware[5], 200, 408, 265, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Grafik = GUICtrlCreateGroup("Grafik", 40, 448, 433, 113)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $GPU_card_prim = GUICtrlCreateLabel("Karte:", 48, 480, 45, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_RAM_prim = GUICtrlCreateLabel("Speicher:", 48, 504, 67, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_DriverDate_prim = GUICtrlCreateLabel("Treiberdatum:", 48, 528, 102, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $GPU_card_label = GUICtrlCreateLabel($Hardware[8], 200, 480, 260, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $GPU_RAM_label = GUICtrlCreateLabel($Hardware[9], 200, 504, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $GPU_DriverDate_label = GUICtrlCreateLabel($Hardware[10], 200, 528, 262, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $misc = GUICtrlCreateGroup("sonstiges", 40, 568, 433, 137)
    GUICtrlSetFont(-1, 14, 800, 0, "Calibri")
    $MB_oem_prim = GUICtrlCreateLabel("Mainboard OEM:", 48, 600, 121, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $MB_model_prim = GUICtrlCreateLabel("Mainboard Modell:", 48, 624, 136, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $RAM_amount_prim = GUICtrlCreateLabel("Arbeitsspeicher:", 48, 648, 114, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $RAM_count_prim = GUICtrlCreateLabel("Anzahl Module:", 48, 672, 111, 23)
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $MB_OEM_label = GUICtrlCreateLabel($Hardware[11], 200, 600, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $MB_model_label = GUICtrlCreateLabel($Hardware[2], 200, 624, 258, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $RAM_amount_label = GUICtrlCreateLabel($Hardware[6], 200, 648, 260, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $RAM_count_label = GUICtrlCreateLabel($Hardware[7], 200, 672, 263, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $SysInfo_Main = GUICtrlCreateLabel("LoL - Get it fixed! Systemübersicht", 113, 8, 301, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    $SysInfo_L_Export = GUICtrlCreateLabel("Alle wichtigen Daten können auch exportiert werden um diese z.B. in", 32, 720, 450, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SysInfo_L_Export2 = GUICtrlCreateLabel("einem Forum zu posten. Dafür einfach folgenden Button anklicken.", 40, 744, 435, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
    $SysInfo_B_ExportText = GUICtrlCreateButton("In Textdatei exportieren", 170, 800, 187, 33, 0)
    GUICtrlSetOnEvent(-1, "SysInfoExport")
    GUICtrlSetFont(-1, 12, 800, 0, "Calibri")
    $SysInfo_Export = GUICtrlCreateProgress(171, 787, 185, 9, $PBS_SMOOTH)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUICtrlSetLimit(-1, 20, 0)
    $SysInfo_BarL_status = GUICtrlCreateLabel("Exportiere Daten . ", 176, 768, 180, 19, $SS_CENTER)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    EndFunc ; => SysInfo

    [/autoit] [autoit][/autoit] [autoit]

    Func SysExport()
    $GameData[0] = FileSelectFolder("Bitte das Zielverzeichnis für den Export auswählen.", "", 2, @MyDocumentsDir)
    GUICtrlSetState($SysInfo_Export, $GUI_SHOW)
    _FileCreate($GameData[0] & "\SystemInformationen.txt")
    GUICtrlSetState($SysInfo_BarL_status, $GUI_SHOW)
    GUICtrlSetData($SysInfo_Export, 10)
    $Dump = FileOpen($GameData[0] & "\SystemInformationen.txt", 2)
    GUICtrlSetData($SysInfo_Export, 20)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . .")
    FileWrite($Dump, "League of Legends - Get it fixed! Tool" & @CRLF & "Systeminformationen" & @CRLF)
    GUICtrlSetData($SysInfo_Export, 30)
    FileWrite($Dump, "______________________________________" & @CRLF & @CRLF)
    GUICtrlSetData($SysInfo_Export, 40)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . . .")
    FileWrite($Dump, "Betriebssystem: " & $System[1] & " - " & $System[2] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 50)
    FileWrite($Dump, "Servicepack: " & $System[3] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 60)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . ")
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "CPU Modell: " & $Hardware[1] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 70)
    FileWrite($Dump, "CPU Taktung: " & $Hardware[4] & "x" & $Hardware[2] & " (aktuell: " & $Hardware[3] & ")" & @CRLF)
    GUICtrlSetData($SysInfo_Export, 75)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . .")
    ;FileWrite($File, "CPU Kerne: " & $S_CPUcoreSUM & @CRLF)
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "Grafikkarte: " & $Hardware[8] & @CRLF)
    FileWrite($Dump, "Grafikspeicher: " & $Hardware[9] & @CRLF)
    FileWrite($Dump, "Treiberdatum: " & $Hardware[10] & @CRLF)
    GUICtrlSetData($SysInfo_Export, 80)
    ;FileWrite($File, "###############################" & @CRLF)
    FileWrite($Dump, "Mainboard: " & $Hardware[12] & " (OEM: " & $Hardware[11] & ")" & @CRLF)
    FileWrite($Dump, "Arbeitsspeicher: " & $Hardware[6] & " (" & $Hardware[7] & " Modul(e))" &@CRLF)
    GUICtrlSetData($SysInfo_Export, 90)
    GUICtrlSetData($SysInfo_BarL_status, "Exportiere Daten . . .")
    Sleep(500)
    FileClose($Dump)
    Sleep(500)
    _FileCreate(@TempDir & "\SystemInformationen.bat")
    GUICtrlSetData($SysInfo_Export, 100)
    $Dump = FileOpen(@TempDir & "\SystemInformationen.bat", 2)
    sleep(100)
    FileWrite($Dump, "start " & $GameData[0] & "\Systeminformationen.txt")
    GUICtrlSetData($SysInfo_BarL_status, "Fertig! Öffne Exportdatei")
    FileClose($Dump)
    Run(@TempDir & "\SystemInformationen.bat")
    GUICtrlSetData($SysInfo_BarL_status, "Datei geöffnet!")
    GUICtrlSetState($SysInfo_Export, $GUI_HIDE)
    Sleep(3000)
    GUICtrlSetState($SysInfo_BarL_status, $GUI_HIDE)
    EndFunc
    ; ### Functions Ende ###
    ; _______________________________________________________________________________________________________
    ; _______________________________________________________________________________________________________

    [/autoit] [autoit][/autoit] [autoit]

    ; ### Beginn Haupt-Interface ###

    [/autoit] [autoit][/autoit] [autoit]

    Func Main()
    If WinExists("LoL - Get it fixed! Both") Then
    GUIDelete($LoL_EUandUS)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; => Plausibilitätsprüfung ob $workdir mit Daten gefüllt ist, ggf. setzen der Variable mit EU/US-Pfad
    If $GameData[3] = "" Then
    If $GameData[1] <> "" Then
    $GameData[3] = $GameData[1]
    ElseIf $GameData[2] <> "" Then
    $GameData[3] = $GameData[2]
    EndIf
    EndIf
    If $GameData[8] = "" Then
    $GameData[8] = $GameData[3]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; => Zuweisung der korrekten Betriebssystemarchitektur-strings anhand der Daten
    If $System[2] = "X86" Then
    $System[2] = "32 bit"
    ElseIf $System[2] = "X64" Then
    $System[2] = "64 bit"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; # GUI Start #
    $FixIt_Main = GUICreate("LoL - Get it fixed!", 433, 355, 646, 248)
    GUISetIcon("D:\005.ico")
    GUISetFont(11, 400, 0, "Calibri")
    $Fix_TabCon = GUICtrlCreateTab(8, 8, 420, 312)
    GUICtrlSetFont(-1, 10, 800, 0, "Calibri")
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)

    [/autoit] [autoit][/autoit] [autoit]

    ; => Tab: Willkommen
    $T_welcome = GUICtrlCreateTabItem("Willkommen")
    $Welcome_Headline = GUICtrlCreateLabel("Willkommen!", 56, 49, 122, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    GUICtrlSetColor(-1, 0x008000)
    $Welcome_L_intro1 = GUICtrlCreateLabel("Dieses Programm wird dich bei der Fehlerbehebung für", 56, 97, 346, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_L_intro2 = GUICtrlCreateLabel("League of Legends unterstützen.", 56, 121, 205, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_L_intro3 = GUICtrlCreateLabel("Dafür einfach oben eine der Kategorien wählen.", 56, 145, 301, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_L_info = GUICtrlCreateLabel("Doch zuvor solltest du einen Abstecher zu den Programm-", 56, 182, 361, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_L_info2 = GUICtrlCreateLabel("optionen machen um es deinen Bedürfnissen anzupassen.", 56, 206, 364, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_L_info3 = GUICtrlCreateLabel("Werf' zudem einen Blick auf die neuesten Änderungen.", 56, 230, 346, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Welcome_B_options = GUICtrlCreateButton("Programmoptionen", 64, 269, 139, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "OptionsClick"); => OptionsClick
    $Welcome_B_Pnotes = GUICtrlCreateButton("Änderungsnotizen", 232, 269, 139, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "welcome_B_PnotesClick"); => welcome_B_PnotesClick

    [/autoit] [autoit][/autoit] [autoit]

    ; => Tab: Allgemein
    $T_general = GUICtrlCreateTabItem("Allgemein")
    $General_Headline = GUICtrlCreateLabel("Allgemeine Überprüfung", 98, 49, 219, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    GUICtrlSetColor(-1, 0x008000)
    $General_L_intro = GUICtrlCreateLabel("In diesem Bereich kannst du deinen Computer überprüfen", 56, 96, 364, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_L_intro2 = GUICtrlCreateLabel("lassen ob er alle Vorraussetzungen erfüllt um das Spiel", 56, 122, 342, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_L_intro3 = GUICtrlCreateLabel("League of Legends ordnungsgemäß auszuführen.", 56, 149, 305, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_L_info = GUICtrlCreateLabel("Die Überprüfung kann einen Moment dauern, da einiges", 56, 184, 352, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_L_info2 = GUICtrlCreateLabel("an Daten abgerufen wird. Danach erscheint ein Fenster", 56, 210, 343, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_L_info3 = GUICtrlCreateLabel("welches dir die Ergebnisse der Überprüfung anzeigt.", 56, 236, 326, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $General_B_systemcheck = GUICtrlCreateButton("Überprüfung starten", 144, 272, 147, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "General_B_systemcheckClick"); => general_B_systemcheckClick

    [/autoit] [autoit][/autoit] [autoit]

    ; => Tab: Startprogramm
    $T_launcher = GUICtrlCreateTabItem("Startprogramm")
    $launcher_headline = GUICtrlCreateLabel("Probleme im Startprogramm", 90, 49, 251, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    GUICtrlSetColor(-1, 0x008000)
    $launcher_L_intro = GUICtrlCreateLabel("Dieser Bereich behandelt die Probleme mit dem LoL-Launcher.", 44, 96, 391, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_playfixlabel = GUICtrlCreateLabel("Sollte die Spielen-Schaltfläche auch nach einem erfolgreichem", 44, 168, 391, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_playfixlabel2 = GUICtrlCreateLabel("Patchvorgang grau bleiben, kannst du dies hier beheben lassen.", 44, 192, 397, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_errorlabel = GUICtrlCreateLabel("Dies behebt den Fehler", 148, 264, 149, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_errorlabel2 = GUICtrlCreateLabel("''Im Startprogramm ist ein Fehler aufgetreten, bitte neustarten.''", 34, 288, 401, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_B_playfix = GUICtrlCreateButton("Spielen-Schaltfläche", 144, 132, 139, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "launcher_B_playClick"); => launcher_B_playClick
    $launcher_B_error = GUICtrlCreateButton("Startprogramm", 144, 226, 139, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "launcher_B_errorClick"); => launcher_B_errorClick
    $launcher_divide = GUICtrlCreateLabel("__________________________________________________", 44, 107, 354, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $launcher_divide2 = GUICtrlCreateLabel("__________________________________________________", 44, 202, 354, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")

    [/autoit] [autoit][/autoit] [autoit]

    ; => Tab: Verbindung
    $T_connection = GUICtrlCreateTabItem("Verbindung")
    $connection_headline = GUICtrlCreateLabel("Verbindungsprobleme", 112, 49, 196, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    GUICtrlSetColor(-1, 0x008000)
    $connection_L_intro = GUICtrlCreateLabel("Solltest du Verbindungsabbrüche oder starke Verzögerungen", 48, 96, 381, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $connection_L_intro2 = GUICtrlCreateLabel("haben, so kannst du in diesem Bereich eine Analyse des", 48, 121, 349, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $connection_L_intro3 = GUICtrlCreateLabel("Verbindungsaufbaus zu den LoL-Servern durchführen.", 48, 145, 336, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $connection_tracelabel = GUICtrlCreateLabel("Für die Analyse der Verbindung wird das mitgelieferte", 48, 209, 340, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $connection_tracelabel2 = GUICtrlCreateLabel("Programm ''WinMTR'' (Freeware) gestartet.", 48, 235, 270, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $connection_tracehint = GUICtrlCreateLabel("Hinweis:", 48, 184, 58, 22)
    GUICtrlSetFont(-1, 11, 800, 4, "Calibri")
    $connection_B_trace = GUICtrlCreateButton("Analyse starten", 152, 265, 123, 33, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "Microsoft Sans Serif")
    GUICtrlSetOnEvent(-1, "ConnectionAnalyseClick"); => ConnectionAnalyseClick

    [/autoit] [autoit][/autoit] [autoit]

    ; => Tab: Informationen
    $T_informationen = GUICtrlCreateTabItem("Informationen")
    $informationen_headline = GUICtrlCreateLabel("League of Legends - Get it fixed!", 48, 49, 285, 30)
    GUICtrlSetFont(-1, 16, 800, 4, "Calibri")
    GUICtrlSetColor(-1, 0x008000)
    $informationen_L_version = GUICtrlCreateLabel("aktuelle Version: 0.9", 48, 89, 131, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $informationen_L_coder = GUICtrlCreateLabel("Programmiert von Matricus", 48, 116, 172, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Informationen_L_hint = GUICtrlCreateLabel("Alle Lösungen basieren auf meinen Erfahrungen - IT-Technik", 48, 161, 376, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Informationen_L_hint2 = GUICtrlCreateLabel("im Allgemeinen, sowie LoL an sich. Einige Lösungen basieren", 48, 185, 379, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $Informationen_L_hint3 = GUICtrlCreateLabel("zudem auf Einträge aus der US Knowledge Base für LoL.", 48, 209, 343, 22)
    GUICtrlSetFont(-1, 11, 400, 0, "Calibri")
    $informationen_B_UCnotes = GUICtrlCreateButton("kommende Änderungen", 200, 257, 169, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "Info_B_notesClick"); => Info_B_notesClick
    $informationen_B_SysInfo = GUICtrlCreateButton("Systemdaten", 56, 257, 107, 33, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "SysInfoClick"); => SysInfoClick
    GUICtrlCreateTabItem("")
    $B_close = GUICtrlCreateButton("&Beenden", 336, 323, 83, 25, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "CLOSEclick"); => CLOSEclick
    $B_options = GUICtrlCreateButton("&Optionen", 16, 323, 83, 25, 0)
    GUICtrlSetFont(-1, 11, 800, 0, "Calibri")
    GUICtrlSetOnEvent(-1, "OptionsClick"); => OptionsClick
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEclick")
    ; # GUI Ende #
    EndFunc
    ; ### Ende Haupt-Interface ###
    ; ___________________________________________________________________________________________________________
    ; ___________________________________________________________________________________________________________

    [/autoit] [autoit][/autoit] [autoit]

    ; ### window events ###

    [/autoit] [autoit][/autoit] [autoit]

    Func CLOSEclick()
    If @GUI_WinHandle = $LoLFixit_Launcher Or @GUI_WinHandle = $FixIt_Main Then
    Exit
    Else
    If @GUI_WinHandle = $LoL_EUandUS Then
    MsgBox(48, "LoL - Get it fixed!", "Achtung! Du hast keinen Client ausgewählt." & @CRLF & "Das Programm benötigt eine Entscheidung." & @CRLF & "Bitte Programm neustarten und Client auswählen.")
    Exit
    ;WinClose("LoL - Get it fixed! Both")
    ;GUIDelete($LoL_EUandUS)
    ;$workdir = $DirEU
    ;Main()
    Else
    If @GUI_WinHandle = $SysInfo Then
    GUIDelete($SysInfo)
    WinClose("Get it fixed! - System Überblick")
    WinActivate("LoL - Get it fixed!")
    EndIf
    EndIf
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ##################################
    ; ## Haupt-Interface ##

    [/autoit] [autoit][/autoit] [autoit]

    Func welcome_B_PnotesClick()
    Info_notes()
    EndFunc
    ; ----------------------------------
    Func general_B_systemcheckClick()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc
    ; ----------------------------------
    Func Laun_B_closeClick() ; => Button für Patcher-Fix (sofortiges schließen)
    Launcher_closing()
    EndFunc
    ; ----------------------------------
    Func launcher_B_errorClick() ; => Button für Client-Fix
    Launcher_error()
    EndFunc
    ; ----------------------------------
    Func launcher_B_playClick(); => Button für Spiele-Button Fix
    Launcher_play()
    EndFunc
    ; ----------------------------------
    Func ConnectionAnalyseClick() ; => Button für Modul Verbindungsanalyse mit WinMTR
    connection_trace()
    EndFunc
    ; ----------------------------------
    Func SysInfoClick() ; => Button für Modul SysInfo
    SysInfo()
    EndFunc
    ; ----------------------------------
    Func Info_B_notesClick()
    upcoming()
    EndFunc
    ; ----------------------------------
    Func OptionsClick()

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ## Haupt-Interface ##
    ; ##################################
    ; ##################################
    ; ##Launcher Entscheidung ##

    [/autoit] [autoit][/autoit] [autoit]

    Func Button_EU() ; => Entscheidungsfenster ob EU/US >> Button für EU
    $GameData[3] = $GameData[1]
    Main()
    EndFunc
    ; ----------------------------------
    Func Button_US() ; => Entscheidungsfenster ob EU/US >> Button für US
    $GameData[3] = $GameData[2]
    Main()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ##Launcher Entscheidung ##
    ; ##################################
    ; ##################################
    ; ## SysInformationen ##

    [/autoit] [autoit][/autoit] [autoit]

    Func SysInfoExport() ; => Button in Modul SysInfo für Datenexport
    SysExport()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ## SysInformationen ##
    ; ##################################
    ; ##################################
    ; ## Optionen ##

    [/autoit] [autoit][/autoit] [autoit]

    Func Checkbox1Click() ; => Checkbox zum automatischen LoL Start nach Fix in main()
    $GameData[5] = GUICtrlRead($run_lol)
    if $GameData[5] = $GUI_CHECKED Then
    $GameData[6] = 1
    Else
    $GameData[6] = 0
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; ## Optionen ##
    ; ##################################
    ; ##################################
    ; ## alte OnEvent's ##

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    Func But_BPClick() ; => Button für Shop-Fix
    shop_blank()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Main_B_upcomingClick(); => Button für geplante Änderungen
    main_upcoming()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;Func Button2Click(); => Beenden Button in main()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Info_B_notesClick() ; => Button für Patchnotizen
    Info_notes()
    EndFunc
    #ce

    [/autoit] [autoit][/autoit] [autoit]

    ; ## alte OnEvent's ##
    ; ##################################

    [/autoit]


    fG
    Matricus

  • Mehrere Programme installieren und weiter klicken.

    • Matricus
    • 5. März 2010 um 10:50

    Schau mal in die Auto IT Hilfe , dort ist ein Tutorial enthalten wie man Programme automatisiert installiert - als Beispiel an WinZip.

  • Programmverknüpfung - "[x] Immer als Administrator ausführen" auslesen/setzen

    • Matricus
    • 5. März 2010 um 07:36

    Hallo Jonathan,

    erstmal Danke, aber ich glaub du hast meine Frage nicht ganz verstanden. ;)

    Es geht nicht darum eine Datei die an unterschiedlichen Orten liegt auszuführen, sondern eine Dateiverknüpfung - die in den meisten Fällen auf dem Desktop liegt - zu "verändern", sodass in dessen Eigenschaften (Reiter "Kompatibilität") der Haken für "[ ] Immer als Administrator ausführen" ausgelesen und ggf. gesetzt wird, bzw. zumindest darauf hingewiesen wird, dass der Haken nicht gesetzt ist.
    Dies gilt logischerweise nur für Windows Vista und Seven, da XP das ja noch nicht hat - aber das kann man ja mit einer Abfrage davor regeln.

    Da FileGetShortcut() dies nicht ermöglicht eben die Frage ob es dazu eine UDF oder andere Funktion gibt.

  • Programmverknüpfung - "[x] Immer als Administrator ausführen" auslesen/setzen

    • Matricus
    • 5. März 2010 um 07:06

    Grüße

    Ja, ich mal wieder.
    Heute nicht wirklich mit einem Problem, sondern mit einer Frage. ;)

    Bei Windows Vista und Seven gibt's ja in den Eigenschaften einer Dateiverknüpfung die Möglichkeit im Reiter "Kompatibilit" ein Haken zu setzen, sodass die Datei mit erhöhten Rechten ausgeführt wird - "[ ] Immmer als Administrator ausführen".

    Zunächst geht es natürlich primär drum eben diesen Wert auszulesen... soweit ich es versucht hab und auch gesucht hab, funktioniert dies mit der Funktion FileGetShortcut() nicht.
    Jedenfalls wirft er nichts dergleichen im Array aus.

    Daher die Frage... gibt es eine Funktion bzw. UDF die sowas ermöglicht?
    Eine Suche in der Windows Registrierung hat auch nichts ergeben... theoretisch müsste der shortcut dort ja hinterlegt sein.

    Und bevor jemand es vorschlägt... RunAs() fällt raus, da das Skript auf verschiedenen PCs ausgeführt wird und logischerweise die Benutzer unterschiedlich sind.

    Jemand 'ne Idee?


    fG
    Matricus

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™