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. mirko2002

Beiträge von mirko2002

  • Editfeld mehrzeilig speichern und auslesen

    • mirko2002
    • 27. Oktober 2011 um 13:12

    Ja na die treffendste Lösung (vom meinem wenigen Verständiss) war das Beispiel von BugFix.

    Da ich noch nicht gut AutoIt kann versteh ich sein Codebeispiel noch am besten - jedoch nur der erste Teil ist für mich unverständlich. In seinem Beispiel lautet es:

    [autoit]

    ; == Bsp. Text mit GuiCtrlRead($edit) gelesen:
    $text = "Zeile 1" & @CRLF & "Zeile 2" & @CRLF & "Zeile 3" & @CRLF & "Zeile 4"

    [/autoit]

    Und das versteh ich nicht.... mein Text kommt ja auch der Editbox, welche bei mir ja wie folgt aussieht:

    [autoit]

    $test = IniReadSection(@WindowsDir & '\pws.ini', "Notizen")
    $notizen = GUICtrlCreateEdit($test, 520, 70, 265, 290, BitOR ($WS_VSCROLL, $ES_MULTILINE, $ES_AUTOVSCROLL, $ES_WANTRETURN))

    [/autoit]

    Das schnall ich einfach nicht. Sorry wenn es für Euch recht einfach und evtl offensichtlich ist, aber ich steig da einfach nicht hinter. Da mein AutoIt wissen leider begrenzt ist stoß ich wahrscheinlich bei einem ganz einfachen Thema an meine Grenzen.

  • Editfeld mehrzeilig speichern und auslesen

    • mirko2002
    • 27. Oktober 2011 um 12:53
    Zitat von Protex

    machen wir es doch einfacher hiermit sollte es gehen

    [autoit]


    $readNotizen = GUICtrlRead($notizen)
    If FileExists('text.txt' Then
    FileDelete('text.txt')
    FileWrite('text.txt',$readNotizen)
    Else
    FileWrite('text.txt',$readNotizen)
    EndIf

    [/autoit]

    und zum auslesen

    [autoit]


    $readFile = FileRead('text.txt')
    Guictrlsetdata($notizen,$readFile)

    [/autoit] [autoit][/autoit] [autoit][/autoit]
    Alles anzeigen


    Hehe, ja über diese Möglichkeit hatte ich auch schon nachgedacht, da es wenig Code bedarf, jedoch soll nichts mit einer weiteren Textdatei erstellt werden. Eigentlich ist die *.ini auch schon zuviel - ich könnts auch über Registryeinträge machen - ich will aber das die Daten portable sind und das ist mit der ini-Datei perfekt gelöst. Und damit der User, der das dann letzendlich nutzt nicht etliche Dateien kopieren muss (ok - hier wärs jetzt nur eine mehr) soll alles in eine Datei rein.

  • Editfeld mehrzeilig speichern und auslesen

    • mirko2002
    • 27. Oktober 2011 um 12:23

    Hey vielen Dank für die Hilfestellung, jedoch bekomm ich es trotzdem nicht gebacken...

    Ich hatte die ganze Zeit an Protex seinen Vorschlag versucht umzusetzen - jedoch weiterhin gescheitert...

    [autoit]


    For $i = 1 To UBound($splitNotizen)-1
    IniWrite(@ScriptDir & '\pws.ini','Notizen','Notiz',$splitNotizen[$i] & ';')
    Next

    [/autoit]

    Diesen Teil hatte ich bei der Savefunktion (also beim Button) eingefügt - jedoch speichert er rein gar nichts in meiner pws.ini

    [autoit]


    $readNotizen = GUICtrlRead($notizen)
    $splitNotizen = StringSplit($readNotizen,@CR)

    [/autoit]

    Diesen Teil hatte ich mit unters Editfeld gesetzt.... aber er schreibt jetzt noch nichtmal in die .ini rein. Bei meinem vorherigen Skript hat er wenigstens geschrieben - nur ohne die CRLF's die BugFix jetzt ansprach.

    Ich versuch ne Menge selber aber ich hab hier schon jetzt schon so viel probiert das mein Kopf qualmt und ich deswegen evtl auch einfach nur ne Denkblockade habe -.-

    Mein aktueller Code (nur ein Schnipsel) ist jetzt der hier:

    Hier wird das Editfeld erstellt und die ini ausgelesen und im Editfeld eingetragen

    [autoit]

    $test = IniReadSection(@WindowsDir & '\pws.ini', "Notizen")
    $notizen = GUICtrlCreateEdit($test, 520, 70, 265, 290, BitOR ($WS_VSCROLL, $ES_MULTILINE, $ES_AUTOVSCROLL, $ES_WANTRETURN))
    $readNotizen = GUICtrlRead($notizen)
    $splitNotizen = StringSplit($readNotizen,@CR)

    [/autoit]

    Das ist die Savefunktion vom Button...

    [autoit]

    Case $SaveButtonNotiz
    For $i = 1 To UBound($splitNotizen)-1
    IniWrite(@ScriptDir & '\pws.ini','Notizen','Notiz',$splitNotizen[$i] & ';')
    Next
    ;IniWrite(@WindowsDir & "\pws.ini", "Notizen", "Notizen", GUICtrlRead($notizen))
    MsgBox(64, "Done", "Notizen gespeichert!")

    [/autoit]
  • Editfeld mehrzeilig speichern und auslesen

    • mirko2002
    • 27. Oktober 2011 um 10:32

    Hallo liebe AutoIT'ler,

    ich stehe derzeit wieder vor einer Herausforderung.

    In meinem Skript wird ein Editfeld in der GUI verwendet welches Quasi als Notizfeld dient. Es ist entsprechend gross und mehrzeilig.

    Das ganze wird mit einem Savebutton in einer *.ini Datei gespeichert wo auch einige andere Sachen aus dem Skript hinterlegt werden.

    Das speichern ist kein Problem - der Saveeintrag in der *.ini erfolgt direkt so, wie es im Editfeld auch geschrieben wurde. Jedoch bereitet mir das Auslesen der *.ini beim Neustart des Skriptes Probleme - schliesslich will ich ja die abgespeicherten Notizen später auch wieder einsehen können ;)

    Ich habe das Problem, dass er immer nur die erste Zeile aus der *.ini ausliest. Sobald der Zeilenumbruch kommt ist vorbei...

    Ich hab über Google bereits Sachen gefunden wo der @CRLF durch Stringreplace ersetzt werden muss. Aber irgendwie hab ich nichts passendes gefunden was bei mir funktionieren wollte - in der jetzigen Version die ich unten mit Anhänge ist lediglich die Speicherfunktion enthalten - die fehlgeschlagenen Ausleseversuche habe ich vorerst wieder entfernt. Kann mir da wer helfen das Editfeld also mehrzeilig auszulesen?

    Vielen lieben Dank im voraus!

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=C:\Documents and Settings\751076\Desktop\wiki_backup\ups.ico
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=UPS
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright="(C) Copyright CT-Team 2011"
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #NoTrayIcon
    ;------------------INCLUDES------------------------
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <GUIConstants.au3>
    #include <EditConstants.au3>
    #include <String.au3>
    #include <Timers.au3>
    #include <Date.au3>
    ;--------------------MODIS-------------------------
    Opt('GUIOnEventMode', 1)
    Opt('TrayOnEventMode', 1)
    Opt('TrayMenuMode', 1)
    ;-----------------SPLASH-GUI-----------------------
    #Region Splash GUI
    FileInstall("C:\Documents and Settings\751076\Desktop\wiki_backup\UPS-Logo.JPG", @TempDir & "\ups-logo.jpg", 1)
    $bootlogo = @TempDir & "\ups-logo.jpg"
    SplashImageOn("Loading UPS... | Bitte warten... | Please wait...", $bootlogo, 403, 122, -1, -1)
    Sleep(3000)
    SplashOff()
    #EndRegion Splash GUI
    ;-----------------HAUPT-GUI------------------------
    $ver = "v1.3"
    Global $ini = @WindowsDir & '\pws.ini'
    Global $MasterPW = 'Master'
    Global $ABeschreibung[3] = ['Programme', 'Login', 'Passwort']
    Global $Programm[10], $Login[10], $Passwort[10], $hCheck[10]

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

    If Not FileExists(@WindowsDir & "\pws.ini") Then
    IniWrite(@WindowsDir & "\pws.ini", "Notizen", "Notizen", "Deine Notizen")
    For $i = 0 To 2
    For $e = 0 To 9
    IniWrite($ini, $ABeschreibung[$i], $ABeschreibung[$i] & $e + 1, "")
    Next
    Next

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

    EndIf

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

    Global $mainGui = GUICreate("UPS - Der ultimative Passwort-Safe " & $ver, 800, 415)
    GUISetOnEvent(-3, 'E')
    GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
    TraySetOnEvent( -7, '_Restore')
    GUICtrlCreateGroup("", 725, 2, 70, 43)
    GUICtrlCreateLabel("____________", 728, 13, 63, 15)
    GUICtrlSetFont(-1, 9, 800, 2, "Arial")
    $date = GUICtrlCreateLabel(@MDAY & "." & @MON & "." & @YEAR, 728, 10, 65, 15)
    GUICtrlSetFont(-1, 9, 800, 2, "Arial")
    $time = GUICtrlCreateLabel(@HOUR & ":" & @MIN & ":" & @SEC, 733, 28, 60, 15)
    GUICtrlSetFont(-1, 9, 800, 2, "Arial")
    GUICtrlCreateGroup("Notizen", 510, 50, 285, 320)
    GUICtrlSetFont(-1, 8, 600, 0, "Verdana")
    $notizen = GUICtrlCreateEdit("", 520, 70, 265, 290, BitOR ($WS_VSCROLL, $ES_MULTILINE, $ES_AUTOVSCROLL, $ES_WANTRETURN))
    ;~ GUICtrlCreateLabel("UPS", 225, 5, 60, 30)
    ;~ GUICtrlSetFont(-1, 15, 800, 0, "Verdana")
    ;~ GUICtrlCreateLabel("Der ultimative Passwort-Safe", 165, 30, 200, 20)
    ;~ GUICtrlSetFont(-1, 8, 800, 3, "Verdana")
    FileInstall("C:\Documents and Settings\751076\Desktop\wiki_backup\ups-head.jpg", @TempDir & "\ups-head.jpg", 1)
    $Pic1 = GUICtrlCreatePic(@TempDir & "\ups-head.jpg", 250, 5, 376, 42)
    GUICtrlCreateGroup("Programm:", 15, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    Local $x = 70
    For $i = 0 To 9
    $Programm[$i] = GUICtrlCreateInput(IniRead($ini, $ABeschreibung[0], $ABeschreibung[0] & $i + 1, ""), 22, $x, 135, 25)
    $x += 30
    Next
    GUICtrlCreateGroup("User/Login:", 173, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $x = 70
    For $i = 0 To 9
    $Login[$i] = GUICtrlCreateInput(IniRead($ini, $ABeschreibung[1], $ABeschreibung[1] & $i + 1, ""), 180, $x, 135, 25)
    $x += 30
    Next
    GUICtrlCreateGroup("Passwort:", 330, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $x = 70
    Local $y = 75
    For $i = 0 To 9
    $Passwort[$i] = GUICtrlCreateInput(IIF(Not IniRead($ini, $ABeschreibung[2], $ABeschreibung[2] & $i + 1, ""), '', _StringEncrypt(0, IniRead($ini, $ABeschreibung[2], $ABeschreibung[2] & $i + 1, ""), $MasterPW, 2)), 337, $x, 135, 25)
    GUICtrlSendMsg($Passwort[$i], $EM_SETPASSWORDCHAR, Asc('*'), 0)
    $hCheck[$i] = GUICtrlCreateCheckbox("", 485, $y, 10, 10)
    GUICtrlSetOnEvent(-1, 'Menue')
    $x += 30
    $y = $x + 6
    Next
    $SaveButton = GUICtrlCreateButton("Save", 225, 375, 50, 19)
    GUICtrlSetOnEvent(-1, 'Menue')
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $MasterPW_ChangeButton = GUICtrlCreateButton("MasterPW löschen!", 200, 400, 100, 14)
    GUICtrlSetOnEvent(-1, 'Menue')
    GUICtrlSetFont(-1, 6, 800, 0, "Verdana")
    $SaveButtonNotiz = GUICtrlCreateButton("Save", 625, 375, 50, 19)
    GUICtrlSetOnEvent(-1, 'Menue')
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    GUICtrlCreateLabel("Konzept: Patrick Berg", 699, 395)
    GUICtrlSetFont(-1, 6, 800, 0, "Verdana")
    GUICtrlCreateLabel("Umsetzung: Mirko Hässelbarth", 658, 405)
    GUICtrlSetFont(-1, 6, 800, 0, "Verdana")
    GUIsetstate()

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

    _Timer_SetTimer($mainGui, 1000, "_UpdateStatusBarClock")

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

    Func _UpdateStatusBarClock($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    GUICtrlSetData($Time, StringFormat("%02d:%02d:%02d", @HOUR, @MIN, @SEC))
    EndFunc ;==>_UpdateStatusBarClock

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

    Func Menue()
    Switch @GUI_CtrlId
    Case $SaveButtonNotiz
    IniWrite(@WindowsDir & "\pws.ini", "Notizen", "Notizen", GUICtrlRead($notizen))
    MsgBox(64, "Done", "Notizen gespeichert!")
    Case $MasterPW_ChangeButton
    IniDelete(@WindowsDir & "\pws.ini", "MASTER", "MASTER")
    MsgBox(64, "Done", "Password deleted!" & @CRLF & @CRLF & "If you restart this tool you" & @CRLF & "can choose a new password!")
    Case $SaveButton
    For $i = 0 To 9
    If GUICtrlRead($Programm[$i]) <> '' Or IniRead($ini, $ABeschreibung[0], $ABeschreibung[0] & $i + 1, "") <> GUICtrlRead($Programm[$i]) Then
    IniWrite($ini, $ABeschreibung[0], $ABeschreibung[0] & $i + 1, GUICtrlRead($Programm[$i]))
    EndIf
    If GUICtrlRead($Login[$i]) <> '' Or IniRead($ini, $ABeschreibung[1], $ABeschreibung[1] & $i + 1, "") <> GUICtrlRead($Login[$i]) Then
    IniWrite($ini, $ABeschreibung[1], $ABeschreibung[1] & $i + 1, GUICtrlRead($Login[$i]))
    EndIf
    If GUICtrlRead($Passwort[$i]) <> '' Or _StringEncrypt(0, IniRead($ini, $ABeschreibung[2], $ABeschreibung[2] & $i + 1, ""), $MasterPW, 2) <> GUICtrlRead($Passwort[$i]) Then
    IniWrite($ini, $ABeschreibung[2], $ABeschreibung[2] & $i + 1, _StringEncrypt(1, GUICtrlRead($Passwort[$i]), $MasterPW, 2))
    EndIf
    Next
    MsgBox(64, "Done", "Speichern erfolgreich!")
    Case Else
    For $i = 0 To 9
    If @GUI_CtrlId = $hCheck[$i] Then
    GUICtrlSendMsg($Passwort[$i], $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck[$i]), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort[$i], $GUI_FOCUS)
    EndIf
    Next
    EndSwitch

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

    EndFunc ;==>Menue

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

    Func IIF($V_Expr, $F_True = True, $F_False = False)
    If $V_Expr Then Return $F_True
    Return $F_False
    EndFunc ;==>IIF

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

    Func E()
    FileDelete(@Tempdir & "\ccc.jpg")
    FileDelete(@Tempdir & "\ups-logo.jpg")
    FileDelete(@Tempdir & "\fedex.jpg")
    _SelfDelete_UPSEXE()
    Exit
    EndFunc ;==>E

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

    Func _Restore()
    TraySetState(2)
    GUISetState(@SW_SHOW)
    EndFunc

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

    Func _Minimize()
    TraySetState(1)
    GUISetState(@SW_HIDE)
    EndFunc

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

    Func _SelfDelete_UPSEXE()
    $iDelay = 4
    Local $sCmdFile
    FileDelete(@TempDir & "\scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @TempDir & '\ups.exe' & '"' & @CRLF _
    & 'if exist "' & @TempDir & '\ups.exe' & '" goto loop' & @CRLF _
    & 'del ' & @TempDir & '\scratch.bat'
    FileWrite(@TempDir & "\scratch.bat", $sCmdFile)
    Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)
    Exit
    EndFunc

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

    While 1 * Sleep(10)
    WEnd

    [/autoit]
  • gecryptete Section aus ini-Datei wieder encrypten

    • mirko2002
    • 20. Oktober 2011 um 08:38

    Ah ok alles klar das war mein Denkfehler, habs eben getestet funktioniert wunderbar. Das Dein Skript kürzer ist freut mich natürlich noch umso mehr... Schleifen sind für mich noch immer eine Sache die ich nicht verstehe (auch wenn ich natürlich das Grundprinzip einer Schleife verstehe).

    Ich setz den Thread mal auf "Gelöst". Danke Kleiner!

  • gecryptete Section aus ini-Datei wieder encrypten

    • mirko2002
    • 19. Oktober 2011 um 18:08

    hm gibts da keine einfachere lösung?

    ich mein das crypten ging ja auch mit einer Zeile code :)

    und derzeit lass ich die passwörter mit sich selbst crypten. Als Beispiel wird das Wort TEST mit dem Wort TEST gecrypted und ergibt den Wert 123456789. Starte ich nun das Tool steht jetzt natürlich nicht mehr TEST im PW Feld sondern 123456789...

  • gecryptete Section aus ini-Datei wieder encrypten

    • mirko2002
    • 19. Oktober 2011 um 17:51

    Hallo miteinander,

    derzeit hab ich für mich und meine Arbeitskollegen ein kleines Tool geschrieben wo wir unsere Passwörter speichern können. Da wir einfach etliche Programme mit unterschiedlichen Zugangsdaten nutzen ist es nervig sich immer alles merken zu müssen ;)

    Daher habe ich mir folgendes kleines Skript gebastelt. Soweit funktioniert alles bestens - ich schaffe es auch, dass die Passwörter verschlüsselt in der ini Datei gespeichert werden, jedoch das erneute wieder einlesen und diese dann wieder als Klartext einzulesen scheiterte bisher. Aktuell ist hier das Skript mit Verschlüsselung aber ohne Entschlüsselung:

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=PWS
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright="(C) Copyright CT-Team 2011"
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt("TrayIconHide", 1)
    ;------------------INCLUDES------------------------
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <GUIConstants.au3>
    #include <EditConstants.au3>
    #Include <String.au3>
    ;-----------------HAUPT-GUI------------------------
    $ini = @ScriptDir & "\pws.ini"

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

    If not FileExists(@ScriptDir & "\pws.ini") Then
    IniWrite($ini, "Programme", "Programm 1", "Testprogramm 1")
    IniWrite($ini, "Programme", "Programm 2", "")
    IniWrite($ini, "Programme", "Programm 3", "")
    IniWrite($ini, "Programme", "Programm 4", "")
    IniWrite($ini, "Programme", "Programm 5", "")
    IniWrite($ini, "Programme", "Programm 6", "")
    IniWrite($ini, "Programme", "Programm 7", "")
    IniWrite($ini, "Programme", "Programm 8", "")
    IniWrite($ini, "Programme", "Programm 9", "")
    IniWrite($ini, "Programme", "Programm 10", "")
    IniWrite($ini, "Login", "Login 1", "Testlogin 1")
    IniWrite($ini, "Login", "Login 2", "")
    IniWrite($ini, "Login", "Login 3", "")
    IniWrite($ini, "Login", "Login 4", "")
    IniWrite($ini, "Login", "Login 5", "")
    IniWrite($ini, "Login", "Login 6", "")
    IniWrite($ini, "Login", "Login 7", "")
    IniWrite($ini, "Login", "Login 8", "")
    IniWrite($ini, "Login", "Login 9", "")
    IniWrite($ini, "Login", "Login 10", "")
    IniWrite($ini, "Passwort", "Passwort 1", "Testpasswort 1")
    IniWrite($ini, "Passwort", "Passwort 2", "")
    IniWrite($ini, "Passwort", "Passwort 3", "")
    IniWrite($ini, "Passwort", "Passwort 4", "")
    IniWrite($ini, "Passwort", "Passwort 5", "")
    IniWrite($ini, "Passwort", "Passwort 6", "")
    IniWrite($ini, "Passwort", "Passwort 7", "")
    IniWrite($ini, "Passwort", "Passwort 8", "")
    IniWrite($ini, "Passwort", "Passwort 9", "")
    IniWrite($ini, "Passwort", "Passwort 10", "")
    EndIf

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

    $mainGui = GUIcreate("PWS - Der ultimative Passwort-Safe", 500, 400)

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

    GUICtrlCreateLabel("PWS", 225, 5, 60, 30)
    GUICtrlSetFont(-1, 15, 800, 0, "Verdana")
    GUICtrlCreateLabel("Der ultimative Passwort-Safe", 165, 30, 200, 20)
    GUICtrlSetFont(-1, 8, 800, 3, "Verdana")

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

    GUICtrlCreateGroup("Programm:", 15, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $Programm1 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 1", ""), 22, 70, 135, 25)
    $Programm2 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 2", ""), 22, 100, 135, 25)
    $Programm3 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 3", ""), 22, 130, 135, 25)
    $Programm4 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 4", ""), 22, 160, 135, 25)
    $Programm5 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 5", ""), 22, 190, 135, 25)
    $Programm6 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 6", ""), 22, 220, 135, 25)
    $Programm7 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 7", ""), 22, 250, 135, 25)
    $Programm8 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 8", ""), 22, 280, 135, 25)
    $Programm9 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 9", ""), 22, 310, 135, 25)
    $Programm10 = GUICtrlCreateInput(IniRead($ini, "Programme", "Programm 10", ""), 22, 340, 135, 25)

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

    GUICtrlCreateGroup("User/Login:", 173, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $Login1 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 1", ""), 180, 70, 135, 25)
    $Login2 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 2", ""), 180, 100, 135, 25)
    $Login3 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 3", ""), 180, 130, 135, 25)
    $Login4 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 4", ""), 180, 160, 135, 25)
    $Login5 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 5", ""), 180, 190, 135, 25)
    $Login6 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 6", ""), 180, 220, 135, 25)
    $Login7 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 7", ""), 180, 250, 135, 25)
    $Login8 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 8", ""), 180, 280, 135, 25)
    $Login9 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 9", ""), 180, 310, 135, 25)
    $Login10 = GUICtrlCreateInput(IniRead($ini, "Login", "Login 10", ""), 180, 340, 135, 25)

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

    $bPassVisible = FALSE
    GUICtrlCreateGroup("Passwort:", 330, 50, 150, 320)
    GUICtrlSetFont(-1, 8, 800, 0, "Verdana")
    $Passwort1 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 1", ""), 337, 70, 135, 25)
    GUICtrlSendMsg($Passwort1, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck1 = GUICtrlCreateCheckbox("", 485, 75, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort2 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 2", ""), 337, 100, 135, 25)
    GUICtrlSendMsg($Passwort2, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck2 = GUICtrlCreateCheckbox("", 485, 105, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort3 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 3", ""), 337, 130, 135, 25)
    GUICtrlSendMsg($Passwort3, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck3 = GUICtrlCreateCheckbox("", 485, 135, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort4 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 4", ""), 337, 160, 135, 25)
    GUICtrlSendMsg($Passwort4, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck4 = GUICtrlCreateCheckbox("", 485, 165, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort5 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 5", ""), 337, 190, 135, 25)
    GUICtrlSendMsg($Passwort5, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck5 = GUICtrlCreateCheckbox("", 485, 195, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort6 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 6", ""), 337, 220, 135, 25)
    GUICtrlSendMsg($Passwort6, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck6 = GUICtrlCreateCheckbox("", 485, 225, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort7 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 7", ""), 337, 250, 135, 25)
    GUICtrlSendMsg($Passwort7, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck7 = GUICtrlCreateCheckbox("", 485, 255, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort8 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 8", ""), 337, 280, 135, 25)
    GUICtrlSendMsg($Passwort8, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck8 = GUICtrlCreateCheckbox("", 485, 285, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort9 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 9", ""), 337, 310, 135, 25)
    GUICtrlSendMsg($Passwort9, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck9 = GUICtrlCreateCheckbox("", 485, 315, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $Passwort10 = GUICtrlCreateInput(IniRead($ini, "Passwort", "Passwort 10", ""), 337, 340, 135, 25)
    GUICtrlSendMsg($Passwort10, $EM_SETPASSWORDCHAR, Not $bPassVisible * Asc('*'), 0)
    $hCheck10 = GUICtrlCreateCheckbox("", 485, 345, 10, 10)
    If $bPassVisible Then GUICtrlSetState(-1, $GUI_CHECKED)
    $SaveButton = GUICtrlCreateButton("Save", 225, 375, 50, 20)

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

    GUIsetstate(@SW_SHOW,$mainGui)
    While 1
    Global $isHide
    $msg = GUIgetmsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $SaveButton
    IniWrite($ini, "Programme", "Programm 1", GUICtrlRead($Programm1))
    IniWrite($ini, "Programme", "Programm 2", GUICtrlRead($Programm2))
    IniWrite($ini, "Programme", "Programm 3", GUICtrlRead($Programm3))
    IniWrite($ini, "Programme", "Programm 4", GUICtrlRead($Programm4))
    IniWrite($ini, "Programme", "Programm 5", GUICtrlRead($Programm5))
    IniWrite($ini, "Programme", "Programm 6", GUICtrlRead($Programm6))
    IniWrite($ini, "Programme", "Programm 7", GUICtrlRead($Programm7))
    IniWrite($ini, "Programme", "Programm 8", GUICtrlRead($Programm8))
    IniWrite($ini, "Programme", "Programm 9", GUICtrlRead($Programm9))
    IniWrite($ini, "Programme", "Programm 10", GUICtrlRead($Programm10))
    IniWrite($ini, "Login", "Login 1", GUICtrlRead($Login1))
    IniWrite($ini, "Login", "Login 2", GUICtrlRead($Login2))
    IniWrite($ini, "Login", "Login 3", GUICtrlRead($Login3))
    IniWrite($ini, "Login", "Login 4", GUICtrlRead($Login4))
    IniWrite($ini, "Login", "Login 5", GUICtrlRead($Login5))
    IniWrite($ini, "Login", "Login 6", GUICtrlRead($Login6))
    IniWrite($ini, "Login", "Login 7", GUICtrlRead($Login7))
    IniWrite($ini, "Login", "Login 8", GUICtrlRead($Login8))
    IniWrite($ini, "Login", "Login 9", GUICtrlRead($Login9))
    IniWrite($ini, "Login", "Login 10", GUICtrlRead($Login10))
    If GUICtrlRead($Passwort1) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 1", _StringEncrypt(1,GUICtrlRead($Passwort1),GuiCtrlRead($Passwort1),"2"))
    EndIf
    If GUICtrlRead($Passwort2) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 2", _StringEncrypt(1,GUICtrlRead($Passwort2),GuiCtrlRead($Passwort2),"2"))
    EndIf
    If GUICtrlRead($Passwort3) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 3", _StringEncrypt(1,GUICtrlRead($Passwort3),GuiCtrlRead($Passwort3),"2"))
    EndIf
    If GUICtrlRead($Passwort4) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 4", _StringEncrypt(1,GUICtrlRead($Passwort4),GuiCtrlRead($Passwort4),"2"))
    EndIf
    If GUICtrlRead($Passwort5) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 5", _StringEncrypt(1,GUICtrlRead($Passwort5),GuiCtrlRead($Passwort5),"2"))
    EndIf
    If GUICtrlRead($Passwort6) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 6", _StringEncrypt(1,GUICtrlRead($Passwort6),GuiCtrlRead($Passwort6),"2"))
    EndIf
    If GUICtrlRead($Passwort7) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 7", _StringEncrypt(1,GUICtrlRead($Passwort7),GuiCtrlRead($Passwort7),"2"))
    EndIf
    If GUICtrlRead($Passwort8) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 8", _StringEncrypt(1,GUICtrlRead($Passwort8),GuiCtrlRead($Passwort8),"2"))
    EndIf
    If GUICtrlRead($Passwort9) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 9", _StringEncrypt(1,GUICtrlRead($Passwort9),GuiCtrlRead($Passwort9),"2"))
    EndIf
    If GUICtrlRead($Passwort10) = "" then
    Else
    IniWrite($ini, "Passwort", "Passwort 10", _StringEncrypt(1,GUICtrlRead($Passwort10),GuiCtrlRead($Passwort10),"2"))
    EndIf
    MsgBox(0, "", "Speichern erfolgreich!")
    Case $hCheck1
    GUICtrlSendMsg($Passwort1, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck1), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort1, $GUI_FOCUS)
    Case $hCheck2
    GUICtrlSendMsg($Passwort2, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck2), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort2, $GUI_FOCUS)
    Case $hCheck3
    GUICtrlSendMsg($Passwort3, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck3), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort3, $GUI_FOCUS)
    Case $hCheck4
    GUICtrlSendMsg($Passwort4, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck4), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort4, $GUI_FOCUS)
    Case $hCheck5
    GUICtrlSendMsg($Passwort5, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck5), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort5, $GUI_FOCUS)
    Case $hCheck6
    GUICtrlSendMsg($Passwort6, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck6), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort6, $GUI_FOCUS)
    Case $hCheck7
    GUICtrlSendMsg($Passwort7, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck7), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort7, $GUI_FOCUS)
    Case $hCheck8
    GUICtrlSendMsg($Passwort8, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck8), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort8, $GUI_FOCUS)
    Case $hCheck9
    GUICtrlSendMsg($Passwort9, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck9), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort9, $GUI_FOCUS)
    Case $hCheck10
    GUICtrlSendMsg($Passwort10, $EM_SETPASSWORDCHAR, Not BitAND(GUICtrlRead($hCheck10), $GUI_CHECKED) * Asc('*'), 0)
    GUICtrlSetState($Passwort10, $GUI_FOCUS)
    EndSwitch
    WEnd

    [/autoit]

    Ich hab kein Plan wie ich das geschlüsselte PW wieder entschlüsseln kann - wer kann mir helfen?

    LG

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 6. Oktober 2011 um 19:10

    Hehe,

    ich denke jetzt wirds nochmal richtig kompliziert. Diese Funktion kann ich bei mir nicht verwenden, da ich mein Gui wie folgt aufgebaut habe:

    Das GUI enthält viele Tabs. Nur einige der Tabs müssen scrollbar sein. Da es keine direkte AutoIT Funktion dafür gibt, habe ich mich dieser Variante hier bedient:

    [ gelöst ] Tab mit Scrollbar (scrollbars erstellen in Tabs)

    Nun sind in dem Tab viele viele Editfelder, die aber bestimmte Attribute haben und immer exakt so groß sind wie der Text selber:

    [autoit]

    GUICtrlCreateEdit("Problem:", 100, 19045, 100, 20, BitOR($ES_READONLY), 0)

    [/autoit]

    Ein Scrollbalken innerhalb(!!!) der Editfelder gibt es also nicht - sondern nur der im Tab integriert ist. Ebensowenig gibt es keinen blinkenden Cursor, da das Editfeld read-only ist.

    Hast Du hier noch eine Idee oder kann ich das ganze vergessen?

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 6. Oktober 2011 um 18:03

    Danke für Deine Mithilfe - auch ich mag gerne mitdenken, denn nur so lerne ich auch was. Jedoch hört bei mir irgendwann das Verständniss für den Code auf. Und bei Deinem Beispiel (was übrigens wunderbar funktioniert) versteh ich gerade mal die Hälfte. Natürlich kann man anhand der Befehlsnamen einiges erkennen und auch sicher das eine oder andere Nachschlagen, aber alleine hätte ich sowas nie schreiben können.

    Nun habe ich als letztes nur noch das Problem, dass er - wenn der gefundene String ausserhalb des sichtbereiches ist - nicht automatisch runter- oder hochscrollt.

    Es ist ja nicht so das ich mir keine Gedanken mache oder nicht Suche. Jedoch in der Hilfe konnte ich eine solche Funktion nur für Listen finden (_GUICtrlListView_EnsureVisible) - damit kann ich scrollen lassen bis der Beitrag entweder ganz oder teilweise sichtbar ist. Für Edit konnte ich selbige Funktion jedoch leider nicht finden und bei meinem Kentnissstand bin ich noch sehr auf die AutoIT-Hilfe angewiesen.

  • Progressbar beim laden der GUI

    • mirko2002
    • 6. Oktober 2011 um 17:55

    Versteift euch jetzt bitte nicht zu sehr auf meine Aussage mit dem Netzlaufwerk ;)

    Die jetzige kompilierte EXE ist 1,3 MB groß und wird max., wenn sie fertig ist, vielleicht 4 MB haben - also nicht die Welt.

    Man muß sich nur vorstellen das, wenn ich mir die EXE auf den lokalen Desktop kopiere, dass das dann schon gut 30 Sekunden dauern kann - für 1,3MB wohlgemerkt.

    so hat man evtl eine Vorstellung wie langsam das abläuft.

    Ich kann genausogut die exe auf meinem lokalen Desktop ausführen - jedoch würde ich auch da (auch wenns da erheblich schneller lädt) diesen Ladebalken gerne bekommen. Und da erscheint mir Mike seine Lösung am sinnvollsten. Weiß aber selber auch nicht wie man das umsetzen kann :D

    Evtl einfach ne variable erstellen die anfangs 0 ist und der Progressbalken halt 0% anzeigt (über If - then) und vielleicht 500 Zeilen tiefer die gleiche Variable dann mit 33 angibt und dann wieder auf die progressbar abgibt..

    So würde ich mir das vorstellen. Würde das mit der variable so gehen?

  • Progressbar beim laden der GUI

    • mirko2002
    • 6. Oktober 2011 um 13:31

    Hallo Marvin,

    nein ganz so ist es nicht ;)

    Da lokal ab und zu mal Dateien bei uns beschädigt sind oder durch irgendwelche Updates auf einmal weg sind, zerschossen oder was auch immer, hatte ich mich dafür entschieden, die au3 mit all den Files (Bilder die per Fileinstall reinkommen) auf dem Netzlaufwerk zu erstellen.

    Also statt c:\ liegen nun alle Daten auf M:\ - wenn ich jetzt zum Beispiel im Skript was ändere und die AU3 mit F5 starten will dauert es auch immer eine halbe ewigkeit bis das Skript geladen ist - manchmal denkt man einfach das es abgestürzt ist, weil es solange dauert. Die exe wird dann ebenfalls auf M:\ kompiliert, so das jeder meiner Kollegen die exe also direkt über das Netzlaufwerk aus startet und nicht lokal von der eigenen Platte...

    Hoffe das ist verständlich. Kann es nicht besser beschreiben ;)

    Gruß
    Mirko

  • Progressbar beim laden der GUI

    • mirko2002
    • 6. Oktober 2011 um 13:11

    Hm also Mikes vorschlag klingt sehr interessant - die Frage ist wie dieser umzusetzen wäre. Er hat aber von meinem vorhaben den Nagel auf den Kopf getroffen.

    @Protex: Thema Netzlaufwerke :D

    Ich arbeite hier in Deutschland für ein amerikanisches Unternehmen. Die Netzlaufwerke gehen nach Brüssel auf einen Knotenpunkt und dort weiter nach Memphis in die USA - und das dauert. Auf dem Netzlaufwerk sharen wir auch nur ein paar unserer Dateien als Backup... der Rest ist lokal.

    Aber nun BTT - siehe Mike sein Vorschlag. Meine GUI wird geöffnet, ein paar Tabs erstellt und dort etliche Labels/Editfelder geschrieben. Ganz zum schluss wird dann der GuiSetState Befehl angegeben um die GUI anzuzeigen. Ich hatte anfangs den SetState-Befehl früher im Skript, jedoch baute sich dann der Inhalt des GUI's immer erst auf. Das wollte ich nicht - ich wollte das die GUI erst sichtbar ist, wenn alles geladen ist.

    Und da das teilweise dauert wollte ich die Ladezeit mit dem Progressbar anzeigen.

    Die Splashfunktion die oben angesprochen wurde nützt mir nix da das Sleep auch den aufbau der GUI um die angegebene Zeit verzögert. Den Progressbar würde ich lieber vorziehen.

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 6. Oktober 2011 um 12:42

    Öhm.. ja... Bahnhof :)

    Bei Dir sprudelt das immer so mit einer Selbstverständlichkeit raus - und bei mir kommt immer nur die Hälfte an ^^

    Ich denke, dass muß im folgenden Teil hier angepasst werden?

    [autoit]


    For $i = 0 To Ubound($aEdits)-1
    $aSearch = _SearchString(_GUICtrlEdit_GetText($aEdits[$i]), GUICtrlRead($cInput_Searchstring))
    Switch @error
    Case 0
    _GUICtrlEdit_SetSel($aEdits[$i], $aSearch[0] - 1, $aSearch[1] - 1)
    ControlFocus($hWnd, "",$aEdits[$i])
    ExitLoop
    ;HIER muss irgendwie Dein Hinweis rein?
    Case 2
    MsgBox(16, "Fehler", "Kein Suchwort eingegeben oder Textfeld leer.")
    ExitLoop
    EndSwitch[
    Next
    If @error = 1 Then MsgBox(0, "", "Nichts gefunden" )

    [/autoit]
  • Progressbar beim laden der GUI

    • mirko2002
    • 6. Oktober 2011 um 11:23

    Hallo AutoIT'ler,

    ich habe meinem Skript so geschrieben, dass bevor die eigentliche GUI aufgeht, ein "Lade-GUI" mit Bootlogo kommt und darunter eine Progressbar.

    Momentan wird die Progressbar einfach nur mit einer Schleife gefüllt und anschliessend geht die GUI auf. So gesehen ist es derzeit eigentlich nur eine optische Verzögerung beim Start.

    Jedoch war mein eigentlicher Gedanke, dass die Progressbar als Ladebalken gehen soll bis die HauptGui aufgeht. Bei uns in der Arbeit sind die Netzlaufwerke sehr langsam, so das es einige Zeit dauert bis sich die GUI öffnet - daher wollte ich die Progressbar machen, damit man sieht wie weit der Ladevorgang schon ist.

    Bisher finde ich imemr nur Progressbars in Verbindung mit FileCopy oder Downloadstatus etc. Aber nichts um den Ladestand eines Programmes wiederzugeben.

    Mein Start erfolgt derzeit so:

    [autoit]


    #Region Animated Boot Logo
    FileInstall("M:\Agents\CT Profis\751076\wikiportable\Wiki.jpg", @TempDir & "\wiki.jpg", 1)
    $boot = GUICreate ("Loading Wiki... | Bitte warten... | Please wait...", 500, 600,-1, 20)
    GUICtrlCreatePic(@TempDir & "\wiki.jpg", 0, 0, 500, 600)
    WinSetOnTop($boot,"",1)
    DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $boot, "int", 2000, "long", 0x00080000 );fade-in
    $frmmain = GUICreate("Loading...", 600, 24, -1, 665, BitOr($WS_SYSMENU,$WS_POPUP,$WS_CLIPSIBLINGS))
    $pgbar = GUICtrlCreateProgress(0, 0, 600, 24)
    GUISetState()
    For $i = 1 To 102 Step 3
    $zahl = 100 / 100 * $i
    GUICtrlSetData($pgbar,$zahl)
    Sleep(50)
    Next
    Sleep(1000)
    DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $boot, "int", 1000, "long", 0x00090000 );fade-out
    GUIDelete($boot)
    GUIDelete($frmmain)
    #EndRegion Animated Boot Logo

    [/autoit]

    Hier sieht man wie die Progressbar gefüllt wird - ich möchte es aber mit dem Ladefortschritt der MainGui koppeln. Geht das oder kann ich den Gedanken vergessen?

    LG
    Mirko

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 5. Oktober 2011 um 23:05

    Wunderbar... nach etwas rumfummeln mit dem Code funktioniert er nun soweit in meinem Script.

    Zum testen verwende ich derzeit dieses kleine hier:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIEdit.au3>

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

    $hWnd = GUICreate("Test-GUI", 1299, 930, 0, 19)
    $cInput_Searchstring = GUICtrlCreateInput("", 5, 5, 235, 25)
    $cButton_Search = GUICtrlCreateButton("Suchen", 245, 5, 50, 25)
    Global $aEdits[2]

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

    GUICtrlCreateGroup("1. Error while connecting to Datasource / SQL Connect", 30, 285, 1220, 520)
    GUICtrlSetFont(-1, 12, 800, 0, "Verdana")
    FileInstall("M:\Agents\CT Profis\751076\wikiportable\wiki pics\FSM1.JPG", @TempDir & "\FSM1.JPG", 1)
    GUICtrlCreatePic(@TempDir & "\FSM1.JPG", 250, 330, 784, 146)
    GUICtrlCreateEdit("Problem:", 100, 1000, 100, 20, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)
    GUICtrlSetFont(-1, 9, 800, 4, "Verdana")
    GUICtrlSetColor(-1, 0xff0000)
    $aEdits[0] = GUICtrlCreateEdit("Das Programm lässt sich nicht starten, da der " & @CRLF & "Client sich nicht zum Server (in der Firma) " & @CRLF & "verbinden kann. Bzw., wenn es eine Client/Server " & @CRLF & "Installation ist, laufen die Service nicht " & @CRLF & "korrekt. Dieser Fehler entsteht, wenn die interne " & @CRLF & "Kommunikation nicht funktioniert.", 100, 520, 300, 100, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)
    GUICtrlSetFont(-1, 9, 400, 0, "Verdana")
    GUICtrlCreateEdit("Lösung:", 550, 500, 100, 20, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)
    GUICtrlSetFont(-1, 9, 800, 4, "Verdana")
    GUICtrlSetColor(-1, 0x00E900)
    $aEdits[1] = GUICtrlCreateEdit("Kunde soll als erstes den Service WorldProDatabaseServer resetten." & @CRLF & "Ausführen -> services.msc alternativ Systemsteuerung -> Verwaltung -> Dienste" & @CRLF & "Ist der Server gestartet?" & @CRLF & "Überprüfe folgende Einstellungen in den ODBC-Datenquellen:" & @CRLF & "Systemsteuerung -> Verwaltung - ODBC-Datenquellen -> System DNS -> Network" & @CRLF & "Überprüfe die IP Adresse und füge ;UDP=OFF hinzu (Bsp: 127.0.0.1;UDP=OFF)" & @CRLF & "Stimmt der Port? Stimmt der Servername in dessen Einstellungen mit dem im Client" & @CRLF & " eingetragenen überein? (ODBC). Überprüfe ob in der Firewall der Port 2638 nicht geblockt wird." & @CRLF & "* In modernen Routern ist auch eine Firewallfunktion! *" & @CRLF & @CRLF & 'Gehe zum Ordner "FSM Software/Data" und lösche die LOG Datei (nicht die Datenbank!)' & @CRLF & 'Gehe zum Ordner "FSM Software/Ship/" und starte die "dbeng6.exe"' & @CRLF & 'Suche die "fdxworld.db" Datei, in "Options" füge "-f" hinzu und klicke OK' & @CRLF & 'Starte die "dbeng6.exe" erneut, entferne "-f" und bestätige wieder mit OK' & @CRLF & 'Bei Servern anstatt der dbeng6.exe die dbsrv6.exe nutzen!' & @CRLF & 'Danach sollte die Software wieder laufen, probiere nun die Datenbank erneut zu starten.', 550, 520, 650, 250, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)
    GUICtrlSetFont(-1, 9, 400, 0, "Verdana")

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlEdit_Destroy($aEdits)
    Exit
    Case $cButton_Search
    For $i = 0 To UBound($aEdits) - 1
    $aSearch = _SearchString(_GUICtrlEdit_GetText($aEdits[$i]), GUICtrlRead($cInput_Searchstring))
    Switch @error
    Case 0
    _GUICtrlEdit_SetSel($aEdits[$i], $aSearch[0] - 1, $aSearch[1] - 1)
    ControlFocus($hWnd, "", $aEdits[$i])
    ExitLoop
    Case 2
    MsgBox(16, "Fehler", "Kein Suchwort eingegeben oder Textfeld leer.")
    ExitLoop
    EndSwitch
    Next
    If @error = 1 Then MsgBox(16, "Fehler", "Suchbegriff wurde nicht gefunden.")
    EndSwitch
    WEnd

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

    Func _SearchString($sText_Search, $sSearchString)
    If StringReplace($sText_Search, " ", "") = "" Or StringReplace($sSearchString, " ", "") = "" Then Return SetError(2, 0, 0)

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

    $iStringInStr = StringInStr($sText_Search, $sSearchString)
    If Not $iStringInStr Then Return SetError(1, 0, 0)

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

    Local $aReturn[2] = [$iStringInStr, $iStringInStr + StringLen($sSearchString)]
    Return $aReturn
    EndFunc ;==>_SearchString

    [/autoit]

    ich arbeite mit fast dem identischen aufbau im liveskript. Jedoch springt er nicht bei einem weitere Klick auf den Search Button zum nächsten gefunden Objekt. Als Beispiel der Suchbegriff "und"... das wort ist mehrmals enthalten - aber egal wie oft ich den Button anklicke, er wählt immer das zuerst gefundene aus - und würde es ausserhalb der sichtbaren GUI liegen, würde er auch nicht runter/hochscrollen.

    Für ListView und Combo hab ich solche Funktionen gefunden aber leider nicht für Edit. Gibt es hier noch eine Möglichkeit?

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 5. Oktober 2011 um 21:34

    Hallo progandy,

    erstmal vielen Dank das Du Dir die Zeit nimmst hier überhaupt zu helfen ;)

    Das das evtl über Arrays gelöst werden kann hatte ich auch schon im Kopf - jedoch ist Array auch wieder eine Ecke die mir zu hoch ist.

    An sich sagt ja dein Beispiel schon fast alles aus... nur den "Suche in $aEdit[$i] " Teil hast natürlich ohne Beispiel belassen ;)

    Da ich mich sehr als unwissender an das obige Skript klammer stellt sich die Frage, wie ich die Suche mit dem obigen code verwirklichen kann....

    Liebe Grüße
    Mirko

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 4. Oktober 2011 um 23:23

    Sorry wenn ich hier nochmal nachhake,

    aber leider ist mein AutoIt-Wissen zu begrenzt als das ich das mit den Schleifen verstehe. An sich verstehe ich schon Schleifen - aber nur in bestimmten Situationen. Da aber viele Situationen anders sind versteh ich eben nicht alle und die meinige erst recht nicht. Eigentlich, wenn ich es richtig sehe, müßte hier eine Do - Until - Schleife ausreichen? Aber ich versteh nicht genau wie ich es umsetzen muss :(

    Warum es hakt liegt einfach daran: Im Skript aus Post 8 durchsucht er speziell ja das Editfeld, welches vorher mit der Variable $cEdit_Text deklariert ist. Nun versteh ich aber nicht, wie ich ne Schleife mache kann und er alle anderen Editfelder durchstöbert ohne diese Variable... *sehr verwirrt bin* :(

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 1. Oktober 2011 um 14:16

    Ok ich hab nun die Suchfunktion eingebaut. Funktioniert auch. Das ist für mein Anfängerwissen auch schon sehr viel ;)

    Könntest Du mir ein kleines Beispiel schreiben wo er mit einer Schleife sowas durchsucht? Ich würde mir das Beispiel dann entsprechend anpassen. Derzeit durchsucht er halt wie erwähnt nur explizit ein Editfeld, welches mit der Variable $cEdit_Text deklariert ist (siehe Bsp oben von dem Skript - Beitrag 8 ).

    Ein weiteres Beispiel ist, dass er nicht weitersucht, wenn der Begriff 2x oder mehr enthalten ist - sobald er den ersten Eintrag gefunden hat bleibt er dort.

    Und als letztes (oh Gott, mir ist das unangenehm soviel zu Fragen) - er scrollt dabei nicht. Wenn meine GUI 900 Pixel vertikal ist und der Inhalt durch Scrollfunktion aber an Position 5000 steht scrollt er nicht runter.... er markiert zwar den gefundenen Text, man muss aber selber runterscrollen wobei man schnell den gefunden Suchbegriff übersehen kann :(

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 1. Oktober 2011 um 13:01

    Also ich hab derzeit folgendes Skript für eine Suche innerhalb der Editfelder. diese Version gefällt mir sehr gut - und eigentlich müßte es nur auf alle Editfelder ausdehnt werden - dann wär mein Ziel schon erreicht ;)

    [autoit]

    #include <GUIConstants.au3>
    #include <GUIEdit.au3>

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

    $hWnd = GUICreate("Search Example", 300, 350)
    $cEdit_Text = _GUICtrlEdit_Create($hWnd, "", 5, 40, 290, 290, BitOR(0x0040, 0x0100, 0x0004, 0x00200000))
    $cInput_Searchstring = GUICtrlCreateInput("Suchwort", 5, 5, 235, 25)
    $cButton_Search = GUICtrlCreateButton("Suchen", 245, 5, 50, 25)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _GUICtrlEdit_Destroy($cEdit_Text)
    Exit
    Case $cButton_Search
    $aSearch = _SearchString(_GUICtrlEdit_GetText($cEdit_Text), GUICtrlRead($cInput_Searchstring))
    Switch @error
    Case 0
    _GUICtrlEdit_SetSel($cEdit_Text, $aSearch[0] - 1, $aSearch[1] - 1)
    ControlFocus($hWnd, "", $cEdit_Text)
    Case 1
    MsgBox(16, "Fehler", "String wurde nicht gefunden.")
    Case 2
    MsgBox(16, "Fehler", "Kein Suchwort eingegeben oder Textfeld leer.")
    EndSwitch
    EndSwitch
    WEnd

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

    Func _SearchString($sText_Search, $sSearchString)
    If StringReplace($sText_Search, " ", "") = "" Or StringReplace($sSearchString, " ", "") = "" Then Return SetError(2, 0, 0)

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

    $iStringInStr = StringInStr($sText_Search, $sSearchString)
    If Not $iStringInStr Then Return SetError(1, 0, 0)

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

    Local $aReturn[2] = [$iStringInStr, $iStringInStr + StringLen($sSearchString)]
    Return $aReturn
    EndFunc

    [/autoit]

    Jedoch wird in diesem Beispiel mit _GUICtrlEdit_Create gearbeitet während ich in meinen Skript das "normale" GUICtrlCreateEdit verwende (und davon halt fast hundert Stück)...

  • Labels - bessere Gestaltung und Suchfunktion

    • mirko2002
    • 1. Oktober 2011 um 12:13
    Zitat von progandy

    HTMLayout wäre auch eine Alternative. Dann kannst du mit einer Untermenge von HTML und CSS deine Textte gestalten. Eine Suche ist sicherlich auch irgendwie möglich.

    Wenn ich das richtig sehe ist dies ein eigenes Programm, was mit AutoIt nichts zu tun hat, oder? Werd es mir mal anschauen. Danke für den Tipp.

    Jedoch möchte ich gern auch eine AutoIt alternative wissen, da ich mein Wissen dort ebenfalls erweitern möchte ;)

    Dsa Beispiel mit ListView habe ich auch schon überlegt. Jedoch hab ich derzeit doch grad auf Editboxen zurückgegriffen. woanders erhielt ich den Tipp mit den Styles, wo ich die Editboxen praktisch unsichtbar mache was dem Layout der Labels also gleichkommt.

    Würde sich für mich jedoch dann die Frage mit der Suche stellen. Ich weiß, dass man Suchen über die Editbox laufen lassen kann, jedoch halt auf das eine Editfeld beschränkt.

    Hätte jemand ein kleines Beispiel wie ein Suchfeld über mehrere Editboxen hinweg sucht?

    Vielen lieben Dank im voraus für Eure mithilfe!

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™