Salut.
En fait, je connais bien les "launcher". Launchy, Listary, etc...
Mais je voulais juste trouver une alternative à quick launch, la fameuse barre de lancement rapide.
Car je n'ai pas un pc fixe, mais un pc portable. Ce n'est donc pas une grosse résolution.
J'utilise pour ma part Quick Pop Menu (voire SyMenu).
Et j'aime bien avoir une barre de tâches vide, et avoir une icône de notification où je pourrais stocker mes raccourcis.
Bon, maintenant, j'ai fait divers tests, diverses, sur comment bien ( mieux )
exploiter le dossier du lancement rapide.
Car la fameuse barre de lancement rapide, c'est
juste un dossier où on peut stocker divers raccourcis...
Donc, je me suis demandé :
1. Et si je pouvais afficher le dit dossier, mais
incrusté dans une GUI ? ===> mes recherches m'ont données quoi faire.
2. Et si je pouvais
rajouter - et adapté - le script que TommyDDR m'avait donné ==> c'est chose faite...
Bon,
il y a encore une anomalie... Rien de bien grave (bien qu'agaçant mdr).
Je voulais donc "intégré" le contenu du dossier dans une interface => La recherche en FR n'a rien donnée, j'ai donc effectuée cette recherche en anglais...
Ma recherche :
www.google.fr/search?q=autoit+embed+win ... rer+in+GUI
Ma trouvaille :
https://www.autoitscript.com/forum/topi ... ent=427911
Mon script qui en découle :
► Afficher le texteSCRIPT
#include <GUIConstants.au3>#include <IE.au3>#include <Constants.au3>#include <WinAPISysWin.au3>Global $oIEOpt("TrayMenuMode", 3)Opt("TrayOnEventMode", 1)Local $width = '345', $height = '395'$dossier_lr = @AppDataDir & '\Microsoft\Internet Explorer\Quick Launch'$int = GUICreate("Lancement rapide - Little Boy62", $width, $height, (@DesktopWidth - $width) - 10, (@DesktopHeight - $height) - 60, $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS)GUIRegisterMsg(0x0112, "OnSysCommand")TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "_Click");~ TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_quit")$oIE = _IECreateEmbedded()$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 345, 395)GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)_IENavigate($oIE, $dossier_lr, 0)GUISetState(@SW_HIDE, $int) ;Show GUIWhile 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _IntQuit
() Case $GUI_EVENT_MINIMIZE GUISetState(@SW_HIDE, $int) EndSwitchWEndFunc _click
() $state = WinGetState($int, "") If BitAND($state, 2) Then GUISetState(@SW_HIDE, $int) Else GUISetState(@SW_SHOW, $int) EndIfEndFunc ;==>_clickFunc _quit
() GUISetState(@SW_HIDE, $int) _IEQuit($oIE) ExitEndFunc ;==>_quitFunc _IntQuit
();~ Global Const $WM_SYSCOMMAND = 0x0112;~ Global Const $SC_MOVE = 0xF010;~ Global Const $SC_SIZE = 0xF000;~ Global Const $SC_CLOSE = 0xF060;~ Global Const $SC_MAXIMIZE = 0xF030;~ Global Const $SC_MINIMIZE = 0xF020 Global $int_qt = GUICreate("", $width, 30, (@DesktopWidth - $width) - 2.5, (@DesktopHeight - $height) - 95, $WS_POPUP);, $WS_EX_LAYERED) GUISetBkColor(0xFFFFFF) GUISetFont(9, 500, 0, 'comic sans ms');~ GUISetBkColor(0xABCDEF);~ _WinAPI_SetLayeredWindowAttributes($int_qt, 0xABCDEF, 255) GUICtrlCreateLabel("Voulez-vous vraiment quitter ?", 5, 7.5, -1, 20) $Quitter = GUICtrlCreateButton('Oui.', 190, 5, 40, 20) $NePasQuitter = GUICtrlCreateButton('Non.', 240, 5, 40, 20) GUISetState(@SW_SHOW, $int_qt)GUIRegisterMsg(0x0112, "OnSysCommand") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $NePasQuitter GUIDelete($int_qt) ExitLoop Case $Quitter _IEQuit($oIE) Exit case $GUI_EVENT_MINIMIZE GUISetState(@SW_MINIMIZE, $int_qt) EndSwitch WEndEndFunc ;==>_IntQuitFunc OnSysCommand
($hWnd, $Msg, $wParam, $lParam) $test = BitAND($wParam, 0xFFF0) If $test = 0xF010 Then Return False EndIf Return $GUI_RUNDEFMSGEndFunc
Maintenant, FUSION avec le script de départ (via le tray)
Script :
► Afficher le texteSCRIPT
#include <GUIConstants.au3>#include <IE.au3>#include <Constants.au3>#include <WinAPISysWin.au3>Global $oIEOpt("TrayMenuMode", 3)Opt("TrayOnEventMode", 1)Local $width = '345', $height = '395'$dossier_lr = @AppDataDir & '\Microsoft\Internet Explorer\Quick Launch'$int = GUICreate("Lancement rapide - Little Boy62", $width, $height, (@DesktopWidth - $width) - 10, (@DesktopHeight - $height) - 60, $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS)GUIRegisterMsg(0x0112, "OnSysCommand")TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_Click");~ TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "_quit")$oIE = _IECreateEmbedded()$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 345, 395)GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)_IENavigate($oIE, $dossier_lr, 0)GUISetState(@SW_HIDE, $int) ;Show GUIGlobal $search = FileFindFirstFile($dossier_lr & "\*.lnk")Global $item[0]While 1 Local $file = FileFindNextFile($search) If @error Then ExitLoop Local $index = UBound($item, 1) ReDim $item[$index + 1] $item[$index] = TrayCreateItem(StringTrimRight($file, 4)) TrayItemSetOnEvent($item[$index], clicLink
)WEndTrayCreateItem("")Local $SystrayEXIT = TrayCreateItem("Quitter")TrayItemSetOnEvent($SystrayEXIT, quit
)While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _IntQuit
() Case $GUI_EVENT_MINIMIZE GUISetState(@SW_HIDE, $int) EndSwitchWEndFunc _click
() $state = WinGetState($int, "") If BitAND($state, 2) Then GUISetState(@SW_HIDE, $int) Else GUISetState(@SW_SHOW, $int) EndIfEndFunc ;==>_clickfunc _systray
() EndFuncFunc _quit
() GUISetState(@SW_HIDE, $int) _IEQuit($oIE) ExitEndFunc ;==>_quitFunc _IntQuit
();~ Global Const $WM_SYSCOMMAND = 0x0112;~ Global Const $SC_MOVE = 0xF010;~ Global Const $SC_SIZE = 0xF000;~ Global Const $SC_CLOSE = 0xF060;~ Global Const $SC_MAXIMIZE = 0xF030;~ Global Const $SC_MINIMIZE = 0xF020 Global $int_qt = GUICreate("", $width, 30, (@DesktopWidth - $width) - 2.5, (@DesktopHeight - $height) - 95, $WS_POPUP);, $WS_EX_LAYERED) GUISetBkColor(0xFFFFFF) GUISetFont(9, 500, 0, 'comic sans ms');~ GUISetBkColor(0xABCDEF);~ _WinAPI_SetLayeredWindowAttributes($int_qt, 0xABCDEF, 255) GUICtrlCreateLabel("Voulez-vous vraiment quitter ?", 5, 7.5, -1, 20) $Quitter = GUICtrlCreateButton('Oui.', 190, 5, 40, 20) $NePasQuitter = GUICtrlCreateButton('Non.', 240, 5, 40, 20) GUISetState(@SW_SHOW, $int_qt)GUIRegisterMsg(0x0112, "OnSysCommand") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $NePasQuitter GUIDelete($int_qt) ExitLoop Case $Quitter _IEQuit($oIE) Exit case $GUI_EVENT_MINIMIZE GUISetState(@SW_MINIMIZE, $int_qt) EndSwitch WEndEndFunc ;==>_IntQuitFunc OnSysCommand
($hWnd, $Msg, $wParam, $lParam) $test = BitAND($wParam, 0xFFF0) If $test = 0xF010 Then Return False EndIf Return $GUI_RUNDEFMSGEndFuncFunc clicLink
() For $i = 0 To UBound($item, 1) - 1 If ($item[$i] == @TRAY_ID) Then Local $choix = $dossier_lr & '\' & TrayItemGetText($item[$i]) & '.lnk' ShellExecute($choix) EndIf NextEndFunc ;==>clicLinkFunc quit
() ExitEndFunc ;==>quit
Ce script, fonctionne en lui même...
Il y a juste un défaut.
Pour faire simple :
1. j'utilise le simple clic pour afficher les raccourcis dans l'icône de notification.
2. j'utilise le double clic pour m'afficher dans le "dossier" (via un _IECreateEmbedded) les raccourcis.
Le souci : quand je double clique,
on voit d'abord le contenu de l'icône de notification, puis disparait, avoir d'avoir le "dossier".
Que faut-il faire pour le double clic
n'affiche que la chose demandée ?
PS : j'ai aussi une erreur lié à IE quand j'essaye de quitter.
"C:\Program Files (x86)\AutoIt3\Include\IE.au3" (2604) : ==> The requested action with this object has failed.:
$oObject.quit()
$oObject^ ERROR
Vu que ça n'affecte pas le programme, peut-être que je devrais laisser tel quel.
Note :
Pour Launchy ce n'est pas codé en AutoIt.
Tu le trouveras ici :
https://www.launchy.net
Et pour les fichiers (ini / txt), j'avais déjà vu ça.
Mais pour ce que je veux en faire, je m'en passerais.
Par contre, quand il s'agit de plus gros projets, avec un ini au poil, oui, ça fait le taf. ^^
Encore merci

++