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

Beiträge von Greenhorn

  • Function gesucht!

    • Greenhorn
    • 29. Mai 2010 um 21:17

    Nein, ich glaube ich weiß welchen Thread Du meinst, erinnere mich aber auch nicht mehr an den Titel.

    Brauchst Dich aber nicht weiter anstrengen ... ;)

    Spoiler anzeigen
    [autoit]

    #include-once

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

    #include <Constants.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>

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

    OnAutoItExitRegister ("AppExit")

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

    ; --- $DRAWITEMSTRUCT
    Global Const $DRAWITEMSTRUCT = _
    'uint CtlType;'& _
    'uint CtlID;'& _
    'uint itemID;'& _
    'uint itemAction;'& _
    'uint itemState;'& _
    'hwnd hwndItem;'& _
    'ptr hDC;'& _
    'long rcItem[4];'& _
    'ulong_ptr itemData;'

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

    Global Enum $PBS_NORMAL = 1, _
    $PBS_HOT, _
    $PBS_PRESSED, _
    $PBS_DISABLED, _
    $PBS_DEFAULTED, _
    $PBS_DEFAULTED_ANIMATING

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

    Global Const $BP_PUSHBUTTON = 1

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

    Global $g_hTheme
    Global $g_hThemeLib

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

    Global $g_hButtonProc
    Global $g_bMouseHover = False

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

    Global $ID_BUTTON_0
    Global $ID_BUTTON_1

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    $g_hThemeLib = DllOpen ("uxtheme.dll")
    If ($g_hThemeLib == -1) Then
    ConsoleWrite ("! g_hThemeLib = "&$g_hThemeLib & @crlf)
    Else
    MainDlg ( )
    EndIf

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

    Exit (0)

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

    Func MainDlg ( )

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

    Local $hWnd
    Local $hwndButton_1

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

    $hWnd = GUICreate ("Themed Ownerdraw Demo", 400, 300)

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

    $ID_BUTTON_1 = GUICtrlCreateButton ("Ownerdraw", 25, 85, 350, 90)
    $ID_BUTTON_0 = GUICtrlCreateButton ("Standard", 25, 185, 350, 90)

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

    GUICtrlSetStyle ($ID_BUTTON_1, BitOR($WS_TABSTOP, $BS_NOTIFY, $BS_OWNERDRAW))
    GUICtrlSetTip ($ID_BUTTON_1, "Selbstgezeichnete Schaltfläche")

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

    $hwndButton_1 = GUICtrlGetHandle ($ID_BUTTON_1)
    $g_hTheme = OpenThemeData ($hwndButton_1, "Button")

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

    ;~ $g_hButtonProc = DllCallbackRegister ("ButtonWndProc", "long", "hwnd;uint;long;long")

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

    GUIRegisterMsg ($WM_DRAWITEM, "WM_DRAWITEM")
    GUIRegisterMsg ($WM_MOUSEMOVE, "WM_MOUSEMOVE")

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

    GUISetState (5, $hWnd)

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

    While True

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

    Switch GUIGetMsg ( )
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd

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

    EndFunc

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

    Func WM_DRAWITEM ($hwnd, $message, $wParam, $lParam)

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

    Local Const $ODA_DRAWENTIRE = 0x0001
    Local Const $ODA_SELECT = 0x0002
    Local Const $ODA_FOCUS = 0x0004
    Local Const $ODS_SELECTED = 0x0001
    Local Const $ODS_GRAYED = 0x0002
    Local Const $ODS_DISABLED = 0x0004
    Local Const $ODS_CHECKED = 0x0008
    Local Const $ODS_FOCUS = 0x0010
    Local Const $ODS_HOTLIGHT = 0x0040
    Local Const $ODS_INACTIVE = 0x0080
    Local Const $ODS_NOACCEL = 0x0100
    Local Const $ODS_NOFOCUSRECT = 0x0200

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

    Local $dis = DllStructCreate ($DRAWITEMSTRUCT, $lParam)
    Local $hDC = DllStructGetData ($dis, "hDC")
    Local $hwndItem = DllStructGetData ($dis, "hwndItem")
    Local $nItemAction = DllStructGetData ($dis, "itemAction")
    Local $nItemState = DllStructGetData ($dis, "itemState")

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

    Local $lprcItem = DllStructGetPtr ($dis, 8)

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

    Local $bChecked = BitAND($nItemState, $ODS_CHECKED)
    Local $bFocused = BitAND($nItemState, $ODS_FOCUS)
    Local $bGrayed = BitAND($nItemState, BitOR($ODS_GRAYED, $ODS_DISABLED))
    Local $bSelected = BitAND($nItemState, $ODS_SELECTED)

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

    Local $sFormat = "> WM_DRAWITEM (%#x, %d, %#x, %#x)"

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

    ConsoleWrite (StringFormat ($sFormat, $hwnd, $message, $wParam, $lParam) & @crlf)
    ConsoleWrite ("> CtlType = "&DllStructGetData ($dis, 1) & @crlf)
    ConsoleWrite ("> CtlID = "&DllStructGetData ($dis, 2) & @crlf)
    ConsoleWrite ("> itemID = "&DllStructGetData ($dis, 3) & @crlf)
    ConsoleWrite ("> itemAction = "&DllStructGetData ($dis, 4) & @crlf)
    ConsoleWrite ("> itemState = "&Ptr (DllStructGetData ($dis, 5)) & @crlf)
    ConsoleWrite ("> hwndItem = "&DllStructGetData ($dis, 6) & @crlf)
    ConsoleWrite ("> hDC = "&DllStructGetData ($dis, 7) & @crlf)
    ConsoleWrite ("> rcItem.left = "&DllStructGetData ($dis, 8, 1) & @crlf)
    ConsoleWrite ("> rcItem.top = "&DllStructGetData ($dis, 8, 2) & @crlf)
    ConsoleWrite ("> rcItem.right = "&DllStructGetData ($dis, 8, 3) & @crlf)
    ConsoleWrite ("> rcItem.bottom = "&DllStructGetData ($dis, 8, 4) & @crlf)
    ConsoleWrite ("> itemData = "&DllStructGetData ($dis, 9) & @crlf)

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

    ConsoleWrite ("--------------------" & @crlf)

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

    If ($nItemAction == $ODA_DRAWENTIRE) Then

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

    If ($bFocused) Then
    If ($bSelected) Then
    DrawControlTheme ($hDC, $lprcItem, $hwndItem, $g_hTheme, $PBS_PRESSED)
    Else
    DrawControlTheme ($hDC, $lprcItem, $hwndItem, $g_hTheme, $PBS_DEFAULTED)
    EndIf
    InflateRect ($lprcItem, -3, -3)
    DrawFocusRect ($hDC, $lprcItem)
    Else
    DrawControlTheme ($hDC, $lprcItem, $hwndItem, $g_hTheme, $PBS_NORMAL)
    EndIf

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

    ElseIf ($nItemAction == $ODA_FOCUS) Then

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

    If ($bFocused) Then
    DrawControlTheme ($hDC, $lprcItem, $hwndItem, $g_hTheme, $PBS_DEFAULTED)
    EndIf
    If ($bSelected) Then
    DrawControlTheme ($hDC, $lprcItem, $hwndItem, $g_hTheme, $PBS_PRESSED)
    EndIf
    InflateRect ($lprcItem, -3, -3)
    DrawFocusRect ($hDC, $lprcItem)
    EndIf

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

    Return 1

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

    EndFunc

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

    Func WM_MOUSEMOVE ($hwnd, $message, $wParam, $lParam)

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

    EndFunc

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

    Func AppExit ( )

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

    if ($g_hThemeLib) then
    if ($g_hTheme) then
    CloseThemeData ($g_hTheme)
    endif
    DllClose ($g_hThemeLib)
    endif

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

    if ($g_hButtonProc) then
    DllCallbackFree ($g_hButtonProc)
    endif

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

    EndFunc
    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Func DrawControlTheme ($hDC, $lprect, $hwndButton, $hTheme, $iState)

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

    Local $rc = DllStructCreate ("long;long;long;long", $lprect)
    Local $rcContent = DllStructCreate ("long;long;long;long")
    Local $szButtonText
    Local $hr
    Local $cch

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

    $szButtonText = WinGetTitle ($hwndButton)
    $cch = StringLen ($szButtonText)

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

    if ($hTheme) then

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

    $hr = DrawThemeBackground ($hTheme, $hDC, $BP_PUSHBUTTON, _
    $iState, DllStructGetPtr ($rc), 0)

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

    $hr = GetThemeBackgroundContentRect ($hTheme, $hDC, _
    $BP_PUSHBUTTON, $iState, DllStructGetPtr ($rc), DllStructGetPtr ($rcContent))

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

    $hr = DrawThemeText ($hTheme, $hDC, $BP_PUSHBUTTON, $iState, _
    $szButtonText, $cch, _
    BitOR ($DT_CENTER, $DT_VCENTER, $DT_SINGLELINE), _
    0, DllStructGetPtr ($rcContent))

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

    endif

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

    EndFunc

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Func InflateRect ($lprc, $dx, $dy)

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

    Local $aRes = DllCall ('user32.dll', 'int', 'InflateRect', _
    'ptr', $lprc, _ ; rectangle
    'int', $dx, _ ; amount to adjust width
    'int', $dy) ; amount to adjust height
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func InvalidateRect ($hWnd, $lpRect, $bErase)

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

    Local $aRes = DllCall ('user32.dll', 'int', 'InvalidateRect', _
    'hwnd', $hWnd, _ ; handle to window
    'ptr', $lpRect, _ ; rectangle coordinates
    'int', $bErase) ; erase state
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func DrawFocusRect ($hDC, $lprc)

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

    Local $aRes = DllCall ('user32.dll', 'int', 'DrawFocusRect', _
    'ptr', $hDC, _ ; handle to device context
    'ptr', $lprc) ; logical coordinates
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Func CloseThemeData ($hTheme)

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

    Local $aRes = DllCall ($g_hThemeLib, 'long', 'CloseThemeData', _
    'ptr', $hTheme)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func OpenThemeData ($hwnd, $pszClassList)

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

    Local $aRes = DllCall ($g_hThemeLib, 'ptr', 'OpenThemeData', _
    'hwnd', $hwnd, _
    'wstr', $pszClassList)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func DrawThemeBackground ($hTheme, $hdc, $iPartId, $iStateId, $pRect, $pClipRect)

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

    Local $aRes = DllCall ($g_hThemeLib, 'long', 'DrawThemeBackground', _
    'ptr', $hTheme, _
    'ptr', $hdc, _
    'int', $iPartId, _
    'int', $iStateId, _
    'ptr', $pRect, _
    'ptr', $pClipRect)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func DrawThemeEdge ($hTheme, $hdc, $iPartId, $iStateId, $pDestRect, $uEdge, $uFlags, $pContentRect)

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

    Local $aRes = DllCall ($g_hThemeLib, 'long', 'DrawThemeEdge', _
    'ptr', $hTheme, _
    'ptr', $hdc, _
    'int', $iPartId, _
    'int', $iStateId, _
    'ptr', $pDestRect, _
    'uint', $uEdge, _
    'uint', $uFlags, _
    'ptr', $pContentRect)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func DrawThemeText ($hTheme, $hdc, $iPartId, $iStateId, $pszText, $iCharCount, $dwTextFlags, $dwTextFlags2, $pRect)

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

    Local $aRes = DllCall ($g_hThemeLib, 'long', 'DrawThemeText', _
    'ptr', $hTheme, _
    'ptr', $hdc, _
    'int', $iPartId, _
    'int', $iStateId, _
    'wstr', $pszText, _
    'int', $iCharCount, _
    'dword', $dwTextFlags, _
    'dword', $dwTextFlags2, _
    'ptr', $pRect)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    Func GetThemeBackgroundContentRect ($hTheme, $hdc, $iPartId, $iStateId, $pBoundingRect, $pContentRect)

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

    Local $aRes = DllCall ($g_hThemeLib, 'long', 'GetThemeBackgroundContentRect', _
    'ptr', $hTheme, _
    'ptr', $hdc, _
    'int', $iPartId, _
    'int', $iStateId, _
    'ptr', $pBoundingRect, _
    'ptr', $pContentRect)
    If @error Then _
    Return @error

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

    Return $aRes[0]

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

    EndFunc

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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


    Gruß
    Greenhorn

    Dateien

    Themed_Ownerdraw.au3 9,5 kB – 253 Downloads
  • Fensteroperationen

    • Greenhorn
    • 29. Mai 2010 um 21:12
    Zitat von Helveticus

    Ich hab doch noch eine Frage. Und zwar wie kann man in einem Programm z.B. Notepad die Navigationsleiste benutzen? Also z.B. auf Format --> Zeilenumbruch klicken? Also mit MouseClick würde das sicher gehen, aber das geht doch sicher auch einfacher.


    Damit geht es -> WinMenuSelectItem ;)


    Gruß
    Greenhorn

  • Fenster verstecken

    • Greenhorn
    • 29. Mai 2010 um 14:15

    Hi,

    zu 1.) Geht glaube ich nicht "manuell" im Explorer

    zu 2.) Stelle das Fenster mit @SW_RESTORE wieder her. ;)


    Gruß
    Greenhorn

  • Happy Birthday anno2008 und SEuBo

    • Greenhorn
    • 26. Mai 2010 um 17:44

    Moinsen.

    Auch von mir die herzlichsten Glückwünsche, ihr beiden. :)

    Möge die Macht mit euch sein. ;)


    Gruß
    Greenhorn

  • Automatische Installation

    • Greenhorn
    • 25. Mai 2010 um 22:18

    Hi,

    versuche es mal damit ... (ungetestet)

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #RequireAdmin

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

    #include <Constants.au3>

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

    Global Const $ID_COMBO_LANG = 1002
    Global Const $ID_BUTTON_OK = 1
    Global Const $ID_TREEVIEW_COMPONENTS = 1032
    Global Const $ID_CHECKBOX_EXEC_NPP = 1203

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Exit (InstallNpp ("c:\Install\npp.5.6.8.Installer.exe"))

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Func InstallNpp ($setup_path)

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

    ;-- Prüfen, ob die Datei existiert.
    If (FileExists ($setup_path)) Then
    ShellExecute ($setup_path)
    Else
    Return ErrorMsg ('Die Datei "'&$setup_path&'" existiert nicht.')
    EndIf

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

    ;-- Wir warten max. 10 Sekunden auf das Sprachauswahl-Dialogfenster.

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

    If (WinWait ("Installer Language","Please select a language.", 10)) Then

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

    $hwnd = WinGetHandle ("Installer Language","Please select a language.")

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

    WinActivate($hwnd)

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

    ;-- Ist die Sprache schon auf Deutsch gesetzt?

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

    If (ControlGetText ($hwnd, "", $ID_COMBO_LANG) <> "Deutsch") Then

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

    ;-- Wenn nicht, dann setzen wir die Sprache ...

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

    ControlSetText ($hwnd, "", $ID_COMBO_LANG, "Deutsch")
    EndIf

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

    ;-- Sprachauswahl-Dialog beenden.

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

    If (ControlClick($hwnd, "Please select a language.", $ID_BUTTON_OK)) Then

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

    ;-- Wir warten max. 5 Sekunden auf das Installations-Dialogfenster.

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

    If (WinWait ("Notepad++ v5.6.8 Installation", "", 5)) Then

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

    $hwnd = WinGetHandle ("Notepad++ v5.6.8 Installation")

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

    WinActivate($hwnd)

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

    ;-- Willkommen-Dialog
    If (not ControlClick ($hwnd, "", $ID_BUTTON_OK)) Then _ ; "&Weiter >"
    Return ErrorMsg ("Der Willkommen-Dialog konnte nicht weitergeführt werden.")

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

    Sleep (250)

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

    ;-- Lizenz-Dialog
    If (not ControlClick ($hwnd, "", $ID_BUTTON_OK)) Then _ ; "&Annehmen"
    Return ErrorMsg ("Der Lizenz-Dialog konnte nicht weitergeführt werden.")

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

    Sleep (250)

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

    ;-- Zielverzeichnis Auswahl-Dialog
    If (not ControlClick ($hwnd, "", $ID_BUTTON_OK)) Then _ ; "&Weiter >"
    Return ErrorMsg ("Der Zielverzeichnis Auswahl-Dialog konnte nicht weitergeführt werden.")

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

    Sleep (250)

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

    ;-- Komponenten Auswahl-Dialog

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

    ; Den Plugins-Zweig in der Baumansicht ausklappen (Test...).
    ControlTreeView ($hwnd, "", $ID_TREEVIEW_COMPONENTS, "Expand", "Plugins")

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

    Sleep (5000)

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

    If (not ControlClick ($hwnd, "", $ID_BUTTON_OK)) Then _ ; "&Installieren"
    Return ErrorMsg ("Der Komponenten Auswahl-Dialog konnte nicht weitergeführt werden.")

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

    ;-- Auf den "Installation fertig stellen"-Dialog warten.

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

    WinWait ($hwnd, "Die Installation von Notepad++ v5.6.8 wird abgeschlossen")

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

    ;-- Installation fertig stellen.

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

    ; Notepad++ NICHT starten.
    ControlCommand ($hwnd, "", $ID_CHECKBOX_EXEC_NPP, "UnCheck", "")

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

    If (not ControlClick ($hwnd, "", $ID_BUTTON_OK)) Then _ ; "&Fertig stellen"
    Return ErrorMsg ('Der "Installation fertig stellen"-Dialog konnte nicht weitergeführt werden.')

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

    Else
    ErrorMsg ("Das Installations-Dialogfenster konnte nicht ermittelt werden.")
    EndIf
    Else
    Return ErrorMsg ("Der Sprachauswahl-Dialog konnte nicht beendet werden.")
    EndIf
    Else
    ErrorMsg ("Das Sprachauswahl-Dialogfenster konnte nicht ermittelt werden.")
    EndIf

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

    Return 0

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

    EndFunc

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

    ;««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

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

    Func ErrorMsg ($text)

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

    Local $sfText = StringFormat ($text, "")
    Return MsgBox (BitOR ($MB_ICONHAND, $MB_OK), 0, $sfText)

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

    EndFunc

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

    EDIT:
    Evtl. noch ein paar Sleep (250) einbauen (ganz vergessen... :rolleyes: ).

    Gruß
    Greenhorn

  • EditFeld - Zeilennumerierung

    • Greenhorn
    • 22. Mai 2010 um 22:50

    Hi,

    das Windows Standard-Eingabefeld bietet diese Möglichkeit nicht.
    Wenn Du das "EDIT"-Steuerelement dahingehend erweitern möchtest, dann wohl nur so wie du es bereits umschrieben hast.

    Scintilla, bzw. die SciLexer.dll, ist wohl die einfachste und beste Alternative.
    Beispiele gibt es genug im englischen Forum oder vielleicht auch hier im Subforum Scripte, z.B.:
    AutoIt Editor
    SciLexer UDF


    Gruß
    Greenhorn

  • GDI+ Button mit Hovereffekt

    • Greenhorn
    • 21. Mai 2010 um 19:27

    Ich habe vor einiger Zeit einmal eine eigene Schaltfläche mit Bitmaps gecodet.

    Hauptgrund war unter anderem die Implementation des "Hover"-Effektes.
    Leider ist der Bildwechsel sehr langsam, zu langsam ...

    EzBmpButton

    Gruß
    Greenhorn

  • Problem mit GUICtrlSetGraphic

    • Greenhorn
    • 21. Mai 2010 um 18:01

    Schon gefunden ... ;)

    Spoiler anzeigen
    [autoit]

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

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

    Global $SurfaceGUI = GUICreate("SurfaceGUI", 400, 400)
    Global $Surface = GUICtrlCreateGraphic(0,0, 400, 400)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetGraphic($surface, $GUI_GR_MOVE, 100, 100)
    GUICtrlSetGraphic($surface, $GUI_GR_LINE, 100, 200)
    GUISetState(@SW_SHOW)

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

    Sleep(2000)

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

    _test()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _test()
    $test = GUICtrlSetGraphic($surface, $GUI_GR_LINE, 200, 200)
    ; Erklärt den gesamten Anwendungsbereich für ungültig und veranlasst ein Neuzeichnen des selbigen.
    InvalidateRect ($SurfaceGUI, 0, TRUE)
    EndFunc

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

    Func InvalidateRect ($hWnd, $lpRect, $bErase)

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

    Local $aRes = DllCall ("user32.dll", 'int', 'InvalidateRect', _
    'hwnd', $hWnd, _ ; handle to window
    'ptr', $lpRect, _ ; rectangle coordinates
    'int', $bErase) ; erase state
    Return $aRes[0]

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

    EndFunc

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


    ... und so kann man die Zeichenaktion optimieren ...

    Spoiler anzeigen
    [autoit]

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

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

    Global Const $_RECT = _
    "long left;"& _
    "long top;"& _
    "long right;"& _
    "long bottom;"

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

    Global $SurfaceGUI = GUICreate("SurfaceGUI", 400, 400)
    Global $Surface = GUICtrlCreateGraphic(0,0, 400, 400)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetGraphic($surface, $GUI_GR_MOVE, 100, 100)
    GUICtrlSetGraphic($surface, $GUI_GR_LINE, 100, 200)
    GUISetState(@SW_SHOW)

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

    Sleep(2000)

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

    DrawLine (100, 200, 200, 200)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    ; x, y = Startpunkt; cx, cy = Endpunkt
    Func DrawLine ($x, $y, $cx, $cy)

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

    Local $rc

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

    $rc = DllStructCreate ($_RECT)
    DllStructSetData ($rc, "left", $x)
    DllStructSetData ($rc, "top", $y)
    DllStructSetData ($rc, "right", $cx + 1)
    DllStructSetData ($rc, "bottom", $cy + 1)

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

    $test = GUICtrlSetGraphic($surface, $GUI_GR_LINE, $cx, $cy)

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

    ; In diesem Falle wird nur das angegebene Rechteck für ungültig erklärt und neu gezeichnet.
    InvalidateRect ($SurfaceGUI, DllStructGetPtr ($rc), TRUE)
    EndFunc

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

    Func InvalidateRect ($hWnd, $lpRect, $bErase)

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

    Local $aRes = DllCall ("user32.dll", 'int', 'InvalidateRect', _
    'hwnd', $hWnd, _ ; handle to window
    'ptr', $lpRect, _ ; rectangle coordinates
    'int', $bErase) ; erase state
    Return $aRes[0]

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

    EndFunc

    [/autoit]


    Gruß
    Greenhorn

  • Tray Eintrag mit Rechtklick Menü?

    • Greenhorn
    • 19. Mai 2010 um 22:36

    Hmm, ich hab da mal was zusammengebastelt ...

    Also, noch kurz zur Erklärung: Mit dem normalen AutoIt Traymenü funktioniert es nicht.
    Man muss die WM_MENURBUTTONUP Nachricht verarbeiten und ebenso empfiehlt es sich WM_COMMAND zu verarbeiten. Es geht auch ohne, aber der Klick auf das Popupmenü des Popupmenüs (;)) kommt über GUIGetMsg verspätet, zu spät, in die Schleife.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Gruß
    Greenhorn

    Bilder

    • TrayMenu.jpg
      • 19,65 kB
      • 437 × 149

    Dateien

    PopupOnPopupMenu.zip 7,98 kB – 306 Downloads WndMenu.jpg 30,03 kB – 0 Downloads
  • flackernde GUI

    • Greenhorn
    • 12. Mai 2010 um 22:36
    Zitat von Mahagon

    Wozu eine For Schleife?

    _GUICtrlListView_AddArray

    Wenns kein Array ist schreib die Variablen in ein Array und pack es dann ins Listview :)
    Bei mir flackert es auch nicht (Habe ein Programm mit ~150 Einträgen)

    So ist es ...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>

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

    Global $pic_dir = "C:\Bilder\"

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

    $MainForm_1 = GUICreate("db", 1001, 701, (@DesktopWidth - 1001) / 2, ((@DesktopHeight - 701) / 2) - 30)
    $Tab1 = GUICtrlCreateTab(0, 0, 1001, 701)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $background1 = GUICtrlCreatePic($pic_dir & "blau.jpg", 8, 30, 985, 665);, $WS_CLIPSIBLINGS)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button1 = GUICtrlCreateButton("neu erstellen", 406, 313, 181, 23)
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    GUICtrlSetState(-1,$GUI_SHOW)
    $ListView1 = GUICtrlCreateListView("Nr. | Pflanzjahr | Name | Blütezeit | Standort | Boden", 8, 37, 977, 633)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 50)
    GUICtrlCreateTabItem("")

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

    listviewNew()
    GUISetState(@SW_SHOW)

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    listview()
    EndSwitch
    WEnd

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

    Func listviewNew ($nr = 30)

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

    Local $arItems [$nr][6]

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

    _GUICtrlListView_DeleteAllItems($ListView1)
    For $i = 0 To UBound ($arItems) -1
    For $ii = 0 To 5
    $arItems[$i][$ii] = $i
    Next
    Next

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

    _GUICtrlListView_AddArray ($ListView1, $arItems)

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

    EndFunc

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


    Gruß
    Greenhorn

  • 3. Fremdsprache: Französisch relavant für Programmieren?

    • Greenhorn
    • 1. Mai 2010 um 11:44
    Zitat von ideas2code

    Das einzige wozu französisch wirklich zu gebrauchen ist, ist Fluchen. Man zieht übelst vom Leder und es hört sich trotzdem an als würde man seinem Gegenüber den Arsch pudern.


    Das funktioniert auch sehr gut auf Plattdüütsch ;) :D


    Gruß
    Greenhorn

  • Striptease ...

    • Greenhorn
    • 30. April 2010 um 13:17
    Zitat von Xenobiologist

    Ich finde es witzig. Auch wenn ich gern weiter geguckt hätte 8o


    Du sprichst mir aus der Seele. :love:
    Habe schon alles versucht, aber nichts zu machen. :rolleyes::D

    EDIT:
    So ist's aber auch schöner für die Fantasie ...


    Gruß

  • Striptease ...

    • Greenhorn
    • 30. April 2010 um 13:00

    Moin,

    hier gibt's was auf die Augen. ;)

    1oo% Jugendfrei !

    Striptease


    Gruß
    Greenhorn

  • In welcher Dll sind die Bilder von _GuiCtrlToolbar

    • Greenhorn
    • 22. April 2010 um 00:00
    Zitat von nuts

    Das hat mich auch etwas verwirrt.
    Was ist das für eine Technik mit dem Komplettbild?


    Das Zauberwort ist ImageList ... ;)


    Gruß
    Greenhorn

  • Objekt Orientierte Programmierung

    • Greenhorn
    • 21. April 2010 um 17:31

    Moin,

    OOP hat wenig, oder gar nichts, mit der (Programmier-)Sprache zu tun, sondern ist eher eine Sache der Implementierung.


    Gruß
    Greenhorn

  • DLL erstellen

    • Greenhorn
    • 21. April 2010 um 17:26

    Mahlzeit,

    sieh dir bitte mal folgendes an, das sollte dir weiterhelfen ...
    DLL


    Gruß
    Greenhorn

  • Rechner verbessern , Prozessor & Co

    • Greenhorn
    • 21. April 2010 um 03:52

    Mein Tip: Knete sparen und CPU, MB und RAM neu kaufen, bzw. zum Geburtstag/Weihnachten wünschen.
    Und dann lieber einen Phenom X4 nehmen, der kostet zwar das Doppelte wie der X2, aber damit bist Du auf lange Sicht besser beraten.

    Bis dahin bleibe ich dabei:
    Eine neue und schnelle Festplatte wird dein jetziges System am meisten beschleunigen !!


    Gruß
    Greenhorn

  • Hilfe Windows 7

    • Greenhorn
    • 21. April 2010 um 03:45

    Hi,

    Du solltest NIEMALS eine höhere Auflösung wählen, als der Bildschirm hergibt !!!
    Machst Du so etwas mit einem TFT-Display, kann dieses unter Umständen kaputt gehen !!!

    Kaufe dir ein neues Display (22"), die Dinger kosten nicht mehr viel ...


    Gruß
    Greenhorn

  • DLL erstellen

    • Greenhorn
    • 21. April 2010 um 03:40

    Hi,

    Zitat von tkausl

    Zu dem Thema finde ich viel bei google, aber nichts was wirklich funktioniert..


    Das glaube ich dir nicht. ;)
    Eine DLL erstellst Du ganz einfach, indem Du mit CodeBolcks oder VC als Projekt ein DLL-Projekt auswählst.
    Wichtig ist dabei eigentlich nur, das Du eine Funktion für den Einstieg hast, in der Regel DllMain, muss aber nicht so heißen.
    Zweitens brauchst Du eine *.def Datei in der die zu exportierenden Funktionen enthalten sind, das wars im Groben eigentlich schon.


    Gruß
    Greenhorn

  • Windows 7 installieren

    • Greenhorn
    • 21. April 2010 um 03:30

    Hi,

    20 GB sind vieeel zu wenig für Win7 !!!
    Direkt nach der Installation hatte mein Win7 (amd64, Ultimate) schon 28 GB belegt !

    Ich empfehle dir Win7 auf eine separate Platte zu installieren.
    Bevor Du Win7 installierst, die XP-Platte abstecken, nach der Installation wieder einstecken und gut ist. ;)
    (Beim Ein-Ausstecken natürlich Rechner aus, Netzteil aus !)


    Gruß
    Greenhorn

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™