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

Beiträge von flynt_castwood

  • Prozess-Killer Hyperspin : seltsames verhalten

    • flynt_castwood
    • 30. Januar 2013 um 22:27

    Hallo,

    ich habe mal einen Prozess-Killer für das Arcade-Frontend geschrieben.
    Zur Erklärung:
    Über $CmdLine[1] bekommt das script die exe des Emu übergeben.
    Aus einer ini werden die HotKeys ausgelesen.
    Das script überwacht die exe und läuft solange diese aktiv ist und prüft dabei ob die hotkeys gedrückt wurden.
    Eigentlich funktioniert das script, aber wenn ich es 5 -10 mal hintereinander ausführe, wobei es immer beendet wird, im TaskManager nicht mehr zusehen ist und jedesmal aufs neue gestartet wird, killt es automatisch den Prozess nach ein paar Sekunden nach dem start oder es reicht einer der Hotkeys um den Prozess zu killen. Es fühlt sich an als würde da etwas im speicher noch hängen. Manchmal hilft nur ein Neustart des Rechners.

    Hier mal das Script: Irgendwie bekommt ich den code nicht richtig formatiert... macht mir ständig die Returns weg... deshalb im Spoiler

    Spoiler anzeigen


    #include <Misc.au3>

    Opt('TrayIconHide', 1)

    ;Read ini-file
    $key1 = IniRead("emu_killer.ini","HOTKEY","key1","")
    $key2 = IniRead("emu_killer.ini","HOTKEY","key2","")
    $hDLL = DllOpen("user32.dll")

    global $Process = $CmdLine[1]

    ;Wait to kill emu_____________________________________________


    While ProcessExists($Process)
    If _IsPressed($key1, $hDLL) And _IsPressed($key2, $hDLL) Then
    kill()
    EndIf
    sleep(100)
    WEnd


    ;Kill-function_________________________________________________

    Func kill()

    ProcessClose($Process)
    ProcessClose("HyperLaunch.exe")

    WinActivate("HyperSpin")

    EndFunc

    Jemand ne Idee...???

    EDIT:
    Ich habe gerade gesehen, dass ich die userdll nicht schließe... werde das mal probieren...wenns überhaupt nötig ist.
    EDIT:
    Das Schließen der dll hat auch nichts gebracht... an Hyperspin kann es auch nicht liegen, da das Problem auch außerhalb Hyperspin auftaucht.
    EDIT:
    Was auch sehr strange ist, wenn das Script die exe ohne Grund selbständig killt, hilft es kurz nach dem start des scripts schnell ein der beiden hotkeys zu drücken damit die exe nicht gekillt wird. Dann klappt alles wieder normal.
    Somit die Vermutung, dass es wirklich etwas mit der Dll zutun haben muss.

    EDIT:
    Habs jetzt mit AutoHotkey gelöst. Konnte den Fehler auch nicht auf anderen Rechnern reproduzieren.

  • PNG drehen.. was mache ich falsch

    • flynt_castwood
    • 5. Februar 2012 um 22:08

    ok, so klappt es ... mit der gdip.au3

    Spoiler anzeigen


    $hImage = _GDIPlus_ImageLoadFromFile("C:\pix\backglass\test.png")
    _GDIplus_ImageRotateFlip($hImage, 2)

    _GDIPlus_ImageSaveToFile($hImage,"C:\pix\backglass\test180.png")

    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

  • PNG drehen.. was mache ich falsch

    • flynt_castwood
    • 5. Februar 2012 um 21:26

    Das klappt leider auch nicht .. vorausgesetzt dass der code richtig ist

    Spoiler anzeigen

    Local $hBitmap, $hImage, $tData, $tParams

    ; Initialisiert (startet) Microsoft Windows GDI+
    _GDIPlus_Startup()

    ; Lädt ein Bild
    $hImage = _GDIPlus_ImageLoadFromFile("C:\pix\backglass\Sci-Fi Classic.png")

    Global $hMatrix = _GDIPlus_MatrixCreate()

    _GDIPlus_MatrixRotate($hMatrix, 180, "False")
    _GDIPlus_GraphicsSetTransform($hImage, $hMatrix)

    ; Speichert das gedrehte Bild
    _GDIPlus_ImageSaveToFile($hImage, "C:\pix\backglass\Sci-Fi Classic180.png")

    ; Gibt die durch Microsoft Windows GDI+ verwendeten Ressourcen wieder frei
    _GDIPlus_Shutdown()

  • PNG drehen.. was mache ich falsch

    • flynt_castwood
    • 5. Februar 2012 um 21:06

    Ich versuche ein PNG zu drehen. JPG klappt wunderbar mit GDI+ aber das PNG wird nur erstellt jedoch nicht gedreht.
    Was mach ich da falsch ?


    Spoiler anzeigen


    func drehen()

    Local $hImage
    Local $sCLSID
    Local $tData
    Local $tParams

    ; GDI starten
    _GDIPlus_Startup ()
    ; Bild laden
    $hImage = _GDIPlus_ImageLoadFromFile ($path_table & $table_name & ".png")
    ; Für JPG Bilder muss folgende Zeile aktiv sein
    $sCLSID = _GDIPlus_EncodersGetCLSID ("PNG")
    ; Ab hier werden die Parameter gesetzt
    $tData = DllStructCreate("int Data")
    DllStructSetData($tData, "Data", $GDIP_EVTTRANSFORMROTATE90)
    $tParams = _GDIPlus_ParamInit (1)
    _GDIPlus_ParamAdd ($tParams, $GDIP_EPGTRANSFORMATION, 1, $GDIP_EPTLONG, DllStructGetPtr($tData, "Data"))
    ; Bild speichern
    _GDIPlus_ImageSaveToFileEx ($hImage, $path_table & $table_name & "90.png", $sCLSID, DllStructGetPtr($tParams))
    ; GDI beenden
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_ShutDown ()

    EndFunc

    Irgendwie mag IRON den autoit Tag nicht.

  • Vertikaler Ticker

    • flynt_castwood
    • 27. Januar 2012 um 09:10
    Zitat von BugFix

    Mal als Gedankenskizze:

    Pack deine Texte in ein Array.
    Befülle dein Edit (damit willst du vermutlich arbeiten) dann Eintrag für Eintrag durch Anhängen (kleines Sleep dazwischen für die Optik).
    Über die Funktionen der Edit-UDF regelst du, dass der aktuelle Eintrag (diese Zeile) sichtbar ist.
    Kontrolliere ob und welcher Eintrag beim automatischen Scroll aus dem sichtbaren Editfeld "abtaucht" und lösche diesen sofort vom Gesamtinhalt des Edit.
    Bist du am Ende des Array angelangt, beginnst du wieder mit dem ersten Eintrag.
    Durch das Löschen der nicht mehr sichtbaren Einträge stellst du sicher, dass das Editfeld niemals einen Eintrag doppelt enthält.


    Werde das mal versuchen ... danke erstmal ...

    wäre aber nett wenn du Zeit hättest und parallel nen Beispiel basteln könntest. Bist bestimmt schneller als ich.
    Zur Info noch:

    Ich lese ein VARCHAR Feld aus einer MySqlDb aus, das mehrzeilig ist, in eine Var ein. Müsste diese dann noch auf die Zeilen aufbröseln und dann in ein neues Array packen oder gibbet da was einfacheres?

  • Vertikaler Ticker

    • flynt_castwood
    • 27. Januar 2012 um 08:06

    Hi,

    hänge ein bisle fest. Ich muss einen Ticker bauen, der vertikal d.h. zeilenweise scrollt in einem Label oder sonst etwas angezeigt wird.
    Der horizontale Ticker ist ja leicht mit dem StringManagement zu handeln aber hat jemand ne Idee für nen vertikalen Ticker...?
    Das Label ist natürlich etwas größer und umfasst ca 15 Zeilen ... ist der beinhaltende bzw. ausgelesene Text länger als 15 Zeilen soll tickern.

    Danke

  • Externes Fenster identifizieren

    • flynt_castwood
    • 4. November 2011 um 10:08

    Hab ich mir ja schon fast gedacht... danke trotzdem.

  • Externes Fenster identifizieren

    • flynt_castwood
    • 4. November 2011 um 07:41

    Hallo,

    hab da mal ne kleine Frage... ich habe mir eine Script geschrieben, dass das "Speichern unter" -Fenster nach dem Klick auf eine Download-Link im Browser überwachen soll und danach weitere
    Aktionen durchführen soll. Danach öffnet sich eine anhand einer, ausgelesenen ini, dynamisch erstellte GUI, die mich per One-Klick den Download in einen auch in der ini vordefinierten Pfad speicher lässt. Alles klappt ja soweit. Ich will das Ding auch mit mehreren Browsern nutzen...
    Das Prob ist, dass z.B. im Iron-Browser (andere hab ich noch nicht getestet) das mit WinwaitActiv abzufragende Fenster "Speichern unter" heißt und die CLASS ist #32770 <- ist aber auch die gleiche CLASS wie die des "Löschen"-Dialogs ... Habe mir überlegt ob ich nicht nach mehreren Kriterien abfrage .... dazu müsste ich auch noch wissen welche Fenster noch zu dieser CLASS gehören.


    Jemand ne Idee...

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™