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

Beiträge von alpines

  • [Gelöst] SQLite Problem mit Update ... set ... Funktion

    • alpines
    • 28. März 2018 um 20:59

    Nein, die SQLite3.dll muss nicht zwangsweise in den Include-Ordner, es ist sogar so, dass du sie lieber im Skriptverzeichnis verwahren solltest, damit, wenn du mal deine Anwendung verschickst, die Leute die DLL nicht erstmal herunterladen müssen.

    Pack sie einfach als sqlite3.dll in dein Skriptverzeichnis und verwende in _SQLite_Startup() als Pfad den Pfad im Skriptverzeichnis zur Datei.

  • [Gelöst] SQLite Problem mit Update ... set ... Funktion

    • alpines
    • 28. März 2018 um 20:51
    Zitat von autoiter

    Das stimmt nicht

    Guck dir das Beispiel mal an, die Datei wird im wd erstellt und landet deshalb nicht mehr im Skriptverzeichnis.

    Wenn man nun bspw. eine ExitGUI-Funktion hat die viele IniWrites verwendet (ohne @ScriptDir) landen alle diese Funktionen im neuen wd anstatt im Skriptverzeichnis.

    Das ist mir erst letztens aufgefallen nachdem ich mich gewundert habe warum meine Einstellungsdateien plötzlich in den Ordnern war in denen ich Dateien mit FileOpenDialog ausgewählt hatte.

    Ich verstehe nicht mal warum FileOpenDialog automatisch das wd ändert. Eine kurze Recherce zeigt mir, dass es wohl eine Marotte von Windows ist.

    Ich verwende oft aus Faulheit einfach nur "Bla.txt" statt @ScriptDir & "\Bla.txt", und da bin ich sicherlich nicht der einzige.

    Das ist natürlich kein Fehler aber man sucht sich dumm und dämlich wenn man nicht weiß, das FileOpenDialog sowas macht.

    Dateien

    test.rar 243 Byte – 384 Downloads
  • [Gelöst] SQLite Problem mit Update ... set ... Funktion

    • alpines
    • 28. März 2018 um 20:44
    Zitat von autoiter

    Du musst die dll auch nicht im include-Verzeichnis vorhalten, sondern könntest sie auch etwa im Sktriptverzeichnis haben, in dem du das WorkDir mit FileChangeDir anpasst.

    Das ist meiner Meinung nach keine gute Idee. Wenn man Pfadangaben im Skript verwendet, die ohne @ScriptDir auf das aktuelle Working Directory zugreifen (und das ist fast immer das Scriptverzeichnis), werden alle diese Referenzen ungültig werden. Da ist es einfacher einfach als 1. Parameter den Pfad zur DLL anzugeben.

  • MYSQL - Insert Into Pfad Problem

    • alpines
    • 28. März 2018 um 13:23
    Zitat von AspirinJunkie

    Jedoch der Umstand darüber zu schreiben dass du eigentlich etwas schreiben wolltest es aber dann gelassen hast, hat hingegen für dich dann die Bedeutungsschwelle zum tatsächlichen Schreiben überschritten?

    Volltreffer.

  • MYSQL - Insert Into Pfad Problem

    • alpines
    • 28. März 2018 um 13:10
    Zitat von AspirinJunkie

    Nicht ganz - er hat einzelne Backslashes durch einzelne Backslashes ersetzt.

    Ich wollte es auch schreiben aber dachte mir nur, mehh.

  • Abbrechen Button in zweiter Schleife ohne Funktion

    • alpines
    • 28. März 2018 um 12:22

    Und wieder Dinge die die Welt nicht braucht. Anstatt den Codern die Bevollmächtigung zu geben alles zu machen was er nur kann hält man ihn für unfähig und baut ein Sleep ein.

    Als ob das noch nicht reicht versteckt man es irgendwo in der Dokumentation wo man das nur mitbekommt wenn man sie sich von vorn bis hinten und oben nach unten alles genauestens durchliest.

    Sleep(10) hatte bei mir persönlich zumindest noch nie für Probleme gesorgt (und Sleep(100) ging sogar glaube ich auch noch).

    Ein Grund mehr für mich nur noch komplett in den OnEventModus zu wechseln.

  • GUI erstellen Problem

    • alpines
    • 28. März 2018 um 12:18

    Das hast du mit $ExcelP gemacht aber nicht mit $ExcelPfad! Generell solltest du darauf verzichten in Funktionen globale Variablen zu deklarieren, da das zu Inkonsistenzen führen kann und du dann später sehr viel Zeit aufwenden musst diese zu lösen.

    Wenn du keine weiteren GUIs hast empfiehlt es sich lieber die GUI nicht in eine Funktion zu packen (ich nehme mal an du hast es von der Hilfe her so übernommen, dort werden nämlich alle GUI-Beispiele in eine Example()-Funktion gepackt).

    An deiner Codeformatierung solltest du auch noch ein wenig arbeiten, du hast alles eingerückt was zusammengehört (sehr schöne Idee für GUICtrlSetState und GUICtrlSetOnEvent...) aber es steht alles so nah beinander, dass man sich auf die schnelle verlesen könnte.

    Deine GUI bleibt auch nur wenn überhaupt 15 Sekunden offen ohne Buttons anklicken zu können (wenn sie sich überhaupt öffnen würde). Zudem solltest du den OnEventModus schon vor der GUI-Deklaration setzen und nicht danach, da es dort auch vielleicht zu Problemen kommen könnte.

    Variablen die du übrigens im globalen Scope deklarierst (also außerhalb von Funktionen) sind immer Global, egal ob du sie dort mit Local oder Dim erzeugst.

    Das Script habe ich mal ein wenig korrigiert, deine Formatierung habe ich weitestgehend gelassen aber die Struktur ein wenig verändert.

    AutoIt
    #include <Constants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <Date.au3>
    #include <File.au3>
    #include <Array.au3>
    
    Global $ExcelP, $ProgrammP, $InstallP
    
    Opt("GUIOnEventMode", 1)
    
    $Toolbox = GUICreate("Toolbox", 1400, 800,-1,-1,-1)
        GUISetBkColor(0x444444)
        GUISetOnEvent($GUI_EVENT_CLOSE, ExitApp)
    
    $Tab = GUICtrlCreateTab(0,0,1400,800)
    
    GUICtrlCreateTabItem("Programme")
        GUICtrlSetState(-1, $GUI_SHOW)
        $Tools = GUICtrlCreateList("",0,20,400,200)
    
    GUICtrlCreateTabItem("Filialen")
        $LadenF = GUICtrlCreateButton("Laden", 600, 20, 80, 40)
            GUICtrlSetOnEvent($LadenF, "LadenF")
        $SpeichernF = GUICtrlCreateButton("Speichern", 720, 20, 80, 40)
            GUICtrlSetOnEvent($SpeichernF, "SpeichernF")
    
    $Settings = GUICtrlCreateTabItem("Einstellungen")
        GUICtrlSetOnEvent($Settings, "BackupS")
    
        $ExcelPfad = GUICtrlCreateInput("",600, 100, 500, 20,-1,-1)
            GUICtrlSetData($ExcelPfad, "Pfad_und_Dateiname_wegen_Sicherheit_raus_genommen.xlsm")
    
        GUICtrlCreateLabel("Hier den Pfad zur Exceldatei angeben:", 350, 105, 250, 20)
        $ProgrammPfad = GUICtrlCreateInput("",600, 140, 500, 20,-1,-1)
            GUICtrlSetData($ProgrammPfad, "C:\Software\Originale\")
    
        GUICtrlCreateLabel("Hier den Pfad zu den Programmen angeben:", 350, 145, 250, 20)
        $InstallPfad = GUICtrlCreateInput("",600, 180, 500, 20,-1,-1)
            GUICtrlSetData($InstallPfad, "C:\Software\Installation\")
    
        GUICtrlCreateLabel("Hier den Pfad zum Installationsordner angeben:", 350, 185, 250, 20)
        $SpeichernE = GUICtrlCreateButton("Speichern", 720, 220, 80, 40)
            GUICtrlSetOnEvent($SpeichernE, "SpeichernE")
    
        $AbbrechenE = GUICtrlCreateButton("Abbrechen", 600, 220, 80, 40)
            GUICtrlSetOnEvent($AbbrechenE, "AbbrechenE")
    
    ;~$logoutput = GUICtrlCreateEdit("", 10, 10, 780, 780, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY)
    ;~    GUICtrlSetBkColor($logoutput, 0xffffff)
    
    GUISetState(@SW_SHOW, $Toolbox)
    
    ;Die Schleife hält das Programm am Laufen, die Events lösen die Funktionen aus.
    While Sleep(1000)
    WEnd
    
    Func ExitApp()
        Exit
    EndFunc
    
    Func SpeichernE()                                                                ; Note: At this point @GUI_CtrlId would equal $SpeichernE and @GUI_WinHandle would equal $Toolbox
    
    EndFunc                                                                           ;Einstellungen Speichern
    
    Func AbbrechenE()
       GUICtrlSetData($ExcelPfad, $ExcelP)
       GUICtrlSetData($ProgrammPfad, $ProgrammP)
       GUICtrlSetData($InstallPfad, $InstallP)
    EndFunc                                                                           ;Einstellungen Abbrechen
    
    Func LadenF()
    
    EndFunc                                                                           ;Filialen (Excel) Laden
    
    Func SpeichernF()
    
    EndFunc                                                                           ;Filialen (Excel) Speichern
    
    Func BackupS()
       $ExcelP = GUICtrlRead($ExcelPfad)
       $ProgrammP = GUICtrlRead($ProgrammPfad)
       $InstallP = GUICtrlRead($InstallPfad)
    EndFunc                                                                           ;Backup der Einstellungen für Abbruch beim öffnen des "Einstellungen" Tab
    Alles anzeigen
  • Programm gesucht

    • alpines
    • 27. März 2018 um 20:06
    Zitat von AspirinJunkie

    Zauberer?!?

    Installer!

  • Abbrechen Button in zweiter Schleife ohne Funktion

    • alpines
    • 27. März 2018 um 16:23

    Das Problem ist, dass du in Zeile 48 $msg verwendest, allerdings beinhaltet $msg die Nachricht die abgeschickt wurde als der OK-Button gedrückt wurde.

    Neue Nachrichten, die durch Betätigen der anderen Buttons ausgelöst werden, werden von dir nicht beachtet. Du müsstest statt $msg dort eigentlich GUIGetMsg() verwenden,

    denn das liefert dir immer die aktuellste Nachricht zurück.

    Außerdem ist deine Schleifenkonstellation so nicht zu gebrauchen, denn sie ist ziemlich cpu-intensiv (du sleepst da nirgends) und du brauchst so eine zweite MsgLoop innerhalb der anderen MsgLoop.

    Am besten du packst das ganze in die übergeordnete Schleife und hast in den Cases nur die Einstellungen. In etwa so:

    AutoIt
    Global $bAktiviert = False
    Global $iHour, $iMin
    
    While Sleep(10)
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
    
            Case $Ok
                $bAktiviert = True
                    
                $iHour = GUICtrlRead($Stunde)
                $iMin = GUICtrlRead($Minute)
                
            Case $Abbrechen1
                $bAktiviert = False
        EndSwitch
        
        If $bAktiviert and @HOUR = $iHour and @MIN = $iMin Then
            Shutdown(0)
        EndIf
    WEnd
    Alles anzeigen
  • GUI resizeable gestalten

    • alpines
    • 27. März 2018 um 16:15
    Zitat von MacG

    Die Zahl 136 bei der Formel für die Schriftgröße ist ein Erfahrungswert von Dir? Bzw. sollte diese Zahl abhängig vom DPI-Wert sein?

    Und noch eine letzte Frage für heute: Kann man eine minimale Größe für das Fenster festlegen, oder nur für Controls?

    Die 136 ist die Standardgröße des Labels, wenn du das ganze so machen willst wie ich es vorgemacht habe solltest du statt hardgecodeten Zahlen Variablen verwenden, damit du sie nur an einer Stelle anpassen musst und sie im gesamten Script gültig sind.

    Das ist nur ein kleines Beispiel wie man das berechnen kann, du musst natürlich noch die Höhe berücksichtigen (oder du erlaubst nur, dass man das Fenster skaliert vergrößern kann und nicht nur horizontal/vertikal). Die Zahl sollte mit dem DPI-Wert umgerechnet werden, damit die Schrift auch auf Monitoren mit anderem DPI-Wert hübsch angezeigt werden.

    @Musashi hat da ein wunderschönes Beispiel gepostet das du dir mal anschauen solltest! Kleines Desktop-Spiel (ChipHunter)

    Diese Zahl verrechnest du ähnlich wie mit der Fenstergröße und schwupps hast du ein Programm welches beim Resizen die Größe anpasst und auf jedem Rechner gleich aussieht!

    Für minimale Größen musst du eine andere Windows Nachricht registrieren, diese lautet WM_GETMINMAXINFO.

    Ich habe letztens erst ein kleines Beispiel gepostet wie man dort die minimale Größen registrieren kann (auch maximale Größen sind möglich!).

    Fenster Größe veränderbar - Minimum nicht unterschreiten

  • GUI resizeable gestalten

    • alpines
    • 27. März 2018 um 14:52

    Ja Koda ist schon ein wenig in die Jahre gekommen und wird glaube ich auch nicht mehr weitergearbeitet.

    Generell empfiehlt es sich in Koda die Eigenschaft "AutoSize" für Labels zu deaktivieren wenn man feste Größen haben möchte.

    Wenn du deiner GUI noch den Style $WS_SIZEBOX verpasst, dann kannst du das Fenster auch verziehen und die ganzen Controls werden dementsprechend angepasst.

    Allerdings nur die Position + Größe! Wenn du die Schriftgröße anpassen musst musst du berechnen wie viel größer dein Fenster geworden ist und es mit der Schriftgröße verrechnen.

    Da gibts sogar bereits einige Beispiele im Internet dafür, ich hab dein Skript mal angepasst um es zu resizen und hab mal ein einfaches Beispiel gebastelt wie man das FontResizing realisieren kann.

    Es wird die WM_SIZE-Nachricht abgefangen (die schickt Windows immer wenn die Fenstergröße angepasst wird) und dann wird anhand der Länge (für eine gute Skalierung muss man auch Höhe in Betracht nehmen) die Schriftgröße angepasst. Aktuelle Größe / Normale Größe * Normale Schriftgröße (Z. 180).

    Probiers mal aus in dem du das Fenster horizontal streckst, das Label oben links skaliert, von der Schriftart her, mit.

    Wenn du das für alle Controls machst und eine minimale Größe festlegst kannst du das Programm für alle Bildschirmauflösungen verwenden.


    Es empfiehlt sich noch die DPI-Einstellung des Rechners auszulesen, da fast alle Nutzer die 4K oder eine ähnliche Auflösung haben, mit einem DPI-Wert von >100% arbeiten.

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    
    Local $Blink = 1, $sec = @SEC
    
    #Region ### START Koda GUI section ### Form=G:\AutoIt\TS-Fireman\Koda LOD-GUI.kxf
    $Form1 = GUICreate("LOD - Main Operation Screen", 1001, 751, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME))
    GUISetBkColor(0x000000)
    $Group2 = GUICtrlCreateGroup("Unit ID", 665, 0, 332, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label8 = GUICtrlCreateLabel("ARR 4004", 717, 32, 221, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("", 0, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("", 85, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group5 = GUICtrlCreateGroup("", 170, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group6 = GUICtrlCreateGroup("", 255, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group7 = GUICtrlCreateGroup("", 340, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label13 = GUICtrlCreateLabel("HEAD" & @CRLF & "LIGHTS", 345, 260, 77, 67, $SS_CENTER) ;editiert
    GUICtrlSetFont(-1, 16, 800, 0, "Arial") ;editiert
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFFFBF0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group8 = GUICtrlCreateGroup("", 573, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group9 = GUICtrlCreateGroup("", 658, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group10 = GUICtrlCreateGroup("", 743, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group11 = GUICtrlCreateGroup("", 828, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group12 = GUICtrlCreateGroup("", 913, 250, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group13 = GUICtrlCreateGroup("", 425, 250, 150, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Alerter = GUICtrlCreateLabel("ALERTER", 429, 259, 143, 70, BitOR($SS_CENTER,$SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 18, 800, 0, "Arial")
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFF0000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group14 = GUICtrlCreateGroup("", 573, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group15 = GUICtrlCreateGroup("", 658, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group16 = GUICtrlCreateGroup("", 743, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group17 = GUICtrlCreateGroup("", 828, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group18 = GUICtrlCreateGroup("", 913, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group20 = GUICtrlCreateGroup("", 403, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group21 = GUICtrlCreateGroup("", 488, 332, 87, 82)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group19 = GUICtrlCreateGroup("ER", 2, 0, 165, 150, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("111", 20, 48, 136, 93, $SS_CENTER)
    GUICtrlSetFont(-1, 60, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group22 = GUICtrlCreateGroup("BP", 170, 0, 165, 150, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label2 = GUICtrlCreateLabel("110", 188, 48, 136, 93, $SS_CENTER)
    GUICtrlSetFont(-1, 60, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group23 = GUICtrlCreateGroup("Rear", 2, 152, 80, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label3 = GUICtrlCreateLabel("111", 14, 184, 58, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group24 = GUICtrlCreateGroup("Flow", 86, 152, 80, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label4 = GUICtrlCreateLabel("31", 98, 184, 58, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group1 = GUICtrlCreateGroup("MPH", 340, 0, 320, 150, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label7 = GUICtrlCreateLabel("4.1", 428, 32, 144, 116, $SS_CENTER)
    GUICtrlSetFont(-1, 75, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group25 = GUICtrlCreateGroup("Main", 170, 152, 80, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label5 = GUICtrlCreateLabel("132", 182, 184, 58, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group26 = GUICtrlCreateGroup("BC", 254, 152, 80, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label6 = GUICtrlCreateLabel("0", 266, 184, 58, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group27 = GUICtrlCreateGroup("Distance Counter", 665, 75, 332, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label9 = GUICtrlCreateLabel("0 feet", 717, 107, 220, 40, $SS_RIGHT)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group28 = GUICtrlCreateGroup("Power", 340, 152, 320, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label10 = GUICtrlCreateLabel("120 Amps", 488, 184, 148, 40, $SS_RIGHT)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group29 = GUICtrlCreateGroup("Throttle", 665, 152, 164, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label11 = GUICtrlCreateLabel("N 1", 717, 184, 54, 40, $SS_RIGHT)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group30 = GUICtrlCreateGroup("Reverser", 833, 152, 164, 75, BitOR($GUI_SS_DEFAULT_GROUP,$BS_CENTER))
    GUICtrlSetFont(-1, 16, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $Label12 = GUICtrlCreateLabel("FWD", 853, 184, 120, 40, $SS_CENTER)
    GUICtrlSetFont(-1, 24, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    GUIRegisterMsg($WM_SIZE, WM_SIZE)
    
    While 1
    
        $nMsg = GUIGetMsg()
    
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
        EndSwitch
    
        _BlinkText($Alerter, 0xFF0000)
    
        GUICtrlSetData($Label6, $sec)
    
    WEnd
    
    Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
        $aSize = ControlGetPos($Form1, "", $Label1)
    
        GUICtrlSetFont($Label1, $aSize[2] / 136 * 60)
    EndFunc
    
    Func _BlinkText($BlinkLabel,$BlinkColor)
        If @SEC <> $sec Then
            $sec = @SEC
            If $Blink Then
                GUICtrlSetBkColor($BlinkLabel, 0x000000)
            Else
                GUICtrlSetBkColor($BlinkLabel, $BlinkColor)
            EndIf
            $Blink = Not $Blink
        EndIf
    EndFunc
    Alles anzeigen
  • GUI resizeable gestalten

    • alpines
    • 27. März 2018 um 14:01

    Du musst einfach nur eine Vorlage erstellen.

    Erstell in Koda das Fenster mit einer bestimmten Auflösung (z.B. minimum) und dann stellst du das Resizing ein und probierst es aus indem du das Skript in Koda startest und die Fenstergröße variierst.

    Die neuen Positionen werden anhand der Startkoordiation und des Resizingmodus' bestimmt.

  • GUI resizeable gestalten

    • alpines
    • 27. März 2018 um 13:27

    Du könntest deine GUI mit den Standard Resizing-Funktionen anpassen (GUICtrlSetResizing) und dazu noch eine minimale Größe festlegen.

    Mit dem Resizing hast du den Vorteil, dass du nicht die Controls selber verschieben (oder in Variablen irgendwie komisch speichern musst) sondern du legst einen Resizing-Modus fest (DockLeft + DockRight, oder wie du es willst) und wenn du die Größe des Fensters veränderst vergrößern/verkleinern und verschieben sich die Controls automatisch mit.

  • Hallo aus Sachsen

    • alpines
    • 27. März 2018 um 12:52

    Herzlich Willkommen im Forum!

    Klingt als ob du schon eine Menge mit AutoIt gemacht hättest, du kannst ja bei Gelegenheit mal ein paar Skripte im Skriptforum vorstellen wenn du möchtest :)

  • Bug in aktueller Autoit Version Makro ?

    • alpines
    • 26. März 2018 um 22:18
    Zitat von Converter

    wo finde ich die Infos zu der

    https://www.autoitscript.com/wiki/AutoIt3Wrapper_Directives

  • Virus in *.EXE

    • alpines
    • 26. März 2018 um 20:40
    Zitat von Peter S. Taler

    eigentlich sollte man den Scanner Herstellern auf die Füße treten und massenweise false/positv Meldungen verschicken - die Kerle nehmen ja schließlich Geld für die Scanner

    Wenn es einen AutoIt-Virus gibt und der Stub als Signatur eingetragen wird, dann werden alle Kompilate als False/Positive erkannt.

    Natürlich könnte man diesen Whitelisten (und das wird auch so gehandhabt) aber wenn eine neue Revision draußen ist beginnt das ganze Spiel wieder von vorn.

    Also sind denen mehr oder weniger die Hände gebunden wenn das AutoIt-Devteam nicht persönlich zu den AV-Herstellern geht.

  • Virus in *.EXE

    • alpines
    • 26. März 2018 um 17:38

    Du kannst auch das ganze übrigens mit bereits kompilierten Scripten machen. Die musst du nur mit einem bestimmten Kommandozeilenbefehl ansprechen und dann führst du statt dem kompiliertne Script innerhalb der Exe eine .a3x oder .au3 Datei aus.

  • Virus in *.EXE

    • alpines
    • 26. März 2018 um 17:20

    Nein, was er meint ist schlicht und einfach das Script als .a3x im Compiler zu verschlüsseln.

    Die AutoIt3.exe (also der Interpreter im Root-Installationsverzeichnis) sollte, für gewöhnlich, keine Virenmeldungen auslösen.

    Wenn du dein Script nun als .a3x "compilest" wird es praktisch einfach nur verschlüsselt (die Dateigröße ist paar kB, so groß wie das Script in etwa) und es wird kein Interpreter gebunden.

    Virenprogramme meckern nämlich meistens über den AutoIt-Stub (der Interpreter) der in die Exe gehangen wird.

    Wenn du aber die AutoIt3.exe mit .a3x verschickst, und keine Virenmeldung auftaucht, brauchst du nur das Script auf die Exe zu ziehen und es läuft wie normal.

  • Virus in *.EXE

    • alpines
    • 25. März 2018 um 11:47

    Hast du dein Script mit UPX kompiliert, denn AVs meckern dann häufiger rum.

    Außerdem solltest du deine AutoIt-Version updaten, da diese doch sehr in die Jahre gekommen ist und die neue eventuell bei dir keine Virenmeldung auslöst.

    Ansonsten hilft eigentlich nur Defender zu deaktivieren, wenn man Avira schon drauf hat braucht man ja nicht noch den dazu.

  • CSV-Extractor

    • alpines
    • 24. März 2018 um 10:33

    autoiter ich hab Raupi mal angetextet, ob er nicht das Limit anheben könnte. Ursprünglich waren 10 MB geplant gewesen (die Forensoftware streikt da) aber die Anhänge gehen jetzt zumindest bis 5 MB. Also kannst du die Parts wieder löschen und als einzelne .rar hochladen :)

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™