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

Beiträge von andygo

  • Ungewollte Transparenz bei GUICtrlSetImage

    • andygo
    • 19. August 2010 um 19:06

    hallo autobert,

    mit löschen und neu erstellen hatte ich es auch schon mal versucht aber irgendwie nicht hinbekommen. nun klappt es aber, war wohl irgendwo der fehlerteufel drin.

    danke dir trotzdem :thumbup:

  • Ungewollte Transparenz bei GUICtrlSetImage

    • andygo
    • 19. August 2010 um 15:58

    Hallo,

    ich arbeite in einer Gui mit einem GUICtrlCreatePic (als Vorschaubild).
    [Blockierte Grafik: http://img3.imagebanana.com/img/bhesktvl/w7shot64.jpg] 
    Wenn ich nun das blaue Bild durch ein neues ersetze,
    sieht man an manchen Stellen trotzdem noch das blaue:

    [Blockierte Grafik: http://img3.imagebanana.com/img/i06lshjc/w7shot64.jpg]

    Und zwar meiner Meinung nach genau an den Stellen,
    wo die Farbe dem Standart-Hintergrund-Grau entspricht.

    Kann man das irgendwie vermeiden?

    Grüße aus Hessen, Andy

  • String teilen!

    • andygo
    • 13. August 2010 um 23:22

    es geht auch aufwendiger :rock:

    [autoit]

    $string = "move_0_0.png"
    $endung = StringRight($string, 4)
    $rest = StringReplace($string, $endung, "")
    $zahl = ""
    for $i = 1 to StringLen($rest)
    if StringIsDigit(StringMid($rest, $i, 1)) then $zahl &= StringMid($rest, $i, 1)
    next
    if $zahl = "" then $zahl = "Keine Zahl gefunden"
    msgbox(0, "zahl", $zahl)

    [/autoit]
  • Bei bestimmter Mouseposition Bild ändern

    • andygo
    • 4. August 2010 um 21:47

    ist das bild um das es geht immer an der selben stelle?
    isses in irgend nem externen programm oder in deiner script-gui?

  • Hintergrund farbe ändern oder bild einbinden!

    • andygo
    • 28. Juli 2010 um 08:09

    moin moin,

    vielleicht ist folgendes beispiel aus dem englischen forum ja eine lösung für dich:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiTab.au3>

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

    $hGUI = GUICreate("Test", 500, 500)

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

    $hTab_1 = GUICtrlCreateTab(10, 10, 230, 90)
    $hTab_10 = GUICtrlCreateTabitem("Red")
    _GUICtrlTab_SetBkColor($hGUI, $hTab_1, 0xFFCCCC)
    $hTab_11 = GUICtrlCreateTabitem("Green")
    _GUICtrlTab_SetBkColor($hGUI, $hTab_1, 0xCCFFCC)
    $hTab_12 = GUICtrlCreateTabitem("Blue")
    _GUICtrlTab_SetBkColor($hGUI, $hTab_1, 0xCCCCFF)
    GUICtrlCreateTabitem ("") ; end tabitem definition
    GUISetState()

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

    GUISetState()

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

    While 1

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch

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

    WEnd

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

    Func _GUICtrlTab_SetBkColor($hWnd, $hSysTab32, $sBkColor)

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

    Local $aTabPos = ControlGetPos($hWnd, "", $hSysTab32)
    Local $aTab_Rect = _GUICtrlTab_GetItemRect($hSysTab32, -1)

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

    GUICtrlCreateLabel("", $aTabPos[0]+2, $aTabPos[1]+$aTab_Rect[3]+4, $aTabPos[2]-6, $aTabPos[3]-$aTab_Rect[3]-7)
    GUICtrlSetBkColor(-1, $sBkColor)
    GUICtrlSetState(-1, $GUI_DISABLE)

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

    EndFunc

    [/autoit]

    lg :rock:

  • MS Snippingtool nachgebaut

    • andygo
    • 20. Juli 2010 um 22:57

    oetzn:

    gewöhnungsbedürftig mit dem hotkey aber hat auch was. das mit dem splashimage gefällt mir gut, *daumen hoch*. Sollt vielleicht noch "sichtbarer" rein wo das bild nun gelandet ist.

  • MS Snippingtool nachgebaut

    • andygo
    • 20. Juli 2010 um 18:02
    Zitat von cinema

    Schaut gut aus, doch (ich hab es nicht getestet):

    [autoit]


    $hBitmap = _ScreenCapture_Capture(@ScriptDir & "\shot"&$sc&".jpg", $s_left, $s_top, $s_left+$s_width, $s_top+$s_height, false)
    msgbox(0,"Screenshot wurde erstellt:",@ScriptDir & "\test"&$sc&".jpg")

    [/autoit]

    Du speicherst es in den Ordner /shot/ und zeigst in der MsgBox nen anderen Pfad an: /test/

    Und wie oben gesagt, habe es nicht getestet, doch das ist mir ins Auge gestochen.

    Danke Dir, das hab ich wohl übersehen.

    Zitat von oetzn

    Schön gemacht :D
    Aber so richtig komfortabel zu bedienen ist es nicht. Ich würde eher einen Hotkey oder ähnliches bevorzugen, oder dass man zB STRG + ALT gedrückt halten muss und anschließend kann man de Bereich auswählen.

    Ich werd das mal kurz modifizieren :D

    Den MOD hier ruhig auch mal posten, vielleicht gefällt er ja :thumbup:

  • MS Snippingtool nachgebaut

    • andygo
    • 20. Juli 2010 um 10:04

    Hallo,

    als Auszug aus einem meiner Hauptscripte habe ich mal das
    Microsoft Snippingtool in Autoit geschrieben und als standalone-Script erstellt:

    [autoit]

    #include <GuiConstants.au3>
    #Include <Misc.au3>
    #Include <ScreenCapture.au3>
    Opt("GuiOnEventMode", 1)
    $fastx = _WinAPI_GetSystemMetrics(78)
    $fasty = _WinAPI_GetSystemMetrics(79)
    $sc = 0
    $maingui = GUICreate("Andygo's Snippingtool", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Quit")
    $b1 = GUICtrlCreateButton("snip it!", 50, 35, 100, 30)
    GUICtrlSetOnEvent(-1, "_area")
    GUISetState()
    While 1
    sleep(20)
    wend

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

    func _area()
    $sc += 1
    $var = WinList()
    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND $var[$i][0] <> "start" AND IsVisible($var[$i][1]) Then WinSetState ($var[$i][0], "", @SW_DISABLE )
    Next
    $GUI_2 = GUICreate("", 1, 1, -1, -1, 0x80000000 + 0x00800000, 0x00000008)
    GUISetBkColor(0x0c6eec)
    WinSetTrans($GUI_2, "", 130)
    local $s_left = "", $s_top = "", $s_width = "", $s_height = "", $mgp[2]
    Local $hGUI = GUICreate("", $fastx+50, $fasty+50, -15, -25, -1, 0x00000080)
    GUISetBkColor(0xffffff)
    WinSetTrans($hGUI, "", 40)
    WinSetOnTop($hGUI, "", 1)
    GUISetCursor(3)
    GUISetState(@SW_SHOW, $hGUI)
    While Not _IsPressed(01)
    $mgp = MouseGetPos()
    Sleep(50)
    WEnd
    WinMove($GUI_2, "", $mgp[0], $mgp[1], 1, 1)
    GUISetState(@SW_SHOW, $GUI_2)
    While _IsPressed(01)
    $mgp_2 = MouseGetPos()
    If $mgp_2[0] > $mgp[0] And $mgp_2[1] > $mgp[1] Then
    local $s_left = $mgp[0], $s_top = $mgp[1], $s_width = $mgp_2[0] - $mgp[0], $s_height = $mgp_2[1] - $mgp[1]
    ElseIf $mgp_2[0] > $mgp[0] And $mgp_2[1] < $mgp[1] Then
    Local $s_left = $mgp[0], $s_top = $mgp_2[1], $s_width = $mgp_2[0] - $mgp[0], $s_height = $mgp[1] - $mgp_2[1]
    ElseIf $mgp_2[0] < $mgp[0] And $mgp_2[1] > $mgp[1] Then
    Local $s_left = $mgp_2[0], $s_top = $mgp[1], $s_width = $mgp[0] - $mgp_2[0], $s_height = $mgp_2[1] - $mgp[1]
    ElseIf $mgp_2[0] < $mgp[0] And $mgp_2[1] < $mgp[1] Then
    Local $s_left = $mgp_2[0], $s_top = $mgp_2[1], $s_width = $mgp[0] - $mgp_2[0], $s_height = $mgp[1] - $mgp_2[1]
    EndIf
    WinMove($GUI_2, "", $s_left, $s_top, $s_width, $s_height)
    WinSetOnTop($hGUI, "", 1)
    ToolTip($s_width & "x" & $s_height)
    sleep(50)
    WEnd
    ToolTip("")
    GLOBAL $s_left = $s_left, $s_top = $s_top, $s_width = $s_width, $s_height = $s_height
    GUIDelete($hGUI)
    $var = WinList()
    For $i = 1 to $var[0][0]
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then WinSetState ($var[$i][0], "", @SW_ENABLE )
    Next
    GUIDelete($GUI_2)
    while FileExists(@ScriptDir & "\shot"&$sc&".jpg")
    $sc += 1
    wend
    $hBitmap = _ScreenCapture_Capture(@ScriptDir & "\shot"&$sc&".jpg", $s_left, $s_top, $s_left+$s_width, $s_top+$s_height, false)
    msgbox(0,"Screenshot wurde erstellt:",@ScriptDir & "\test"&$sc&".jpg")
    endfunc

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

    Func IsVisible($handle)
    If BitAnd(WinGetState($handle), 2) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    func quit()
    Exit
    endfunc

    [/autoit]

    Kann echt ganz praktisch sein und auf Wunsch jedes Einzelnen natürlich nach bedarf angepasst werden.

    Viel Spaß damit, Andy

    Dateien

    snipping.au3 2,9 kB – 426 Downloads
  • Wie seid ihr auf autoit gestoßen?

    • andygo
    • 1. Juni 2010 um 18:45

    wenn ich mich richtig erinnere hab ich 2005 / 2006 mit autoit angefangen.
    die ersten scripte waren ohne gui und dienten einfach nur zur automatischen installation verschiedener programme. vor 2 jahren fing es an mit der ersten gui, um in vlc screenshots zu erstellen. die entwicklung bis heute ist schon enorm:
    [Blockierte Grafik: http://pic.leech.it/i/278a4/1031b32w7shot64.jpg]
    [Blockierte Grafik: http://pic.leech.it/i/5355f/ad44bccw7shot64.jpg]

  • GDI+ GraphicsDrawImage - Bild wird nicht gezeichnet

    • andygo
    • 22. Mai 2010 um 10:41

    Auf den ersten Blick fällt mir auf das du die Variable $hPen mehrmals definierst.

  • Fenster Drag & Drop

    • andygo
    • 20. Mai 2010 um 18:25
    Zitat von black_skorpi

    witzig? naja nicht das was es sein soll aber es klappt... blockiert aber leider andere controls

    man könnte es ja auch auf SECONDARYDOWN legen dann müssten die normalen controlclicks weiterhin funtkionieren.

  • Fenster Drag & Drop

    • andygo
    • 20. Mai 2010 um 18:20

    versuch es mal hiermit:

    [autoit]

    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <GUIConstantsEx.au3>
    Opt("GuiOnEventMode", 1)

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

    HotKeySet("{F3}", "_Exit")

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

    Global $hWnd = GUICreate("Untitled", 100, 100, Default, Default, -$WS_POPUP)
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "move")
    GUISetBkColor(0x000000, $hwnd)
    GUISetState(@SW_SHOW)
    $xys = WinGetHandle ("[ACTIVE]")
    While 1
    sleep(20);_WinAPI_CheckWinMove($hWnd)
    WEnd

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

    func move()
    DllCall("user32.dll","int","SendMessage","hWnd", $xys,"int",$WM_NCLBUTTONDOWN,"int", $HTCAPTION,"int", 0)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • eine art "Paint" mit GDI+?

    • andygo
    • 20. Mai 2010 um 14:33

    habe mich seit kurzem auch mit gdi+ angefreundet, da hat man schon einige möglichkeiten:

    [Blockierte Grafik: http://www4.pic-upload.de/20.05.10/hdwzf4ybo2h.jpg]

    ich setzte das als teil von nem anderen script ein, um bilder vor dem upload schnell mal zu bearbeiten. kann ja mal versuchen das zeichenscript als stand-alone zu machen und es dann zu posten.

  • Frage wegen ein Script Fehler

    • andygo
    • 16. Mai 2010 um 21:15
    Zitat von Casi20^
    [autoit]

    HotKeySet ("!^s", "start")

    sleep (2000)
    send ("{F1}")
    send ("{F4}")
    While 1
    $farbe = PixelGetColor (117, 559)
    $farbe <> 0xFFC8C8
    sleep (30)
    WEnd
    Sleep (2500)
    Send ("{F4}")

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

    HotKeySet ("!^e", "Exit")

    [/autoit]


    Dieser Code soll eigentlich:
    2 Sekunden warten,
    F1 drücken,
    F4 drücken,
    Die Farbe auf (117,559) checken,
    Solange diese Ungleich 0xFFC8C8 ist,
    alle 0,03 Sekunden erneut checken,
    sobald diese gleich ist,
    2,5 Sekunden warten
    F4 drücken

    Das soll er dann immer weider wiederholen.
    Dazu, sollen meine beiden HotKeySet sollen eigentlich ein Start und Stop des Scripts ermöglichen...
    funktioniert leider nicht...
    Als Fehlermeldung bekomme ich, das etwas mit dem While nicht stimmt...

    Wäre über Hilfe erfreut, danke

    grüße

    Alles anzeigen

    die bedingung der schleife sollte so aussehen:

    [autoit]

    HotKeySet ("!^s", "start")

    sleep (2000)
    send ("{F1}")
    send ("{F4}")
    While $farbe <> 0xFFC8C8
    $farbe = PixelGetColor (117, 559)
    sleep (30)
    WEnd
    Sleep (2500)
    Send ("{F4}")

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

    HotKeySet ("!^e", "Exit")

    [/autoit]
  • Bildschirm-Lupe

    • andygo
    • 12. Mai 2010 um 20:39
    Zitat von AltairKD

    genaues lesen hilft EM.


    Ich habe ja geschrieben das er es mit ALT+A machen will es aber schon nur mit ALT funktioniert.

    Das die Hotkeys bei dir nicht wie gewünscht reagieren kann ich mir nicht erklären.
    Den Selbstschutz der Lupe, das sie sich nicht selbst und somit ins unendliche vergrößert,
    habe ich im Setup hinzugefügt. Scriptdownload im ersten Post aktualisiert. mfg

  • Bildschirm-Lupe

    • andygo
    • 12. Mai 2010 um 14:58

    das mit dem zoomen innerhalb der lupe will ich mal versuchen zu sperren.

    die hotkeys kann man sich ja im script beliebig selbst verändern.

    lg

  • Bildschirm-Lupe

    • andygo
    • 12. Mai 2010 um 08:17

    Hallo,

    habe nach Durchsicht von 2, 3 Scripten aus dem Autoitforum mal eine Lupe nach eigenen
    Vorstellungen gemacht:

    * Die Fenstergröße ist variabel, es hat keinen Systemrand und kann per Drag
    (links-gehaltener Maustaste) verschoben werden.

    * Ein Rechtsklick innerhalb des Lupenfenster öffnet ein kleines Setup.

    * Zoomverstellung auch ohne Setupdialog (Hotkey's ALT+1 bzw. ALT+2)

    * Einfrieren / Liveview per Hotkey ALT+a

    * Fixieren der Lupe auf einen bestimmten Bereich per Hotkey ALT+3
    (ohne Fixierung wird der Bereich um den Mauszeiger dargestellt)

    Viel Spass beim testen.

    EDIT: Habe das Script neu hochgeladen. Die Lupe ist nun mit einem Selbstschutz ausgestattet, den man per Setup aktivieren / deaktivieren kann.

    Dateien

    lupe.au3 5,61 kB – 578 Downloads
  • Upload Image [TCP]

    • andygo
    • 6. Mai 2010 um 11:41

    ich mach das mit autoit nur indirekt, arbeite in meinem script zusätzlich mit curl.

    hab dir mein script mal angehängt. die compilierte version findest du auf meiner seite
    https://autoit.de/www.andygo.de
    die nötigen file-installs sind alle kostenfreie programme, diese kann ich bei bedarf zur verfügung stellen.

  • Bild das in der zwischenablage liegt abspeichern

    • andygo
    • 25. April 2010 um 11:46

    um die mit bild-daten gefüllte zwischenablage z.b. in ne jpg-datei zu speichern nutze ich
    irfanview auf commandline-ebene, d.h. ohne das die gui von irfanview sichtbar wird.

    auszug aus meinem script:

    [autoit]

    Send("{PRINTSCREEN}")
    sleep(350)
    Runwait (FileGetShortName(@TempDir) & "\" & $precfg0 & "\" & $precfg0 & "i_view32.exe /clippaste /crop=("&$s_left&","&$s_top&","&$s_width&","&$s_height&") /silent /resample /convert=" & $datei2 & " /info=" & FileGetShortName(@TempDir) & "\" & $precfg0 & "\test.txt", FileGetShortName(@TempDir) & "\" & $precfg0 & "\", @SW_HIDE)

    [/autoit]
  • Möchte maus pos ablesen wie ?

    • andygo
    • 25. April 2010 um 02:46

    hier noch ne realtime erkennung als tooltip bei gedrückter maustaste:

    [autoit]

    #Include <Misc.au3>
    msgbox(0,"","test läuft nach dieser box solange die maustaste gedrückt gehalten wird.")
    While Not _IsPressed(01)
    Sleep(50)
    WEnd
    While _IsPressed(01)
    $mgp_2 = MouseGetPos( )
    ToolTip($mgp_2[0] & "x" & $mgp_2[1])
    sleep(50)
    WEnd
    ToolTip("")
    msgbox(0,"","test ende")

    [/autoit]

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™