Sign in to follow this  
Followers 0
jerem488

Create an input in the taskbar

8 posts in this topic

Hello,

I want to say if it is possible to create an input control in the taskbar (like Google Desktop or Windows Search).

Thank you in advance


Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites



Something like this:

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

$hTaskbar_Wnd = WinGetHandle("[CLASS:Shell_TrayWnd]")
$hTaskbarCtrl_Wnd = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "ToolbarWindow321")

$aTaskbar_Pos = WinGetPos($hTaskbarCtrl_Wnd)

$hGUI = GUICreate("", 80, 22, $aTaskbar_Pos[0]-(80+10), 3, $WS_POPUP, $WS_EX_TOPMOST, $hTaskbar_Wnd)
$Input = GUICtrlCreateInput("Search...", 0, 0, 80, 22)
GUICtrlSetColor(-1, 0xC0C0C0)

GUISetState(@SW_SHOW, $hGUI)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

_WinAPI_SetParent($hGUI, $hTaskbar_Wnd)

$nDummyEnterID = GUICtrlCreateDummy()

Dim $aAccelKeys[1][2] = [["{ENTER}", $nDummyEnterID]]
GUISetAccelerators($aAccelKeys)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nDummyEnterID
            $sInput_Read = GUICtrlRead($Input)
            
            If $sInput_Read <> "" Then ShellExecute("http://www.google.ru/search?hl=en&q=" & $sInput_Read)
    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
    Local $hCtrl = $lParam
    
    Switch $nID
        Case $Input
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_UPDATE
                    
                Case $EN_SETFOCUS
                    If GUICtrlRead($Input) = "Search..." Then GUICtrlSetData($Input, "")
                    
                    GUICtrlSetColor($Input, 0x0)
                Case $EN_KILLFOCUS
                    If GUICtrlRead($Input) = "" Then GUICtrlSetData($Input, "Search...")
                    
                    GUICtrlSetColor($Input, 0xC0C0C0)
            EndSwitch
    EndSwitch
    
    Return $GUI_RUNDEFMSG
EndFunc

P.S

Can be improved (as always), but it's only an example of possibility :D


 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Share this post


Link to post
Share on other sites

Yes very good script ! But the input is above others windows in the toolbar :D

In fact, it would be better to use a delimiter...

Thank you


Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites

up ?


Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

I have see the command _GUICtrlToolbar_AddButtonSep(). Can I use this command to add a separator in the taskbar ???

Or the command _GUICtrlToolbar_Create() ???

Because I search a solution to put a separator in the taskbar ! ! ! !! ! !

Thanks

Edited by jerem488

Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

I saw this function ! ! !

Func _ResizeQuickLaunchBar()
    Local $hTaskBar = _WinAPI_FindWindow("Shell_TrayWnd", "")
    Local $hRebar = ControlGetHandle($hTaskBar, "", "ReBarWindow321")
    Local $hToolBar = ControlGetHandle($hRebar, "", "ToolbarWindow322")
    Local $user_icon_width = 24, $user_icon_height = 30
    Local $user_icons_count = _GUICtrlToolbar_ButtonCount($hToolBar)
    Local $user_icons_rows = _GUICtrlToolbar_GetRows($hToolBar)
    Local $user_bar_height = _GUICtrlRebar_GetRowHeight($hRebar,0)
    _GUICtrlRebar_SetBandLength($hRebar, 0, $user_icons_count/($user_bar_height/$user_icon_height)* $user_icon_width + 160)
EndFunc   ;==>_ShowProgramsShowingInTaskBar

But it resize the quick launch bar...

And me, i want to resize the toolbar where programs windows are.

Edited by jerem488

Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites

Do you know how it is to add a separator in the toolbar (ReBarWindow321) ??

I am testing with the _GUICtrlToolbar_AddButtonSep() function, but no separator is added :D

Thank you


Qui ose gagneWho Dares Win[left]CyberExploit[/left]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0