Beiträge von Kanashius

Statement zur DSGVO im Forum

Alles zur DSGVO und zur Umsetzung im Forum hier: Statement zur DSGVO (letztes Update: 30.05.2018)

    Ich hab mal gesucht und das folgende gefunden:

    1. https://www.techrepublic.com/b…-windows-7s-logon-screen/

    Dies zeigt beim wechseln des Benutzers eine Nachricht an, leider funktioniert dies nicht beim Sperrbildschirm und es muss vorm Benutzerwechsel gesetzt sein...


    2. Die andere, bessere Möglichkeit wäre GINA. Das ist eine dll, die sich um das darstellen des Windowslogins kümmert. Dazu müsstest du allerdings eine .dll erstellen (z.B. in C/C++), diese muss die originale ersetzen. Teilweise können auch Hooks angelegt werden. Das ganze ist auf jedenfall recht kompliziert.

    Hier ein paar Links dazu:

    Hier sieht man ganz schön den Aufbau:

    https://www.paralint.com/projects/aucun/index.html

    Details:

    https://docs.microsoft.com/en-…ows/desktop/secauthn/gina

    https://docs.microsoft.com/en-…uthn/customizing-winlogon

    https://msdn.microsoft.com/en-…op/aa380543(v=vs.85).aspx


    Ich hab mir das jetzt auch nur grob angeschaut, das wäre auf jedenfall eine kompliziertere Aufgabe, ich glaub es gibt auch recht wenig dazu zu finden, also viel ausprobieren ;).


    Mfg Kanashius

    Um eine vernünftige Fortschrittsanzeige zu erstellen musst du das kopieren in Teile zerlegen.

    Statt mit DirCopy zu kopieren also alle Dateien auflisten (_FileListToArrayRec) und einzeln kopieren. Den Fortschritt nach der Anzahl bisher kopierten Dateien berechnen (Round($akt,$max,2)*100).

    Wenn es noch genauer sein soll, kannst du noch die Dateigröße auslesen und mit einbeziehen.

    Mit DirCopy ist die Fortschrittsanzeige also nicht vernünftig möglich.


    MfG Kanashius

    Ich nehme mal an, das Datum steht im ersten Eintrag... Deine Schleife muss bei 0 beginnen:

    Als Tipp: bau dir die beiden Hilfsfunktionen ein um zu sehen, was in dem Array steht und was genau verglichen wird. Die MSGBOX kannst du dabei auch durch ein ConsoleWrite ersetzen, falls es viele Ausgaben sind, damit nicht jedesmal ok gedrückt werden muss. In diesem Fall macht das == auch keinen Sinn, denn == vergleicht zwei Strings miteinander, während = für Zahlen genutzt wird.


    MfG Kanashius


    EDIT: Ich seh grad, dass du schon einen anderen Thread aufgemacht hast. Da das Thema das gleiche ist, antworte doch nächstes Mal auch bitte in dem gleichen Thread. Es wird nicht für jede weiterführende Frage ein neuer Thread zum gleichen Thema aufgemacht. Außerdem Hilfeanfragen in dem Forum Hilfe und Unterstützung posten. Das Forum Scripte ist für FERTIGE Scripte gedacht, die man mit der Community teilen möchte.

    Da mir die Dauer von über einer Stunde sehr grausam erscheint und ich grad lust hatte etwas zu programmieren, hab ich mal eine Programm geschrieben, was deutlich schneller ist.

    Ich hab das ganze in Java implementiert, einfach weil es schneller ist und ich Java im Moment viel öfter benutze.


    Die Dauer für ein 10MB jpg-file ist < 3 Sekunden.


    Das ganze läuft über die Kommandozeile (kann also mit runwait,... gestartet werden und benötigt keine Benutzereingaben).

    Ein Fenster implementiere ich vielleicht noch (momentan ist es noch leer)


    Die Ausgabe besteht aus einer Bit-Datei, die einfach für jeden Pixel 0 oder 1 in eine Textdatei schreibt, je nachdem ob dort ein Treffer war, oder nicht.

    Außerdem kann noch eine Datei mit allen Bereichen ausgegeben werden. In der steht dann in jeder Zeile ein Bereich und dort alle Pixelkoordinaten, die zu dem Bereich gehören.


    Bei der gesuchten Farbe können beliebige RGB-Werte angegeben werden (auch eine gewisse Range, also Rot von 0 bis 50,...). Außerdem kann auch der Alphawert berücksichtigt werden.

    Beim suchen des Bereiches kann definiert werden, ob die Moore- oder VonNeumann-Nachbarschaft verwendet werden soll.


    Zwei Beispiele zum ausführen mit der enthaltenen 7x5 Pixel testdatei:

    java -jar ImageAnalyser.jar -nogui -path test.png -scanColor 0,0,0 -scanArea true -outBits bits.txt -outArea area.txt -scanNeighborhood neumann

    java -jar ImageAnalyser.jar -nogui -path test.png -scanColor 0,60,0,60,0,60 -scanArea true -outBits bits.txt -outArea area.txt -scanNeighborhood neumann


    Die gesamte Hilfe:


    Du solltest aber nicht nach sehr großen verbundenen Bereichen suchen, dann tritt ein Stackoverflow-Error auf. Da muss ich die nächsten Tage (nach der Klausur am Dienstag vllt.) mal dran gehen, dass ich die Rekursion rausbekomme und stattdessen Schleifen o.ä. benutze.


    Der Sourcecode ist ebenfalls enthalten, falls sich jemand dafür interessiert ;)


    MfG Kanashius.

    Dateien

    Bei Group By nimmt er die Tabelle und gruppiert die Daten nach der angegebenen Spalte. Haben mehrere Zeilen in der gegebenen Spalte den gleichen Wert, wird in den anderen Spalten ein zufälliger von den Werten genommen (Oder der Max-Wert, Min-Wert oder Count, also die Anzahl des Auftretens, wenn das angegeben wird). Mit Having wird einfach nur eine Bedingung mitgegeben. Alle die diese nicht erfüllen werden rausgeworfen. Where funktioniert dabei immernoch. Where wird vor dem GroupBy ausgeführt, Having danach (kann also schon mit dem Ergebnis arbeiten).


    Firebird SQL scheint da aber besondere Regeln zu haben...

    Das hängt vermutlich mit deiner Tastatur zusammen. Diese können selten mehr als 3-4 Tasten gleichzeitig erkennen und dabei kommt es manchmal auch auf die Tastenkombination an.

    Das ist dann also je nach Tastatur unterschiedlich.


    Ich würde auch mit Hooks arbeiten, da dann nicht permanent in einer Schleife die Funktion durchläuft sondern von Windows das Keyboard-event getriggered wird, sobald eine Taste gedrückt wird. -> CPU-Auslastung.

    Ich kenn jetzt Firebird-SQL nicht, aber generell würde ich es so probieren:

    SELECT * FROM (SELECT adressnr,max(date) as maxDate FROM belege GROUP BY adressnr) g WHERE g.maxDate<='2011-10-10'

    (Bei max muss eventuell erst zu einem zahlenwert gecastet werden, das hängt von der art der speicherung ab)


    MfG Kanashius

    Ich würde dir empfehlen dir die _IE-Funktionen anzuschauen, oder falls auf der Seite kein Javascript läuft, reicht sogar ein InetGet in verbindung mit BinaryToString.

    Das kann dann auch komplett im Hintergrund ablaufen => sicherer und für dich unsichtbar/unbemerkt.


    Was dein Ursprüngliches Problem angeht kann ich dir da so grad auch nicht weiterhelfen, da ich das Programm auch garnicht kenne und nicht weiß, wann es was macht.


    MfG Kanashius.

    Möglich sollte es sein, da die API meines wissens nach auf HTTP basiert.

    Ne vorhandene UDF ist mir aber nicht bekannt, müsstest du vermutlich selber schreiben :)

    Zu 1.: Der Unterstrich wird verwendet um zu signalisieren, dass das eine eigene Methode ist und sie nicht zu den Standard-AutoIt Funktionen gehört. In UDFs wirst du diese Schreibweise immer finden, diese fangen ja auch alle mit Unterstrich an.

    zu 2.: Ja, einfach am Zeilenende ein leerzeichen gefolgt von einem Unterstrich!, so:

    AutoIt
    1. _functionCall($param, _
    2. $param2, _
    3. $param3, _
    4. )


    MfG Kanashius.

    Und die eckigen Klammern bedeuten nur, dass der Parameter optional ist, also weggelassen werden kann. Du solltest beim Aufruf die Klammern weglassen oder den gesamten Block, wenn du dort nichts angeben willst ;)

    Ich denke, mit dem probieren aller Möglichkeiten hast du den falschen Ansatz gewählt.

    Meine erste Idee wäre, die Daten in ein Array zu schreiben. Dann ein zweites Array anzulegen in dem gespeichert wird, ob das Feld schon verwendet wurde. Wenn nicht arbeitest du das Feld ab (Funktionsaufruf). Beim abarbeiten gehst du die gesamte Von-Neumann-Nachbarschaft des Feldes durch und fügst alle (1er/dontcare) Felder zu einer Liste (und markierst sie als abgearbeitet). Am Ende analysiserst du die hinzugefügten Felder, indem du die Vielfachen von 2 ausprobierst. Das machst du sowohl in der Breite, als auch in der Höhe. Wenn du dabei immer die größten Felder nimmst kannst du sie verknüpfen.


    Wie genau die Umsetzung aussehen könnte müsste ich mir dann aber genauer überlegen :)


    Nebenbei: Ich hab grad diese Seite gefunden. Der Quellcode ist in JavaScript, also, falls du inspiration suchst: http://www.mathematik.uni-marb…res/ti1/code/karnaughmap/


    MfG Kanashius.

    Ich hab dein Script aus dem ersten Post mal so überarbeitet, dass es deutlich ansehnlicher und übersichtlicher ist.

    Zu den Änderungen:

    1. Variablen passend benennen, damit man weiß, was sie bedeuten. Bei $label1 weiß keiner was sich dahinter verbirgt. Dabei auch gerne am Anfang der Variable den Typ nennen. So zum Beispiel i für eine Zahl, b für ein Bool,...

    2. Die Hauptschleife so übersichtlich halten wie möglich. Daher alles in Funktionen auslagern, sodass deine Hauptschleife schlank bleibt und du auf einen blick siehst, was beim Klick auf den Button passiert.

    3. Alles was redundant ist (sich wiederholt) ebenfalls in Funktionen auslagern. Da hab ich hier zum Beispiel das _setCompanyMoney definiert. Dadurch wird beim ändern des Geldes jedesmal auch das Label aktualisiert. Änderst du irgendwann mal das Label musst du es nicht überall im Code ändern, sondern nur an dieser einen Stelle.

    4. Das Fenster am Anfang vollständig erstellt und die Controls nur ein/ausblenden. Da du ein Spiel programmierst solltest du den Overhead des ständigen neuerstellens vermeiden, da das, wenn dein Spiel größer wird, ausbremsen kann!

    5. Ich hab das hier jetzt nicht umgesetzt, aber schau dir auf jedenfall Arrays an. Gerade beim erstellen von Fenstern sind diese eine sehr größe Hilfe. Auch sonst wirst du vermutlich irgendwann nichtmehr drumrumkommen


    Der Code:

    MfG Kanashius

    Du kannst einen Zeilenumbruch matchen, z.b.:

    "Test:\r\n(d+)" um im folgenden 123 zu bekommen:

    Test:

    123

    Das Irgendetwas bei dir muss dann natürich bekannt sein. Dort geht z.B. "Test:\r\n[a-zA-Z0-9]{5}(d+)" um zu zeigen, dass dort 5 Zeichen/Zahlen stehen können.

    Genau kann mans dir natürlich nur sagen, wenn man Beispieldaten hat.