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

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

morgan1991 14-02-2010 20:48 1347083

Заблокировать файл на Win 7
 
Здравствуйте!
Не помню где, качал утилиту Block от Creat0R-а вродибы.
Из неё использовал только одну часть:

Код:

Func _CreateFile($sFile) ; Функция блокировки файлов/папок
    Local Const $GENERIC_READ  = 0x80000000
    Local Const $GENERIC_WRITE = 0x40000000
    Local Const $TempAllFile_FLAG_BACKUP_SEMANTICS = 0x02000000
    Local Const $OPEN_EXISTING = 3

    Local $iFolderOpen = 0
    If _IsFolder($sFile) Then $iFolderOpen = $TempAllFile_FLAG_BACKUP_SEMANTICS

    $sFile
= "\\.\" & $sFile

    Local $aRet = DllCall("kernel32.dll", "hwnd", "CreateFile", _
                                          "str", $sFile, _
                                          "int", BitOR($GENERIC_READ, $GENERIC_WRITE), _
                                          "int", 0, _
                                          "ptr", 0, _
                                          "int", $OPEN_EXISTING, _
                                          "int", $iFolderOpen, _
                                          "int", 0)
    Return $aRet[0]
EndFunc

Func _IsFolder($sPath) ; Функция предназначена для проверки, является ли заданый путь каталогом
    Return StringInStr(FileGetAttrib($sPath & "\"), "D")
EndFunc

Дак вот на XP работало отлично, а на Windows 7 ноль эмоций...
Помогите пожалуйста, как заблокировать файл для использование на Windows 7?

Creat0R 15-02-2010 00:52 1347269

Судя по MSDN, в Vista требуются права администратора:

Цитата:

Requires Admin rights on Vista+

Note: Using Windows XP both administrators/standard accounts don't require administrative rights to obtain a device handles.

This has changed on Vista, Windows 7 (UAC) where you MUST have administrator rights to obtain device handles.

1) Use a service
2) Use COM elevation moniker
3) Use Manifest

morgan1991 15-02-2010 10:29 1347433

запускал из под админа, не помогает

Yashied 15-02-2010 19:28 1347841

А что возвращает функция _CreateFile() и что ты пытаешься заблокировать: файл или папку?

morgan1991 15-02-2010 21:17 1347968

Сори, понял, просто системные папки и файлы не блочятся. Возвращает 0xFFFFFFFF.


Время: 07:23.

Время: 07:23.
© OSzone.net 2001-