• Hi,

    basierend auf einem Example mit AutoItObject habe ich mir mal die Mühe gemacht, einen Teil des ITaskBar-Interfaces mit AutoIt-Funktionen zu wrappern.
    Da mir das aber zu sperrig zu handhaben war, habe ich noch ein paar Extras mit eingebaut, um das Handling zu verbessern. So können die ThumbBar-Buttons ganz normal per GUIGetMsg oder GUICtrlSetOnEvent behandelt werden. ;)

    Erst später habe ich dann diesen Thread im EN-Forum gesehen: http://www.autoitscript.com/forum/topic/11…thods-included/
    Aber gut, ist ja nicht schlimm. Doppelt hält besser. :D

    Eine Dokumentation (Englisch) der Funktionen findet ihr hier, die HTM-Datei ist auch nochmal im angehängten ZIP-Ordner.

    Hier mal kurz die Example-Datei:

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    Copyright (C) 2014 Sebastian Walter (chesstiger)

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

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

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

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

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

    You should have received a copy of the GNU General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.

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

    AutoIt Version: 3.3.10.2

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

    #ce ----------------------------------------------------------------------------

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

    #include <Constants.au3>
    #include <GuiImageList.au3>
    #include <WinAPIRes.au3>
    #include "ThumbBarButtons.au3"

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

    $hWnd = GUICreate("blub")
    GUISetState()

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

    $hImage = _GUIImageList_Create(16, 16)
    _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap($hWnd, 0xff0000, 16, 16))
    _GUIImageList_Add($hImage, _WinAPI_CreateSolidBitmap($hWnd, 0x0000ff, 16, 16))
    _GUIImageList_Add($hImage, _WinAPI_LoadImage(0, "icon.bmp", $IMAGE_BITMAP, 16, 16, $LR_LOADFROMFILE))

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

    $hIcon = _WinAPI_LoadShell32Icon(25)

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

    _TBB_Init()

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

    _TBB_Create($hWnd, 3)
    $cTaskbar1 = _TBB_SetButton($hWnd, 1, "Hello", $THBF_ENABLED)
    $cTaskbar2 = _TBB_SetButton($hWnd, 2, "Hi", $THBF_ENABLED, $hIcon)
    $cTaskbar3 = _TBB_SetButton($hWnd, 3, "Blub", $THBF_ENABLED)
    _TBB_Update($hWnd, $hImage)

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

    While True
    Switch GUIGetMsg()
    Case -3
    ConsoleWrite("Exit" & @LF)
    _TBB_Shutdown()
    Exit
    Case $cTaskbar1
    ConsoleWrite("Button 1" & @LF)
    GUISetBkColor(0xff0000)
    Case $cTaskbar2
    ConsoleWrite("Button 2" & @LF)
    GUISetBkColor(0x0000ff)
    Case $cTaskbar3
    ConsoleWrite("Button 3" & @LF)
    GUISetBkColor(0x00ff00)
    EndSwitch
    WEnd

    [/autoit]


    Die ganze UDF basiert auf ObjCreateInterface, und hier möchte ich nochmal auf einen Hinweis aus der Hilfe hinweisen:

    Zitat von EN-Hilfe


    Warning: This feature is experimental. It may not work, may contain bugs or may be changed or removed without notice.


    Ihr wurdet gewarnt. :D

    Getestet wurde die UDF mit Windows 7 32- und 64-Bit, mit AutoIt 3.3.10.0 und 3.3.10.2. Zur Kompatibilität mit der derzeitigen Stable 3.3.8.1 kann ich leider nichts sagen, ich würde mich über Rückmeldungen diesbezüglich freuen. ^^

    Edit: Ups, Lizenzhinweise vergessen. Das ganze steht unter der GNU General Public License Version 3 (GPLv3).

    Wie immer: Fehler, Anregungen und Wünsche -> Immer her damit.

    Gruß

    chesstiger

  • Das betrifft nur das Example. Die WinAPIRes.au3 wird aber glaub auch dafür nicht mehr gebraucht. Die ist einfach da stehen geblieben... Also ich kann das Skript auch ohne die #include-Zeile ausführen.

    Gruß