Что нового

UDF для управления URL-обработчиком

ZloePelme666ko

Новичок
Сообщения
18
Репутация
1
AutoIt: 3.3.8.1
Версия: 1.0

Категория: Автоматизация, Вспомогательные функции, Интернет, Командная строка, Система, Реестр

Описание:
Наиболее простой пример URL-обработчика это тот случай, когда имеется любой сайт, на котором есть кнопка "звонок через Skype", по клику на которую на клиентской машине запускается скайп и вызывает указанный адрес. Я работаю одним из десятка админов в крупной конторе, и пришла в голову идея, создать локальный мини-сайт(можно просто хранить html страничку на локальной машине) с регулярно обновляемым списком ПК, где можно было бы по клику на конкретный ПК из списка в браузере на клиентской машине запустить контрольную панель для управления именно этим ПК, со списком возможных операций.

UDF внутри грамотно оформил, думаю вопросов не останется, но все же на всякий случай можете писать на почту: [email protected]

Код/Пример:
Код:
#include '_URLhandler.au3'
$URLhandlerName='AutoitUrlHandler';			имя обработчика для внесения в реестр


$command=_URLhandler_getCmd()
if $command<>'0' Then
	MsgBox(64,'URL обработчик','Программа была вызвана через URL-обработчик'&@CRLF&'Команда:	'&$command)
	Exit
EndIf


GUICreate('Управление URL обработчиком',200,150)
$hInst=GUICtrlCreateButton("Установить URL обработчик",10,10,180,20)
$hUnInst=GUICtrlCreateButton("Удалить URL обработчик",10,40,180,20)
$hChk=GUICtrlCreateButton("Проверить URL обработчик",10,70,180,20)
GUISetState()
Do
	$msg=GUIGetMsg()
	Switch $msg
		Case $hInst
			_URLhandler_install();			Устанавливаем обработчик с проверкой на существование такого же
			parseErrorInst(@error,@extended)
		Case $hUnInst
			_URLhandler_unInstall();		Удаляем обработчик с проверкой на принадлежность текущему приложению
			parseErrorUninst(@error,@extended)
		Case $hChk;							Проверяем на наличие обработчика
			Switch _URLhandler_check()
				Case 0
					MsgBox(64,"Информация",'URL обработчик НЕ установлен')
				Case 1
					MsgBox(64,"Информация",'URL обработчик установлен')
				Case 2
					MsgBox(48,"Информация",'URL обработчик установлен, но он не принадлежит данному приложению')
			EndSwitch
	EndSwitch
Until $msg=-3



func parseErrorInst($err,$ext)
	If $err=9 Then;							Такой обработчик уже существует
		$resp=MsgBox(52,'Предупреждение','URL обработчик "'&$URLhandlerName&'" уже интегрирован в систему.'&@CR&'Перезаписать?')
		If $resp=6 Then
			_URLhandler_install(1)
			parseErrorInst(@error,@extended)
			Return
		EndIf
	EndIf
	if $err=1 Or $err=2 Or $err=3 Then
		MsgBox(16,'Ошибка','Не удалось добавить данные в реестр!'&@CRLF&'Возможно нет прав на запись в реестр...')
	EndIf
	If $err=0 Then
		MsgBox(64,'','URL обработчик "'&$URLhandlerName&'" установлен')
	EndIf
EndFunc


func parseErrorUnInst($err,$ext)
	If $err=9 Then;							Обработчик не принадлежит данному приложению
		$resp=MsgBox(52,'Предупреждение','URL обработчик "'&$URLhandlerName&'" не принадлежит данному приложению.'&@CR&'Всен равно удалить?')
		If $resp=6 Then
			_URLhandler_uninstall(0)
			parseErrorUnInst(@error,@extended)
			Return
		EndIf
	EndIf
	if $err=1 Then
		MsgBox(16,'Ошибка','Не удалось удалить данные из реестра!'&@CRLF&'Возможно нет прав на запись в реестр...')
	EndIf
	If $err=0 Then
		MsgBox(64,'','URL обработчик "'&$URLhandlerName&'" удален')
	EndIf
EndFunc

Файл(ы):
Для AutoIt 3.3.8.x: ZIP

Список функций:
_URLhandler_install - интегрировать URL-обработчик в ОС
_URLhandler_uninstall - удалить URL-обработчик из ОС
_URLhandler_check - проверить статус URL-обработчика
_URLhandler_getCmd - прочитать команду, присланную через URL-обработчик

История версий:
v1.0

Источник: Русское сообщество Autoit (форум)
Автор(ы): ZloePelme666ko

P.S.: В первый раз возможно потребуется разрешить в браузере запускать данный обработчик.
 
Верх