Code : Tout sélectionner
;==[ Création ]========: xx/xx/20xx
;==[ Auteur ]==========:
;==[ Service ]=========:
;==[ Description ]=====: ************************************
;==[ Modification ]====: Dernière modification le xx/xx/20xx
;==[ Nature modification ]====:
;==[xx/xx/20xx: ***********************************]========
;==[Include]====
#include <GuiStatusBar.au3>
#include <Timers.au3>
#include <Date.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <Color.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
Opt("GUIOnEventMode", 1)
;==[Variables globales & autres]====
Global $ApplicationName = "Modèle vierge", $Version = "Demo", $Author = @UserName
Global $hGui, $hStatus, $aParts[3] = [200, 450, 200], $aGuiPos, $iMemo
;==[Programme]====
_Main()
AdlibRegister("_ScreenAdaptation")
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUIRegisterMsg($WM_TIMER, "WM_TIMER")
$iTimer = _Timer_SetTimer($hGUI, 1000)
While GUIGetMsg() <> -3
WEnd
Func _Main()
$Couleur1 = 0x999999
$Couleur2 = 0xe5e5e5
$hGUI = GUICreate($ApplicationName & " Powered By " & $Author & ". Version: " & $Version, @DesktopWidth - 100, @DesktopHeight - 100, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Quitter", $hGUI)
$hStatus = _GUICtrlStatusBar_Create($hGUI, -1, "", $SBARS_SIZEGRIP)
;==[StatusBar]==============================
_GUICtrlStatusBar_SetParts($hStatus, $aParts)
DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", $hStatus, "wstr", 0, "wstr", 0)
$hIcons = _WinAPI_LoadShell32Icon(265); 233 -> Icon ATTENTION,
_GUICtrlStatusBar_SetIcon($hStatus, 0, $hIcons)
$hIcons2 = _WinAPI_LoadShell32Icon(160); 233 -> Icon ATTENTION,
_GUICtrlStatusBar_SetIcon($hStatus, 1, $hIcons2)
_GUICtrlStatusBar_SetText($hStatus, "Utilisateur: " & StringUpper(@UserName) & " " & "Poste: " & @ComputerName, 1)
$size = WinGetClientSize($aGuiPos) ;Etait $size = WinGetClientSize(hGUI)
_GUICtrlCreateGradient($Couleur1, $Couleur2, 0, 0, $size[0], $size[1])
GUISetState(@SW_SHOW)
EndFunc
Func _Quitter()
Exit
EndFunc
Func My_GUICtrlListView_AutoSizeColumns($iMemo, $iMini = 30)
If Not IsHWnd($iMemo) Then $iMemo = GUICtrlGetHandle($iMemo)
Local $hHeader = _GUICtrlListView_GetHeader($iMemo), $iHeader_Width, $iData_Width
_GUICtrlListView_BeginUpdate($iMemo)
For $iIndex = 0 To _GUICtrlListView_GetColumnCount($iMemo) - 1
If _GUICtrlListView_GetColumnWidth($iMemo, $iIndex) = 0 Then ContinueLoop
_GUICtrlListView_SetColumnWidth($iMemo, $iIndex, $LVSCW_AUTOSIZE_USEHEADER)
$iHeader_Width = _GUICtrlListView_GetColumnWidth($iMemo, $iIndex)
If @OSVersion = "WIN_XP" And $iIndex < _GUICtrlListView_GetColumnCount($iMemo) - 1 Then
If _GUICtrlHeader_GetItemFlags($hHeader, $iIndex) / 2 > 1 Then $iHeader_Width += 30
EndIf
_GUICtrlListView_SetColumnWidth($iMemo, $iIndex, $LVSCW_AUTOSIZE)
$iData_Width = _GUICtrlListView_GetColumnWidth($iMemo, $iIndex)
If $iHeader_Width > $iData_Width Then
_GUICtrlListView_SetColumnWidth($iMemo, $iIndex, $iHeader_Width)
EndIf
If _GUICtrlListView_GetColumnWidth($iMemo, $iIndex) < $iMini Then
_GUICtrlListView_SetColumnWidth($iMemo, $iIndex, $iMini)
EndIf
Next
_GUICtrlListView_EndUpdate($iMemo)
EndFunc ;==>My_GUICtrlListView_AutoSizeColumns
Func _ScreenAdaptation()
$WorkAera = _GetWorkArea() ;Etait Local $WorkAera = _GetWorkArea() et non Global
Local $aGuiPos = WinGetPos($hGui)
If $aGuiPos[0] <> $WorkAera[0] OR $aGuiPos[1] <> $WorkAera[1] OR $aGuiPos[2] <> $WorkAera[4] OR $aGuiPos[3] <> $WorkAera[5] Then WinMove($hGui, "", $WorkAera[0], $WorkAera[1], $WorkAera[4], $WorkAera[5])
EndFunc
Func _GetWorkArea()
Local $Area[6]
Local $StartRect = DllStructCreate("int[4]")
Local $PStartRect = DllStructGetPtr($StartRect)
DllCall("user32.dll", "int", "SystemParametersInfo", "int", 48, "int", 0, "ptr", $PStartRect, "int", 0)
$Area[0] = DllStructGetData($StartRect,1,1)
$Area[1] = DllStructGetData($StartRect,1,2)
$Area[2] = DllStructGetData($StartRect,1,3)
$Area[3] = DllStructGetData($StartRect,1,4)
$Area[4] = $Area[2] - $Area[0]
$Area[5] = $Area[3] - $Area[1]
Return $Area
EndFunc
Func WM_TIMER($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $ilParam
Switch _Timer_GetTimerID($iwParam)
Case $iTimer
_UpdateStatusBarClock()
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_TIMER
Func _UpdateStatusBarClock()
_GUICtrlStatusBar_SetText($hStatus, @TAB & StringFormat(_NowDate() & " " & "%02d:%02d:%02d", @HOUR, @MIN, @SEC), 0)
EndFunc
Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam, $ilParam
_GUICtrlStatusBar_Resize($hStatus)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SIZE
Func _GUICtrlCreateGradient($nStartColor, $nEndColor, $nX, $nY, $nWidth, $nHeight)
Local $color1R = _ColorGetRed($nStartColor)
Local $color1G = _ColorGetGreen($nStartColor)
Local $color1B = _ColorGetBlue($nStartColor)
Local $nStepR = (_ColorGetRed($nEndColor) - $color1R) / $nHeight
Local $nStepG = (_ColorGetGreen($nEndColor) - $color1G) / $nHeight
Local $nStepB = (_ColorGetBlue($nEndColor) - $color1B) / $nHeight
GuiCtrlCreateGraphic($nX, $nY, $nWidth, $nHeight)
For $i = 0 To $nHeight - $nY
$sColor = "0x" & StringFormat("%02X%02X%02X", $color1R+$nStepR*$i, $color1G+$nStepG*$i, $color1B+$nStepB*$i)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, $sColor, 0xffffff)
GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 0, $i)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, $nWidth, $i)
Next
EndFunc