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

Beiträge von name22

  • GDI+ zeichnen auf GUI mit IEembedded-obj

    • name22
    • 2. Januar 2011 um 02:54

    Versuch es mal mit dieser Funktion von SEuBo.

    Spoiler anzeigen
    [autoit]

    Func GUICtrlCreatePng($hWnd, $sPath, $iX, $iY) ; SEuBo
    _GDIPlus_Startup()
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend, $hGUI
    Local $hImage = _GDIPlus_BitmapCreateFromFile($sPath), $iWidth = _GDIPlus_ImageGetWidth($hImage), $iHeight = _GDIPlus_ImageGetHeight($hImage)
    $hGUI = GUICreate("", $iWidth, $iHeight, $iX, $iY, 0x80000000, BitOR(0x40, 0x80000), $hWnd)
    $cLabel = GUICtrlCreateLabel("", 0, 0, $iWidth, $iHeight)
    GUICtrlSetBkColor(-1, -2)
    GUISetState(@SW_SHOWNOACTIVATE, $hGUI)
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate("int X;int Y")
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $iWidth)
    DllStructSetData($tSize, "Y", $iHeight)
    $tSource = DllStructCreate("int X;int Y")
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate("byte Op;byte Flags;byte Alpha;byte Format")
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    GUISwitch($hWnd)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
    Return SetError(0,$hGUI,$cLabel)
    EndFunc ;==>GUICtrlCreatePng

    [/autoit]
  • UDF: GDI+ Alternativer ToolTip

    • name22
    • 1. Januar 2011 um 23:51
    Zitat

    Dankeschön für die UDF nochmals.


    Was dankst du mir, war doch im Grunde deine Idee ;) ... Hat keiner eine Idee für ein ToolTip Design? Oder besteht kein Bedarf? :)

  • UDF: GDI+ Alternativer ToolTip

    • name22
    • 1. Januar 2011 um 23:44

    @Higggiii Hab den "Bug" beseitigt ;). In der Version die auf meinem PC war, habe ich ihn bereits entfernt, aber dann wahrscheinlich vergessen sie hier zu aktualisieren. :S

  • Doppelklick registrieren/wahrnehmen

    • name22
    • 1. Januar 2011 um 22:45

    Das hier wäre eine recht einfache Methode...

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    $iKlickDelay = 1500

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

    While True
    If _IsPressed("01") Then
    $Timer = TimerInit()
    While TimerDiff($Timer) < $iKlickDelay
    If Not _IsPressed("01") Then
    While TimerDiff($Timer) < $iKlickDelay
    If _IsPressed("01") Then _Test()
    WEnd
    EndIf
    WEnd
    EndIf
    WEnd

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

    Func _Test()
    MsgBox(64, "Test", "Test")
    EndFunc

    [/autoit]
  • Speichern

    • name22
    • 1. Januar 2011 um 20:34

    Du hast die Sektion vergessen, IniRead hat 4 Parameter und nicht 3 ;). Und bitte verwende

    Code
    [autoit][\autoit] und [spoiler][/spoiler]

    Tags in deinen Posts.

  • Dateiendung aus Variable löschen

    • name22
    • 1. Januar 2011 um 20:31

    Wenn ich dich richtig verstanden habe, suchst du nach FileMove...

  • Dateiendung aus Variable löschen

    • name22
    • 1. Januar 2011 um 20:13

    Klar, aber dazu müsste ich wissen was du machen möchtest. Sonst kann ich dir schlecht sagen welchen Befehl du verwenden kannst. ;)

  • Speichern

    • name22
    • 1. Januar 2011 um 20:11
    Zitat

    und was ist da falsch


    Nichts, aber das Programm macht offensichtlich nicht was du willst... Das könnte damit zusammenhängen, dass du die aus der Ini ausgelesenen Daten kein einziges Mal verwendest. :rolleyes: Du solltest dir vielleicht mal die "Wichtigen Links" am linken Rand anchauen...
    Verwende bitte in Zukunft AutoIt und Spoiler Tags um den Code im Forum etwas übersichtlich erscheinen zu lassen. ;)

  • Dateiendung aus Variable löschen

    • name22
    • 1. Januar 2011 um 20:07

    Das geht nicht, und wieso sollte das auch gehen? Bist du dir sicher, dass du hier den richtigen Befehl für deine Zwecke verwendest? ^^

  • Speichern

    • name22
    • 1. Januar 2011 um 20:03

    So wird das ganze wieder ausgelesen ;).

  • Dateiendung aus Variable löschen

    • name22
    • 1. Januar 2011 um 20:02

    Dann musst du den das ganze einfach vom Script aus in eine au3 Datei schreiben. ;)

  • Speichern

    • name22
    • 1. Januar 2011 um 19:40

    Ich glaube nicht, dass es mit Koda geht. Ich wüsste aber auch nicht wozu man da Koda braucht. :huh:
    Du kannst übrigens mehrere Sätze in einen Post schreiben, falls du das nicht wusstest. Und falls du etwas vergessen haben solltest, kannst du auch auf bearbeiten klicken. :rolleyes: Aber 3 Posts nacheinander in 10 Minuten und 2 davon direkt nacheinander? Das macht für mich wenig Sinn...

  • GDI+ MyButtons

    • name22
    • 1. Januar 2011 um 17:44

    Ich wollte eigentlich eine neue Funktion machen, aber jetzt wo ich mir das so anschaue ist es nicht wirklich nötig (abgesehen vom Funktionsnamen passt ja alles halbwegs).^^
    Was verstehst du denn nicht? SEuBos Funktion erstellt eine mehrschichtige Child-GUI in der Haupt-GUI und kopiert das Bild mit _WinAPI_UpdateLayeredWindow rein. Mehrschichtige Fenster unterstützen scheinbar Halbtransparenz, deswegen funktioniert das ganze auch mit halbtransparenten png Dateien.

  • Anti Decompiler

    • name22
    • 1. Januar 2011 um 17:16
    Zitat

    Ich habe unter Google leider nichts gefunden...


    Aha... Wie lang hast du gesucht? 10 Sekunden? :huh:
    Sieh dir doch dazu mal den 3ten Post in deinem Thread an... :rolleyes:

  • GDI+ MyButtons

    • name22
    • 1. Januar 2011 um 17:11

    Ich hab die Funktion von SEuBo mal ein wenig modifiziert, wobei ich das ganze lieber in eine extra Funktion gepackt hätte...
    Naja es funktioniert zumindest :D.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>

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

    Global Const $Font = "Arial Black", $FontSize = 10, $FontColor = 0x000000, $BgColorTitle = 0xFFFFFF, $BgColor = 0x777799, $TitleHeight = 20, $DefaultCtrlHeight = 16

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

    $Width = 400
    $Height = 100
    $Title = "ButtonControl"
    $x_Button1 = 8
    $y_Button1 = 30

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

    $hGUI = GUICreate($Title, $Width, $Height, -1, -1, $WS_POPUP)
    GUISetBkColor($BgColor)

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

    $knopt1 = GUICtrLCreatePng($hGUI,@ScriptDir & "\Button.png", $x_Button1, $y_Button1, "Test")
    $knopt2 = GUICtrLCreatePng($hGUI,@ScriptDir & "\Button.png", $x_Button1, $y_Button1+17, "Test 2")
    $knopt3 = GUICtrLCreatePng($hGUI,@ScriptDir & "\Button.png", $x_Button1, $y_Button1+34, "AutoIt")
    $knopt4 = GUICtrLCreatePng($hGUI,@ScriptDir & "\Button.png", $x_Button1, $y_Button1+51)

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

    $Close = GUICtrlCreatePic("close.bmp", $Width - 16, 7, 9, 9)
    $Minimize = GUICtrlCreatePic("minimize.bmp", $Width - 31, 7, 9, 9)

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

    GUISetFont($FontSize, 400, 0, $Font)
    $TitleBar = GUICtrlCreateLabel($Title, 6, 4, $Width - 42, 17, -1, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetColor(-1, $FontColor)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlCreateGraphic(0, 0, $Width, $TitleHeight)
    GUICtrlSetBkColor(-1, $BgColorTitle)

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

    GuiRoundCorners($hGUI, 0, 0, 2, 2)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $knopt1
    MsgBox(0,"","Button1 geklickt!",1)
    Case $knopt2
    MsgBox(0,"","Button2 geklickt!",1)
    Case $knopt3
    MsgBox(0,"","Button3 geklickt!",1)
    Case $knopt4
    MsgBox(0,"","Button4 geklickt!",1)
    Case $Minimize
    GUISetState(@SW_MINIMIZE)
    Case $Close
    ExitLoop
    ; Case $GUI_EVENT_CLOSE
    ; ExitLoop
    EndSwitch
    WEnd
    Exit

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

    Func GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
    $pos = WinGetPos($h_win)
    $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
    If $ret[0] Then
    $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
    If $ret2[0] Then
    Return 1
    Else
    Return 0
    EndIf
    Else
    Return 0
    EndIf
    EndFunc ;==>GuiRoundCorners

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

    Func GUICtrlCreatePng($hWnd, $sPath, $iX, $iY, $sString = "", $sFont = "Arial", $iFontSize = 5, $FontColor = 0xFF000000) ; SEuBo
    _GDIPlus_Startup()
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend, $hGUI
    Local $hImage = _GDIPlus_ImageLoadFromFile($sPath), $iWidth = _GDIPlus_ImageGetWidth($hImage), $iHeight = _GDIPlus_ImageGetHeight($hImage)
    Local $hImageContext = _GDIPlus_ImageGetGraphicsContext($hImage)

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

    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize)
    $hBrush = _GDIPlus_BrushCreateSolid($FontColor)
    $aMeasure = _GDIPlus_GraphicsMeasureString($hImageContext, $sString, $hFont, _GDIPlus_RectFCreate(), $hFormat)
    DllStructSetData($aMeasure[0], "X", $iWidth / 2 - DllStructGetData($aMeasure[0], "Width") / 2)
    DllStructSetData($aMeasure[0], "Y", $iHeight / 2 - DllStructGetData($aMeasure[0], "Height") / 2)
    _GDIPlus_GraphicsDrawStringEx($hImageContext, $sString, $hFont, $aMeasure[0], $hFormat, $hBrush)

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

    $hGUI = GUICreate("", $iWidth, $iHeight, $iX, $iY, 0x80000000, BitOR(0x40, 0x80000), $hWnd)
    $cLabel = GUICtrlCreateLabel("", 0, 0, $iWidth, $iHeight)
    GUICtrlSetBkColor(-1, -2)
    GUISetState(@SW_SHOWNOACTIVATE, $hGUI)
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate("int X;int Y")
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", $iWidth)
    DllStructSetData($tSize, "Y", $iHeight)
    $tSource = DllStructCreate("int X;int Y")
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate("byte Op;byte Flags;byte Alpha;byte Format")
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", 255)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
    GUISwitch($hWnd)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_GraphicsDispose($hImageContext)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_Shutdown()
    Return SetError(0,$hGUI,$cLabel)
    EndFunc ;==>GUICtrlCreatePng

    [/autoit]
  • Anti Decompiler

    • name22
    • 1. Januar 2011 um 12:51
    Zitat

    Ich bin mir nicht sicher, aber hatten wir die Diskussion nicht schon verdammt oft hier im Forum? :D


    Glaube schon.... Ich hätte einfach mit "Nein" antworten sollen, dann wäre das hier vielleicht schon gegessen. :D

  • Programmablauf

    • name22
    • 1. Januar 2011 um 12:49

    Klick mal hier drauf:

    [autoit]

    AdlibRegister ;<-- Hier klicken.

    [/autoit]


    Und liest dir die ganze Seite mal durch. Danach Setzt du das AdlibRegister, MIT einem Intervall in Millisekunden als 2ten Parameter, vor die Endlosschleife. Und das AdlibUnregister kannst du entfernen, das bringt in diesem Fall nichts.

  • Anti Decompiler

    • name22
    • 1. Januar 2011 um 03:38
    Zitat

    Ähm also ich lese da nun nicht, dass es verboten ist das Decompilieren zu verhindern


    Ist es auch nicht, aber wie willst du das verhindern? Die AutoIt exe verändern IST verboten, und eine andere Möglichkeit es zu verhindern fällt mir nicht ein. :huh:

    Zitat

    Und in der Lizenz von Autoit steht auch nirgends, dass es möglich sein muss die exe zu decompilieren.


    Nein. Und? ?(

  • Anti Decompiler

    • name22
    • 1. Januar 2011 um 02:59
    Zitat


    Wo steht dass das verboten ist.


    Ich nehme an in den AGB von AutoIt...

    Zitat

    Bzw. wer legt sowas fest?


    Der Programmierer des Programms AutoIt bzw. der dem die Rechte daran gehören... Glaube ich zumindest...

  • Anti Decompiler

    • name22
    • 31. Dezember 2010 um 23:16

    Nein. Aber es gibt einen Obfuscator, welcher es schwieriger macht das dekompilierte zu verstehen.

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™