Что нового

Изменить цвет текста в строке статуса

Scampy

Новичок
Сообщения
50
Репутация
0
Доброго времени суток!
Подскажите, как можно изменить цвет текста в строке статуса?
Конкретнее: Если пользователь является администратором - цвет синий, если нет - красный. Если включен UAC - цвет красный, отключен - синий. Не могу сообразить как это реализовать... Спасибо.
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $aStatusBar_PartsWidth[3] = [90, 170, 270]

$Form = GUICreate("Тест", 330, 230)
$hStatusBar = _GUICtrlStatusBar_Create($Form)
_GUICtrlStatusBar_SetParts($hStatusBar, $aStatusBar_PartsWidth)
_GUICtrlStatusBar_SetMinHeight($hStatusBar, 17)
; -------------------------------------------------------------------------------------------------------------Проверка Администратор
$admin = 'Admin - NO'
If IsAdmin() Then $admin = 'Admin - YES'
_GUICtrlStatusBar_SetText($hStatusBar, @TAB & $admin, 0)
$admin = ''
; -------------------------------------------------------------------------------------------------------------Проверка UAC
RefreshUAC()
Func RefreshUAC()
Switch Number(RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA") = 1)
   Case 0
	  $uac = 'UAC - OFF'
   Case 1
	  $uac = 'UAC - ON'
   Case Else
	  $uact = 'unknown'
EndSwitch
_GUICtrlStatusBar_SetText($hStatusBar, @TAB & $uac, 1)
EndFunc

GUISetState(@SW_SHOW)
While 1
   Switch GUIGetMsg()
	  Case $GUI_EVENT_CLOSE
		 Exit
   EndSwitch
WEnd
 

ildar

Осваивающий
Сообщения
252
Репутация
29
В опциях _GUICtrlStatusBar_SetText ничего не вижу. Разве что используя GUICtrlCreateLabel
Код:
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $aStatusBar_PartsWidth[3] = [90, 170, 270]

$Form = GUICreate("Тест", 330, 230)
$hStatusBar = _GUICtrlStatusBar_Create($Form)
_GUICtrlStatusBar_SetParts($hStatusBar, $aStatusBar_PartsWidth)
_GUICtrlStatusBar_SetMinHeight($hStatusBar, 17)
; -------------------------------------------------------------------------------------------------------------Проверка Администратор
$admin = 'Admin - NO'
If IsAdmin() Then $admin = 'Admin - YES'
_GUICtrlStatusBar_SetText($hStatusBar, '', 0)
GUICtrlCreateLabel($admin, 15, 213, 75, 25)
GUICtrlSetColor(-1, 0xff0000)
$admin = ''
; -------------------------------------------------------------------------------------------------------------Проверка UAC
RefreshUAC()
Func RefreshUAC()
Switch Number(RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA") = 1)
   Case 0
      $uac = 'UAC - OFF'
   Case 1
      $uac = 'UAC - ON'
   Case Else
      $uact = 'unknown'
EndSwitch
_GUICtrlStatusBar_SetText($hStatusBar, '', 1)
GUICtrlCreateLabel($uac, 95, 213, 75, 25)
GUICtrlSetColor(-1, 0xff0000)
EndFunc

GUISetState(@SW_SHOW)
While 1
   Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
         Exit
   EndSwitch
WEnd
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Стоп... а изменение цвета же не происходит в зависимости от того какой результат...
Пример от ildar с изменением цвета :

Код:
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $aStatusBar_PartsWidth[3] = [90, 170, 270]

$Form = GUICreate("Тест", 330, 230)
$hStatusBar = _GUICtrlStatusBar_Create($Form)
_GUICtrlStatusBar_SetParts($hStatusBar, $aStatusBar_PartsWidth)
_GUICtrlStatusBar_SetMinHeight($hStatusBar, 17)
; -------------------------------------------------------------------------------------------------------------Проверка Администратор
$admin = 'Admin - NO'
$color_Adm=0xff0000
If IsAdmin() Then
	$admin = 'Admin - YES'
	$color_Adm=0x006400
EndIf

_GUICtrlStatusBar_SetText($hStatusBar, '', 0)
GUICtrlCreateLabel($admin, 15, 213, 75, 25)
GUICtrlSetColor(-1, $color_Adm)
$admin = ''
; -------------------------------------------------------------------------------------------------------------Проверка UAC
RefreshUAC()
Func RefreshUAC()
Switch Number(RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA") = 1)
   Case 0
      $uac = 'UAC - OFF'
	  $color_UAC=0xff0000
   Case 1
      $uac = 'UAC - ON'
	  $color_UAC=0x006400
   Case Else
      $uact = 'unknown'
	  $color_UAC=0x696969
EndSwitch
_GUICtrlStatusBar_SetText($hStatusBar, '', 1)
GUICtrlCreateLabel($uac, 95, 213, 75, 25)
GUICtrlSetColor(-1, $color_UAC)
EndFunc

GUISetState(@SW_SHOW)
While 1
   Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
         Exit
   EndSwitch
WEnd
 
Верх