找回密码
 加入
搜索
查看: 1401|回复: 4

请问有什么办法可以让INI文件以独占模式打开,并可以正常调用。

[复制链接]
发表于 2009-4-9 19:09:42 | 显示全部楼层 |阅读模式
就是自身程序才可以读与写INI文件,别的程序不能读取。一打开就提示正在使用之类的。

[ 本帖最后由 YZ2009 于 2009-4-9 20:26 编辑 ]
发表于 2009-4-9 19:41:51 | 显示全部楼层
用API来打开文件的话,本身就有这些功能了,不够呢,也只能用API的读写函数.

提供一个简便的方法,就是 ,当然还得要有API.
LockFile 函数 原形 百度一下.
还有个LockFileEX.你都试试吧.

还有一种方法就是, 用CREATEFILE来打开,你自己要读写,就把句柄关闭,不用了,又打开.

总体来说,没什么鸟用. 注册表文件够牛B吧,提到DEBUG都不能访问.
用冰刃照样可以复制.
 楼主| 发表于 2009-4-9 20:26:11 | 显示全部楼层
Func _LockFile($iFileHandle, $bLock = True)
    If $iFileHandle Then
        If $bLock = True Then
; Lock File
            $dLock = DllCall("kernel32.dll", "int", "LockFile", "str", $iFileHandle, "dword", 0, "dword", 32, "dword", 4, "dword", 28)
            If Not @error Then
                Return 1
            Else
                SetError(2); Could not lock file
            EndIf
        Else
; Unlock file
            $uLock = DllCall("kernel32.dll", "int", "UnlockFile", "str", $iFileHandle, "dword", 0, "dword", 32, "dword", 4, "dword", 28)
            If Not @error Then
                Return 1
            Else
                SetError(3); Could not unlock file
            EndIf
        EndIf
    Else
        SetError(1); No File Handle
    EndIf
EndFunc
发表于 2009-4-9 20:39:27 | 显示全部楼层
把INI加密。呵呵
发表于 2009-11-17 11:57:56 | 显示全部楼层
DllCall ( "kernel32.dll", "long", "_lopen" , "string", "d:\1.txt", "long", 0x10 )
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-1-12 10:11 , Processed in 0.075230 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表