如何在窗口中查询文件中的所有锁持有者
How to query windows for all lock holders on a file
我即将为我们的软件实现一个新功能,即在用户打开文档时锁定文档(以前我们只是为了读取或写入而打开文件,但在此期间没有打开句柄)。
保留句柄并以写独占模式打开它是很琐碎的。
我的问题是,如何查询窗口以发现给定的文件是否无法通过写访问打开,哪个用户/实体已经锁定了文件以进行写访问?
例如:
_fsopen(m_ClipboardFilename, "wb", _SH_DENYWR);
或
CStdioFile listFile(strLabelfile, CFile::typeText | CFile::modeRead | CFile::shareDenyWrite | CFile::modeNoInherit);
这两种方法中的任何一种都会以独占写入访问权限打开给定的文件(或者失败,错误指示是否存在共享冲突或其他问题)。
但我想做的是发现"谁"锁定了文件,如果这是共享违规,这样我就可以向当前用户报告
Sam,在PC-007上,这个文件被锁定了,你只能在只读模式。你想继续吗?
我看到的一些实用程序会告诉你谁锁定了文件,还有更多的实用程序会强制解锁锁定,这样就可以操作文件(sys-admin类型的utils)。因此,似乎必须有一种方法来查询这些信息。
Raymond Chen最近解释了如何使用Restart Manager来实现这一点。
这会告诉你哪个进程打开了文件,但如果文件是不同的服务器,我不知道它是否会告诉你什么非常有用的信息。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 查询SQLite数据库中的日期
- 如何在ArangoDb AQL查询中指定数据库
- Qt SQLite没有查询或参数计数不匹配
- 如何使用c++在VS 2019上运行SQL查询
- 从返回的顶点缓冲区查询顶点结构
- 以非特权用户身份查询 NTFS 特殊文件的元数据?
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 如何将向量中的可变参数转换为参数的持有者?
- 查询 NFS 上的提升进程间::file_lock
- Qt JSON – 从子项查询
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 无法从 Win10 中的 IDirectDraw7 查询 IDirect3D7
- 如何查询以确定我的 MacOS/X 应用程序是否处于应用程序午睡模式?
- 在子数组中查找多个查询的不同(唯一)值的数量
- DNS 查询格式标头结构中的小字节序问题
- QSql查询行受影响的结果
- C++库相关查询
- 优化使用 C++ 查询 SQLite DB 中超过 5000 万条数据记录的方式
- 如何在窗口中查询文件中的所有锁持有者