Beiträge von MojoeB

    irgendwie wird außeracht gelassen das er meine Funktionen einfach benutzen kann.

    Es funktioniert.


    Grad mal aus POST #18 deinen Code kopiert meine funktionen reingesetzt und das script leicht verändert.

    sieh :


    Edit habs nochmal auf dich angepasst.


    die unnötigen stellen weggemacht und die Änderung kommentiert.


    Du solltest mit copie pase direkt loslegen können.

    deine GUIS habe ich in Array gepackt weil ich es leichter finde.


    und wenn du genau hinschauen würdest du erkennen was grundlegend anders an meinem Code ist. ich benutze nur 1 While schleife für alle deine guis,.

    Ich lasse die guis ganz normal in einer Funktion erstellen blos das die elemente eingekachelt sind und direkt als array gesichert (_arrayadd()) werden.

    Damit du weitere Details hast ob das nun im array an 1 oder 2 stelle dein Configbutton ist wird in der zweiten spalte des GUI arrays das Control ausgelesen welche dir deine vergebenen daten anzeigt.

    Die erste spalte sind dann die Controlid selber.

    Man muss es nicht machen aber ich dachte vielleicht verstehst du dann besser, du musst dich auch schon ein klein wenig mit der Materie beschäftigen.

    Vor der While schleife, lasse ich die Guis durch die Funktion erstellen. Der Rückgabe wert wird dann mit Arraydisplay kannst du dir anzeigen lassen was alles im Array ist.

    zwischen zeile 28 und 32 weiße ich die handels der fenster, halt die ControlIDs in ein neues arrays hinzu um es in der While schleife dann einfacher zu erkennen was zu gui 1(handel) oder 2(handel) gehört.



    nein mein Code funktioniert aber ich kannte deine

    #include
    <GuiCtrlSetOnHover_UDF.au3>


    nicht, deshalb hab ich sie mir aus dem netz gezogen und dort heißt diese GuiCtrlOnHover.au3


    benenne Zeile 6 einfach in
    #include <GuiCtrlSetOnHover_UDF.au3>

    :saint:



    ich weiß nicht was du mit

    Code
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc


    erreichen möchtest.

    was ich grad sehe


    C:\Program Files\ <- versuch mal scrite mit admin zu starten(per kontextmenu) und dann dein skript auszuführen.


    $nMSG kommt auch 2 mal vor einmal als global und einmal als local

    du hast in der func global variablen da sollten nur local rein


    deswegen geht es bestimmt nicht da du $file bestimmt öfter hast.


    nur eine Vermutung.

    meinst du so?


    Edit bei langen listen :

    Code
    #include <Timers.au3>
    $iTimer = _Timer_GetIdleTime()
    
    Select
    Case $iTimer < 3000
    Case Else
    $aSpeicher = test($viewlist, $aSpeicher)
    EndSelect



    so einbauen sonst kannst du keine Controls mehr benutzen weil er sonst immer wieder die Namen vergleicht ob sich du einen Ordner umbenannt hast.

    solange du deine Maus bewegst wird er das somit nicht mehr tun. erst nach 3 sec idle tastatur und maus.


    Edit :


    ^^ich habe nochmal umgebaut nun mit Progress bar um sichtbar zu machen ob auch alle Ordner geladen sind und eine Inputbox damit du den Pfad auf der gut bestimmen kannst.

    Hallo Kanashius,

    das mit dem Hash war auch nur eine Idee, es würde ja schon eine Random Zahl reichen die ich in eine Extra Tabelle lege, und immer wenn ich eine Änderung mache die Zahl random ausgetauscht wird und als $var im Script dann gespeichert wird, dann kann ich diese zahlen vergleichen und wenn diese Zahl eine andere ist als in der DB, dann aktualisiere meine Listen in der Viewlist, und passe die Zahl der Zahl in der DB an. das ist quasi das gleiche wie zu deinem Punkt 1. beschrieben hast. Aber meine Standart Tabellen wollte ich jetzt eigentlich nicht unbedingt verändern. Deshalb die Idee mit einfach einer neuen Tabelle aber in der selben Datenbank die nur diesen einen Eintrag besitzt.




    eine Messagequeue o.ä. vorzuschalten.

    Du meinst direkt in der Datenbank?
    Da bin ich noch zu ungeübt :). Oder meinst du die While schleife in autoit.


    Zu 2.:

    Es macht vmtl. Sinn, die Aktualisierung nur laufen zu lassen, wenn das Fenster im Fokus ist, bzw. wenn es nicht im Fokus ist, zu checken, ob es sichtbar ist (Ansätze dafür: https://www.autoitscript.com/f…heck-if-window-is-on-top/). Ggf. dann noch ein check auf IDLE.

    genau das habe ich am Anfang auch gedacht, wusste bloß nicht wie es umsetzte ich schaue es mir heute Abend den link mal genauer an.
    Danke schon mal für die unterstützenden worte :).


    EDIT :@ Kanashius, habe den ersten link in deinem schreiben erst grad entdeckt ^^ das sieht vielversprechend aus

    So Leute habe nun einen Server laufen wo ich auch raufkomme ^^

    Mein Script läuft auch mit dem Verbindung auf die MariaDB etc. bearbeiten hinzufügen geht alles.


    In meiner GUI werden auch Listen angezeigt aus der DB, diese werden im Zeitinervall über $iTimer = _Timer_GetIdleTime() ausgelöst.


    Das ist bei dem Programm 1 auch kein Problem da die Anwender nur selten am PC sind, aber Programm 2 wird ständig benutzt das da entweder nur eine sehr kurze $iTimer = _Timer_GetIdleTime() funktionieren würde.

    Aber dann hat man das Problem das die GUI sehr oft aktualisiert und dann flackert, zu mindestens die sichtbaren Bereiche


    1. Da immer wieder die DB abgefragt wird und die komplette Liste neu ins array kommt und somit in die Viewlist neureingeladen wird, kann man das irgendwie umgehen sodass nur das element abgeändert wird das auch in der DB geändert wurde?


    2. Kann man die _Timer_GetIdleTime() evtl. auch nur auf das einzelne Programm/script beziehen und nicht auf den kompletten Rechner? Oder kann man irgendwie einen hash von der DB auf der ich eingeloggt bin erzeugen und wenn dieser sich ändert dann erst wieder eine Aktualisierung stattfindet?



    das mit dem hash wäre mir am liebsten, bei meiner ftp Lösung hatte das damals wunderbar funktioniert, jedoch habe ich ja keine einzelne Datei wo ich den hash erstellen könnte.


    :Face:


    EDIT : jetzt wo ich so darüber nachdenke, könnte ich ja einfach in der DB eine extra Tabelle machen mit einem hash der sich jedes Mal ändert sobald eine Änderung oder neu Eingabe in die DB hinzukommt.


    oder habt Ihr dennoch einen besseren vorschlag?

    ich kenn mich nicht aus mit UTF-8... aber wie sind den deine Tabellenspalten formatiert in der DB.


    Ich glaube Velted hat das hier gemeint :

    ;$sSQLstring enthält ein gültiges SQL-Statement, das wie folgt konvertiert werden muß: $sSQLstringUTF8 = _WinAPI_WideCharToMultiByte($sSQLstring,65001) ;Konvertierung ConsoleWrite($sSQLstringUTF8&@CRLF) ;Ausgabe an Konsole $oQueryResult = _SQLQuery($oConn, $sSQLstringUTF8) ;Ausgabe an DB

    habe auch schon mit rumgespielt bin aber auch zu keinem Ergebnis gekommen.

    - Array-Funktionen sind nicht nötig. Die Anzahl der Elemente sind bekannt, das Array kann somit mit erforderlicher Zahl deklariert und per Indexierung belegt werden.

    - Speichern der Ctrl-Namen ist nicht erforderlich, kann bei Bedarf über die ID abgefragt werden (s. hier: GuiCtrlInfo.au3)

    - Ich würde z.B. ein gemeinsames 2D-Array für hWnd und ID führen: [[hWnd_1,ID_1], [hWnd_1,ID_2],..,[hWnd_1,ID_n],[hWnd_2,ID_1], [hWnd_2,ID_2],..,[hWnd_2,ID_n]] , aber das ist Geschmackssache



    Hey Bugfix :) habs mir mal GuiCtrlInfo.au3 grad angesehen ich glaub das wird mir für die Zukunft eine menge zeit sparen :):thumbup:



    Dieser "Mixed Mode" erfordert Konzentration und Disziplin.

    JA das hab ich gemerkt :D, danke für :thumbup:

    Nunja ich meine Manipulation,
    weil es ist eine Sicherheitsmaßname ist die zuständig die nur autorisierte Personen berechtigt.


    Wenn man das nun auslesen könnte, kann man den Fingerabdruck auch elektronisch speichern.

    Und immer wieder verwenden.

    Und somit die Sicherheitsmaßnahmen aushebeln. Wo ist dann der Sicherheitsaspekt ?


    Wie MS Windows Hello genau funktioniert, kann ich dir leider nicht sagen, das könnte nur MS.


    Vielleicht mit einem Gerät was nicht unter Windows Hello läuft.

    Diese sind aber auch nicht ganz billig & mehr für Türen gedacht.

    Zum teil müssen diese auch selbst programmiert werden.

    - AES Schlüssel festlegen.

    - Finger einscannen.

    - Zeit Schaltung ja/nein

    etc.


    Wie es mit einem Billig USB - teil aussieht kann ich dir nicht sagen.

    Ich glaube du rufst eine gui in der funktion gui auf.


    Ich habe dir mal ein kleines beispiel erstellt wie ich das mache um bei großen Projekten etwas die Übersicht zu wahren.


    Vielleicht hilft dir das.


    ich bin so doof..... das ganze umdrehen und es funktioniert.


    wobei der name `db 1` mit einem Leerzeichen unglücklich gewählt ist und NAMEID als Spaltenname auch nicht komplett gross sein sollte.


    werde ich mir merken solange es noch alles im Test Modus ist ist noch alles änderbar :) danke.

    Hallo Leute vielleicht könnt Ihr mir da weiterhelfen.


    Über phpAdmin lass ich mir die befehle für die Datenbank erstellen.

    Die ich dann hinterher in den Autoit Code mit einpflege.


    Nun wollte ich ein Select machen und mir nur die Spalte NAMEID anzeigen lassen


    aber ich bekomme immer folgende Fehlermeldung : Warning: #1292 Falscher DOUBLE-Wert gekürzt: '"TEST_1234"'

    & das zu jedem Eintrag in der Datenbank.


    Code im phpadmin : SELECT * FROM `db 1` WHERE `NAMEID`;


    Ich verstehe nicht ganz in was diese Zeile formatiert werden muss damit das funktioniert.

    Probiert habe ich schon VAR, VARCHAR, TEXT, LONGTEXT aber immer der selbe Fehler.


    Der Wert besteht immer aus dieser Reinfolge : STRING_ZAHL


    Wenn ich eine andere Spalte auswähle wo nur zahlen oder nur Buchstaben drin stehen dann geht das mit dem Select. Aber eine Kombination aus beiden hat bisher bei mir nicht funktioniert, das selbe Problem habe ich auch bei der Spalte PCNAME. Da einige PC Namen aus Buchstaben und Zahlen bestehen.


    Ich hocke schon den ganzen morgen dran und bin schon nahe am verzweifeln.


    Ich könnte mir auch immer die ganze Tabelle anzeigen lassen und dann mit einer For schleife das ganze abwickeln, aber wenn eine Datenbank schon Vorteile bietet warum soll ich diese dann nicht nutzen.






    ich weiß nicht ob es dir hilft aber ich hatte auch die tage damit ein Problem.


    ich habe es heute gelöst.


    ich habe ssl als String weiter geben, wenn ich aber einen Fehler provoziere dann stürzt es nach dem zweiten mal ab., habe ich die korrekten daten angeben dann kommt bei mir auch der Fehler.

    meine Fehlersuche hat sich etwas hingezogen weil ich die daten noch in einer Datei Speicher und wenn diese existiert dann nimmt er diese.


    bis ich gemerkt habe das ich ssl immer als string weiter gebe aber als ich es direkt als int also ohne klammern '' definiert habe,

    funktioniert alles es wird mir korrekter Fehler bei fehleingaben an & es stürzt auch nicht mehr ab.

    Und verschickt richtig mails.