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

Beiträge von MadMushroom

  • GUI auf Screenshots ausblenden

    • MadMushroom
    • 5. Mai 2016 um 21:09

    Okay, ich hatte halt gehofft, dass man das schwarze Rechteck irgendwie ausblenden kann. Und das ohne jedes mögliche Screenshot-Programm zu betrachten bzw. ohne dass der Benutzer die GUI manuell ausblenden muss.

    Auf jeden Fall trotzdem danke, autoBert!

    Vielleicht hat ja jemand doch noch eine andere Idee :)

  • GUI auf Screenshots ausblenden

    • MadMushroom
    • 5. Mai 2016 um 20:16

    @autoBert: Diese Möglichkeiten sind mir bekannt, jedoch soll das auch bei Screenshots durch fremde Anwendungen funktionieren.

    _WinAPI_SetWindowDisplayAffinity klappt ja auch bei Fremdprogrammen (nur mal z.B. Snipping Tool und Druck-Taste). Bei GUISetState, WinSetTrans, etc. muss ich hingegen wissen, WANN der Screenshot gemacht wird.

    Ich hoffe, das verdeutlicht mein Problem etwas besser :)

  • GUI auf Screenshots ausblenden

    • MadMushroom
    • 5. Mai 2016 um 19:24

    Hallo allerseits,

    ich bin auf der Suche nach einer Möglichkeit, eine von meinem Programm erstellte GUI auf Screenshots auszublenden.

    Bei meinen bisherigen Recherchen bin ich auf die Funktion _WinAPI_SetWindowDisplayAffinity gestoßen. Diese erzeugt jedoch auf Screenshots einen schwarzen “Kasten“ anstelle des Fensters. Stattdessen würde ich gerne diesen schwarzen Ausschnitt transparent machen, dass die GUI auf dem Screenshot quasi unsichtbar ist.

    Wahlweise würde ich auch gern andere Möglichkeiten nutzen, um Grafiken/Text auf dem Bildschirm anzuzeigen, die auf Screenshots nicht sichtbar sind.

    LG MM :)

  • MiniCL - Berechnungen auf GPU in einer Zeile (kein OpenCL)

    • MadMushroom
    • 23. April 2015 um 22:59

    Sehr interessantes Projekt :)
    Wie sieht denn der aktuelle Status aus?

  • komplexer Synthesizer (Bass.dll)

    • MadMushroom
    • 9. April 2015 um 19:08

    Geht mir auch so, ich würde es gerne testen...

  • WM_PAINT zeigt seltsames Verhalten

    • MadMushroom
    • 9. Dezember 2014 um 19:42
    Zitat von eukalyptus

    Man sollte niemals ein sleep in einer Callback-Funktion verwenden (müssen).
    Bei deinem Problem hilft dir WM_ERASEBKGND weiter.

    Danke eukalyptus, deine Lösung hat mir prima geholfen! :thumbup:
    Funktioniert einwandfrei. Und die Idee mit dem Backbuffer ist auch ganz praktisch. :)

    MM

  • WM_PAINT zeigt seltsames Verhalten

    • MadMushroom
    • 8. Dezember 2014 um 22:16

    Hallöchen,

    ich habe folgendes Problem entdeckt:

    Die per GDI+ auf eine GUI gezeichneten Objekte verschwinden ja bekanntlich, wenn das Fenster minimiert wird etc...
    Um das zu umgehen gibt es im Netz genug Lösungen, in denen die WM_PAINT-Message der GUI abgefangen und alles neu gezeichnet wird. So weit so gut, doch bei mir wollte das einfach nicht klappen. Ich entwickle gerade ein größeres Projekt, da kann sich ja leicht ein Fehler einschleichen, dachte ich mir... Also hab ich weiter nach Lösungen gesucht und geguckt, was ich falsch mache.

    >Hier< war ein relativ simples Programm zum Neuzeichnen per WM_PAINT verfasst. Doch jetzt der Witz: Das funktionierte ebenfalls nicht! ^^ Nach einiger Zeit habe ich dann (mehr oder weniger durch Zufall) die Lösung gefunden: In der WM_PAINT-Funktion muss am Anfang ein Sleep(...) eingebaut werden! 8| Wieso auch immer, aber dann funktionierte auch mein größeres Projekt...

    Da die Lösung mich ziemlich verwirrt und ich das Sleep nicht unbedingt verwenden möchte, wollte ich mal die Experten um Rat fragen ^^
    Also: Wieso klappt das folgende Beispiel nur, wenn das "Sleep(10)" in Zeile 29 nicht auskommentiert ist? Und wie kann ich das auch ohne Sleep lösen?

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

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

    Opt("GUIOnEventMode", 1)
    OnAutoItExitRegister("_Exit")

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

    _GDIPlus_Startup()

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

    Global $iWidth = 400, $iHeight = 400

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

    $hGUI = GUICreate("GDI+ Tut", $iWidth, $iHeight)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBrush = _GDIPlus_BrushCreateSolid(0xFFFF0000)

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

    GUISetOnEvent(-3, "_Exit")
    GUIRegisterMsg(0x000F,"WM_PAINT")
    GUISetState()

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

    While 1 * Sleep(10)
    WEnd

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

    Func _Exit()
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

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

    Func WM_PAINT()
    ;Sleep(10)
    _GDIPlus_GraphicsFillRect($hGraphic,100,100,200,200,$hBrush)
    EndFunc

    [/autoit]

    PS: Betriebssystem = Windows 7 x64

    Danke schonmal für eure Hilfe ^^

    MM

  • ScreenLock - Desktop sperren mit Muster

    • MadMushroom
    • 21. Juni 2013 um 19:57

    Gute Idee, ich habs ausprobiert. Läuft super!
    :thumbup:
    Grüße MM

  • Text: benötigten Speicher herausfinden

    • MadMushroom
    • 6. Juni 2013 um 19:34

    Uuuuups!

    Die "Remarks" hatte ich übersehen. :D:D:D

    Vielen Dank für die schnelle Hilfe an alle! :thumbup:

  • Text: benötigten Speicher herausfinden

    • MadMushroom
    • 6. Juni 2013 um 19:27
    Zitat von chesstiger


    Wenn es eine ASCII/ANSI-Datei ist, dann entspricht ein Zeichen einem Byte.
    Wenn es eine UTF8-Datei ist: 1 bis 4 Byte.
    Wenn es eine UTF16-Datei ist: 2 oder 4 Byte.
    Wenn es eine UTF32-Datei ist: 4 Byte.

    Und wie wird das bei FileWrite standardmäßig gemacht? Das steht nämlich nicht in der Hilfe :( .
    Da steht nur:

    Zitat von Hilfe


    32 = Use Unicode UTF16 Little Endian reading and writing mode. Reading does not override existing BOM.
    64 = Use Unicode UTF16 Big Endian reading and writing mode. Reading does not override existing BOM.
    128 = Use Unicode UTF8 (with BOM) reading and writing mode. Reading does not override existing BOM.
    256 = Use Unicode UTF8 (without BOM) reading and writing mode.

  • Text: benötigten Speicher herausfinden

    • MadMushroom
    • 6. Juni 2013 um 19:07

    Hallo,

    ich möchte in einem Autoit-Skript einen Text per FileWrite in eine Datei schreiben.
    Das ist kein Problem, jedoch möchte ich schon im Voraus wissen, welchen Speicherplatz die Datei in etwa benötigen wird.

    Wie kriege ich das heraus?
    Schon einmal vielen Dank für eure Hilfe!

  • QR-Code Creator

    • MadMushroom
    • 4. Mai 2013 um 07:50

    Echt tolles Script BugFix! :thumbup:

    Ich habe so einen QR-Code Generator gerade benötigt
    und da bin ich auf dein Script gestoßen... 8)

  • GUIGetMsg für "fremde" GUI

    • MadMushroom
    • 4. Mai 2013 um 07:41

    Danke für die schnellen Antworten!

    Beim OnEventMode hat es bei mir leider nicht funkioniert... :(

    Deshalb habe ich es jetzt so gemacht:

    Zitat von misterspeed

    Je nach Fall wäre es vielleicht sinnvoll die zeitintensive Funktion als eigenen Prozess auszulagern und in der GUI Schleife zusätzlich zu den gui Messages auch zu prüfen ob der externe Rechenprozess schon fertig ist bzw. die Zwischenergebnisse des Prozesses regelmässig auslesen.

    Jetzt funktioniert es einwandfrei. :)

    Noch einmal vielen Dank BugFix und misterspeed! 8)

  • GUIGetMsg für "fremde" GUI

    • MadMushroom
    • 3. Mai 2013 um 21:07
    Zitat von BugFix

    Dann kannst du doch in diesem alles notwendige ausführen?

    Ich kann in dem Script mit der GUI nichts ausführen, da dieses gerade anderweitig beschäftigt ist.
    Trotzdem soll bei Events der GUI gleich was passieren und nicht erst wenn die Funktion zuende ist.
    Das ist sonst doof wenn man klickt und nix passiert... :)

  • GUIGetMsg für "fremde" GUI

    • MadMushroom
    • 3. Mai 2013 um 16:25

    Ich möchte gern von einem AutoIt-Script aus auf die
    Events der GUI eines anderen AutoIt-Scriptes zugreifen.

    Ich habe mir das Handle schon per

    [autoit]

    $Handle = WinGetHandle ("GUI1")

    [/autoit]


    besorgt.

    Wie kann ich GUIGetMsg () nun "sagen", dass ich die Events dieses Fensters bekommen möchte?
    Parameter gibts ja nicht (zumindest kein Handle).

    MfG MadMushroom

  • GDI+ AutoIt Logo

    • MadMushroom
    • 3. Mai 2013 um 15:39

    Cool! :thumbup: Echt super gemacht. Respekt!

  • Binäruhr

    • MadMushroom
    • 2. Mai 2013 um 15:58

    Toll gemacht! Echt super. :thumbup:

  • Drucker

    • MadMushroom
    • 1. Mai 2013 um 20:51

    Du könntest es mit CMD machen:

    [autoit]


    $Port = "LPT1"
    $Datei = "C:\Test.txt"
    Run(@ComSpec & " /c print /d:" & $Port & " " & $Datei , "", @SW_HIDE)

    [/autoit]

    Grüße MM.

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™