Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   проблема с отключением флешки (http://forum.oszone.net/showthread.php?t=235661)

proteus86 30-05-2012 23:01 1925275

проблема с отключением флешки
 
здрасте
тут я доделал прогу наконецто по отключению флешки и любого носителя информации(флешки и переносные винчестеры отключаются точно)
но есть проблема
отработака библиотеки SafeDriveRemover.dll не происходит если создано несколько учетных записей(
подскажите из за чего длл не срабатывает
и вообще есть инфа как она работает ?
пример проги
читать дальше »
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\Icon.ico
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <SafeDriveRemover.dll.au3>


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




Время: 03:14.

Время: 03:14.
© OSzone.net 2001-