Schnellstartleiste einblenden?

  • Moin Leute,
    Ich möchte die Schnellstartleiste einblenden, wenn sie ausgeblendet ist. Ich hab folgendes Skript gefunden:

    [autoit]

    $QuickLaunch = ControlGetText("[CLASS:Shell_TrayWnd]", "", "[CLASS:ToolbarWindow32; INSTANCE:2]")
    If $QuickLaunch <> "Quick Launch" Then
    AutoItSetOption("WinTitleMatchMode", 4)
    WinActivate("classname=Shell_TrayWnd")
    Send("{APPSKEY}yc")
    EndIf

    [/autoit]


    Nur wird hierbei die Leiste eingeblendet, un beim nächsten Start des Skripts wieder ausgeblendet, ich will sie aber NUR ein blenden wenn sie ausgeblendet ist.
    Gruß Schlumpf

    Einmal editiert, zuletzt von Schlumpf (25. Februar 2008 um 17:14)

  • Hallo

    Spoiler anzeigen
    [autoit]

    $QuickLaunch = ControlGetText("[CLASS:Shell_TrayWnd]", "", "[CLASS:ToolbarWindow32; INSTANCE:2]")
    If $QuickLaunch <> "Quick Launch" Then
    WinActivate("[CLASS:Shell_TrayWnd]")
    Send("{APPSKEY}yc")
    EndIf

    [/autoit]

    Mfg Spider

    Da hab ich das gleiche Problem wie beim anderen Script, beim ersten Starten wird sie ein- und beim 2- mal Starten wird sie wieder ausgeblendet. Ich möchte sie aber immer einblenden, egal wie oft das Script gestartet wird. Oder ich müsste abfragen können, ob sie ein- oder ausgebledet ist.

    Mfg
    Schlumpf

  • Spoiler anzeigen

    >>>> Window <<<<
    Title:
    Class: Shell_TrayWnd
    Position: -2, 772
    Size: 1284, 30
    Style: 0x96840000
    ExStyle: 0x00000188
    Handle: 0x0001004A

    >>>> Control <<<<
    Class: ToolbarWindow32
    Instance: 3
    ClassnameNN: ToolbarWindow323
    ID:
    Text: Quick Launch
    Position: 57, 0
    Size: 92, 22
    ControlClick Coords: 49, 14
    Style: 0x56018B4D
    ExStyle: 0x00000080
    Handle: 0x0011052C

    >>>> Mouse <<<<
    Position: 108, 790
    Cursor ID: 0
    Color: 0xA3B3C4

    >>>> StatusBar <<<<

    >>>> Visible Text <<<<
    17:07
    Infobereich
    Systemsteuerungsbereich
    Quick Launch
    Ausgeführte Anwendungen
    Ausgeführte Anwendungen


    >>>> Hidden Text <<<<

  • Moin,

    so wird's was mit dem Nachbarn ... ;)

    Spoiler anzeigen
    [autoit]

    _QuickLaunch_SetState(False)
    Sleep(2500)
    _QuickLaunch_SetState(True)
    Sleep(2500)
    _QuickLaunch_SetState(False)
    Sleep(2500)
    _QuickLaunch_SetState(True)
    Exit

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

    ;===============================================================================
    ;
    ; Function Name: _QuickLaunch_SetState
    ; Description: Enable/disable the quick launch toolbar
    ; Parameter(s): $fState - Specifies whether to enable or disable the quick launch toolbar.
    ; True (1) = toolbar is enabled
    ; False (0) = toolbar is disabled
    ; Requirement(s): Windows 2000 or XP
    ; Return Value(s): Success - Return value from _SendMessage
    ; Failure - @error is set
    ; @error - 1 = Invalid $fState, 2 = Unable to get handle for Shell_TrayWnd
    ; Author(s): Bob Anthony (big_daddy)
    ;
    ;===============================================================================
    ;
    Func _QuickLaunch_SetState($fState)
    Const $WM_USER = 0X400
    Const $WMTRAY_TOGGLEQL = ($WM_USER + 237)

    If $fState <> 0 And $fState <> 1 Then Return SetError(1, 0, 0)

    $hTrayWnd = WinGetHandle("[CLASS:Shell_TrayWnd]")
    If @error Then Return SetError(2, 0, 0)

    Return _SendMessage($hTrayWnd, $WMTRAY_TOGGLEQL, 0, $fState)
    EndFunc ;==>_QuickLaunch_SetState

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

    ; Author GaryFrost
    Func _SendMessage($hWnd, $iMsg, $wParam = 0, $lParam = 0, $iReturn = 0, $wParamType = "wparam", $lParamType = "lparam", $sReturnType = "lparam")
    Local $aResult = DllCall("user32.dll", $sReturnType, "SendMessage", "hwnd", $hWnd, "int", $iMsg, $wParamType, $wParam, $lParamType, $lParam)
    If @error Then Return SetError(@error, @extended, "")
    If $iReturn >= 0 And $iReturn <= 4 Then Return $aResult[$iReturn]
    Return $aResult
    EndFunc ;==>_SendMessage

    [/autoit]


    Gruß
    Greenhorn


  • Ahh, bei dir ist die Instance 3 statt 2
    So ist es Instance-Unabhängig:

    [autoit]

    $QuickLaunch = WinGetText("[CLASS:Shell_TrayWnd]")
    If Not StringInStr($QuickLaunch,"Quick Launch",1) Then
    WinActivate("[CLASS:Shell_TrayWnd]")
    Send("{APPSKEY}yc")
    EndIf

    [/autoit]

    //Edit: Greenhorn, deins ist natürlich besser :)

  • Oder ...

    Spoiler anzeigen
    [autoit]

    $sWndTitle = 'Eigenschaften von Taskleiste und Startmenü'
    $sWndText = 'Taskleiste'
    ; Eigenschaften-Fenster anzeigen.
    Run('rundll32.exe shell32.dll,Options_RunDLL 1')
    WinWait($sWndTitle, $sWndText)
    WinSetState($sWndTitle, $sWndText, @SW_HIDE)
    ; Prüfen ob Schnellstartleiste aktiviert.
    If Not ControlCommand($sWndTitle, $sWndText, 'Button5', 'IsChecked', '') Then
    ; &Schnellstartleiste anzeigen
    ControlClick($sWndTitle, $sWndText, 'Button5')
    EndIf
    ; Ü&bernehmen
    ControlClick($sWndTitle, $sWndText, 'Button13')
    Sleep(150)
    ; OK
    ControlClick($sWndTitle, $sWndText, 'Button11')
    Exit

    [/autoit]

    Gruß
    Greenhorn

    Edit: @propagandy
    Ist nicht von mir, aber trotzdem gut (oder gerade deswegen :rofl: ) ;) :D


    2 Mal editiert, zuletzt von Greenhorn (24. Februar 2008 um 03:30)