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

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

Аватара для Creat0R

Must AutoIt


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

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


amel27,
Спасибо, но функция всегда возвращает 0 , у меня на компе установлен Flash Player.
Объекта SWCtl.SWCtl у меня нет, возможно это не стандартный объект...

Но вот piccaso вроде нашёл решение, у меня, где есть флэш (для IExplorer), возвращает 9, на компе без флэша пока нет возможности проверить:

Код: Выделить весь код
Global $oErr = ObjEvent("AutoIt.Error","_ComError")
ConsoleWrite(_FlashMajorVersion()  & @CRLF)

Func _FlashMajorVersion()
    Local $oSwf,$sVersion
    $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash")
    if @error Then Return 0 ; No flash at all
    $oSwf.AllowScriptAccess = "always"
    $sVersion = $oSwf.GetVariable("$version")
    if @error Then
       $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash.3")
       if @error Then
         $oSwf = ObjCreate("ShockwaveFlash.ShockwaveFlash.2")
         if @error then return 0
         Return 2
       EndIf
       Return 3
    EndIf
    $sVersion = StringTrimLeft($sVersion,3)
    $sVersion = StringLeft($sVersion,StringInStr($sVersion,",")-1)
    Return Number($sVersion)
EndFunc

Func _ComError()
   ; Just set @error, the script will handle it...
   Local $iErr = $oErr.number
   if $iErr = 0 Then $iErr = -1
   SetError($iErr)
EndFunc
Цитата:
на базе скрипта-кейлоггера получилось вот что
Получилось то что надо!!! я правда поменял концепцию примера, во-первых потому то ещё не ставил последнюю версию, а во-вторых потому что мне нужно иметь возможность включать/выключать клавиатуру по запросу (не при выходе из скрипта)...

Код: Выделить весь код
#include <DllCallBack.au3>
Global $hWinHook

$CallBackProc = TogglePlugKeyBoard()
MsgBox(4096, "", "Клавиатура заблокирована, нажмите OK для разблокирования.")

TogglePlugKeyBoard($CallBackProc)
MsgBox(4096, "", "Клавиатура разблокирована!")

Exit

Func TogglePlugKeyBoard($hCallProc=0)
    If IsArray($hWinHook) Then
        DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hWinHook[0])
        _DllCallBack_Free($hCallProc)
        Return 0
    EndIf

    Local Const $WH_KEYBOARD_LL = 13
    Local $hKeyProc = _DllCallBack("_KeyProc", "int;ptr;ptr")
    Local $hMod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)
    $hWinHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", _
        "int", $WH_KEYBOARD_LL, _
        "ptr", $hKeyProc, _
        "hwnd", $hMod[0], _
        "dword", 0)
    Return $hKeyProc
EndFunc

Func _KeyProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then
        Local $iRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hWinHook[0], _
            "int", $nCode, _
            "ptr", $wParam, _
            "ptr", $lParam)
        Return $iRet[0]
    EndIf
    Return 1
EndFunc
Но это мелочи, главное что оно блокирует все(?) клавишы, на любой клавиатуре

P.S
Кстати, функция OnAutoItExit вызывается по умолчанию, её не обязательно вызывать ( OnAutoItExit() ).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:13, 26-11-2007 | #767