проблема с отключением флешки

Ответить
Аватара пользователя
proteus86

проблема с отключением флешки

Сообщение proteus86 »

здрасте

тут я доделал прогу наконецто по отключению флешки и любого носителя информации(флешки и переносные винчестеры отключаются точно)

но есть проблема

отработака библиотеки SafeDriveRemover.dll не происходит если создано несколько учетных записей(

подскажите из за чего длл не срабатывает

и вообще есть инфа как она работает ?

пример проги


читать дальше »


#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_icon=..\Icon.ico

#AutoIt3Wrapper_Add_Constants=n

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****



#include





Opt('TrayIconHide', 1)





Global $sSDR_DLL_PATH = SDR_Dll_Extract_Proc() ;Разворачиваем либу

dim $i,$kkk,$kkk2,$var,$var2,$izvl=0,$i2,$i3

$var_system = DriveGetDrive("all")

$hDll = DllOpen(@AppDataCommonDir&"\WinLockDll.dll")

$aRet = DllCall ($hDll, "int", "CtrlAltDel_Enable_Disable", "int", "0")

While 3

$var_all = DriveGetDrive("all")

$i = $var_system[0]

$i2 = $var_all [0]

If $i2 > $i Then

$izvl = IniRead($var_all[$i2]&"\AUTORUN.INF\PCLock.ini","2","key",0)

if $izvl 3 then

SplashTextOn("АЛЯРМА", "Компьютер заблокирован! Идет извлечение незарегистрированного носителя информации.Подождите!", @DesktopWidth, @DesktopHeight, 1, 1, 0, "",25,600)

BlockInput(1)

DriveEject_Proc($var_all[$i2])



Sleep(5000)

EndIf

EndIf

SplashOff()

BlockInput(0)

Sleep(5000)

WEnd

Exit







Func DriveEject_Proc($sDrive)



Local $strDriveLabel = StringMid($sDrive, 1, 1)

Local $tblDllResult = DllCall($sSDR_DLL_PATH, "str", "SafeRemoveDrive", "str", $strDriveLabel)

Local $iError = @error



EndFunc





Func SDR_Dll_Extract_Proc($strOutDLLName = "")

If IsKeyword($strOutDLLName) Or $strOutDLLName = "" Or $strOutDLLName = -1 Then $strOutDLLName = "SafeRemoveDrive.dll"



If FileExists(@AppDataCommonDir & "\" & $strOutDLLName) Then Return @AppDataCommonDir & "\" & $strOutDLLName



Local $hFileDllOut = FileOpen(@AppDataCommonDir & "\" & $strOutDLLName, 2)

FileWrite($hFileDllOut, Call("Get_SDR_DLL_Content_Proc"))

FileClose($hFileDllOut)



Return @AppDataCommonDir & "\" & $strOutDLLName

EndFunc
Ответить

Вернуться в «AutoIt»