Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
у тебя случайно на клаве нет лишних кнопочек? например Power/Sleep »
угу, кнопки питания не блокируются... на MSDN по этому поводу написано, что эти события не доходят до API, т.е. их нужно перехватывать раньше - в драйвере клавиатурного фильтра: How to disable the keyboard Sleep button with a filter driver... хотя можно попытаться порулить политикой питания, на ентот счет есть свои API и, к примеру, менять эти настройки на время блокировки
Цитата:
я не ставил ещё последнюю версию »
не вопрос - вот вариант для версии 3.2.8.1, там в общем все довольно просто... объединил заодно две функции в одну - теперь кодировку текста можно задавать прямо в параметрах (для текста в UTF8 - 65001)... Кстати, обнаружил что, в 10-ке алгоритм более продуманный в плане производительности.
Код: Выделить весь код
Func _GUICtrlStatusBarSetTextEx($h_StatusBar, $s_Data = "", $i_Part = 0, $iCode = 0)
    If Not IsHWnd($h_StatusBar) Then $h_StatusBar = HWnd($h_StatusBar)
    If Not _IsClassName ($h_StatusBar, "msctls_statusbar32") Then Return SetError(-1, -1, False)
    Local $ret = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _
        "int", $iCode, "int", 0, _
        "str", $s_Data, "int", -1, _
        "ptr", 0, "int", 0)
    If $ret[0]=0 Then Return SetError(-1, -1, 0)
    Local $struct_String = DllStructCreate("byte[" & $ret[0]*2+2 & "]")
    Local $sBuffer_pointer = DllStructGetPtr($struct_String)
    Local $struct_MemMap
    Local $Memory_pointer = _MemInit ($h_StatusBar, DllStructGetSize($struct_String), $struct_MemMap)
    If @error Then
        _MemFree ($struct_MemMap)
        Return SetError(-1, -1, 0)
    EndIf
    $ret = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _
        "int", $iCode, "int", 0, _
        "str", $s_Data, "int", -1, _
        "ptr", DllStructGetPtr($struct_String), "int", $ret[0])
    If $ret[0]=0 Then
        _MemFree ($struct_MemMap)
        Return SetError(-1, -1, 0)
    EndIf
    _MemWrite ($struct_MemMap, $sBuffer_pointer)
    If @error Then
        _MemFree ($struct_MemMap)
        Return SetError(-1, -1, 0)
    EndIf
    $ret = _SendMessage($h_StatusBar, $SB_SETTEXT+10, $i_Part, $Memory_pointer)
    If @error Then
        _MemFree ($struct_MemMap)
        Return SetError(-1, -1, 0)
    EndIf
    _MemFree ($struct_MemMap)
    Return $ret
EndFunc   ;==>_GUICtrlStatusBarSetTextEx
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:14, 27-11-2007 | #772