Что нового

Проверка блокировки компьютера

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
Функция проверяет заблокирован ли компьютер (находится в режиме выбора пользователя) или нет. Возвращаемые значения:

0 - не заблокирован
1 - заблокирован


Код:
Global Const $DESKTOP_SWITCHDESKTOP = 0x0100

Func _IsWorkstationLocked()

	Local $Result = False

	$hDesktop = DllCall('user32.dll', 'hwnd', 'OpenDesktop', 'str', 'Default', 'int', 0, 'int', 0, 'int', $DESKTOP_SWITCHDESKTOP)
	If Not @error Then
		$Result = DllCall('user32.dll', 'int', 'SwitchDesktop', 'hwnd', $hDesktop[0])
		$Result = Not $Result[0]
		DllCall('user32.dll', 'int', 'CloseDesktop', 'hwnd', $hDesktop[0])
	EndIf
	Return $Result
EndFunc   ;==>_IsWorkstationLocked
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Yashied, у меня смежный вопрос...
Можно ли средствами AutoIt заблокировать рабочую станцию?
Команда Shutdown, вроде бы, этого не умеет делать...
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 705
snoitaleR сказал(а):
Yashied, у меня смежный вопрос...
Можно ли средствами AutoIt заблокировать рабочую станцию?
Команда Shutdown, вроде бы этого не умеет делать...
Код:
DllCall('user32.dll', 'int', 'LockWorkStation')
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Yashied, спасибо...

Опять плюсики не работают... :(
 

zed_zedican

Новичок
Сообщения
1
Репутация
0
Полезная информация. Заранее прошу прощения ,возможно, за глупый вопрос. У меня доменная политика блокирует ноутбук через 20 мин. не активности. Каким образом можно это предотвратить или средствами скрипта - разблокировать?

Заранее благодарю за совет.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 541
Репутация
326
Вообще то такие вопросы задают в раздел для новичков. А здесь вопросы только по данной "полезняшке"
 

Cornet

Знающий
Сообщения
38
Репутация
6
Не знаю почему, возможно из-за Win10, но у меня данный код не всегда отрабатывает, пришлось добавить в него строчку
Код:
Func _IsWorkstationLocked()
	Local $Result = False
	$hDesktop = DllCall('user32.dll', 'hwnd', 'OpenDesktop', 'str', 'Default', 'int', 0, 'int', 0, 'int', 0x0100)
	If Not @error Then
		$Result = DllCall('user32.dll', 'int', 'SwitchDesktop', 'hwnd', $hDesktop[0])
		$Result = Not $Result[0]
		DllCall('user32.dll', 'int', 'CloseDesktop', 'hwnd', $hDesktop[0])
	EndIf
	If Not $Result And _ProcessGetName(WinGetProcess("[ACTIVE]")) = "LockApp.exe" Then $Result = 1
	Return $Result
EndFunc   ;==>_IsWorkstationLocked
 
Верх