因为很急,不得以出此下策。
问题描述:
我想控制磁盘分区的访问,就是说在本机上用户试图访问硬盘的某一分区时,截获这一消息并不给他访问出现死机状态;
而用户在网络中访问时不控制;如果以上做不到,那么:
控制用户在“我的电脑”和资源管理器“中的访问,也就是
截获用户在“我的电脑”中文件列表框和地址栏中的访问;
截获用户在“资源管理器”中目录列表框和地址栏中的访问;
并不给他访问出现死机状态;请给出详细代码
解决后另开4贴(100分一贴)请您进去拿分。请帮帮我
问题描述:
我想控制磁盘分区的访问,就是说在本机上用户试图访问硬盘的某一分区时,截获这一消息并不给他访问出现死机状态;
而用户在网络中访问时不控制;如果以上做不到,那么:
控制用户在“我的电脑”和资源管理器“中的访问,也就是
截获用户在“我的电脑”中文件列表框和地址栏中的访问;
截获用户在“资源管理器”中目录列表框和地址栏中的访问;
并不给他访问出现死机状态;请给出详细代码
解决后另开4贴(100分一贴)请您进去拿分。请帮帮我
解决方案 »
- 求高手解决 error LNK2019问题
- vc2008,出现这个提示,是什么意思? [img=http://hi.csdn.net/attachment/200910/10/367700_125515
- 一个使用动态链接库资源出错的难题
- 关于字符集的转换问题
- VC编译器提unsigned __int64 to double not implemented,编译错误。该怎么办?
- 记录集在Requery()时发生异常!--“参数不足,期待是2!”
- 那里有com技术内幕(inside com)的源代码?
- 控件与选单
- 网络编程中,如何向服务器传输unicode编码数据,在线等,请专家指点,谢谢
- MFC点击按钮弹窗
- 请问买了《COM本质论》还需要买《COM原理与应用》吗?
- 我做了一个动态库,用到我自定义的结构。我自定义的结构怎么输出啊?
好像是写几个寄存器,然后发送通知码,寄存器里面有盘符,想只读,或不可访问什么的,自己设置
FSCTL_DISMOUNT_VOLUME Dismounts a volume.
FSCTL_EXTEND_VOLUME Increases the size of a mounted volume.
FSCTL_GET_NTFS_VOLUME_DATA Retrieves information about the specified NTFS volume.
FSCTL_IS_VOLUME_MOUNTED Determines whether the specified volume is mounted, or if the specified file or directory is on a mounted volume.
FSCTL_LOCK_VOLUME Locks a volume.
FSCTL_READ_FROM_PLEX Reads from the specified plex.
FSCTL_UNLOCK_VOLUME Unlocks a volume.
IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS Retrieves the physical location of the specified volume on one or more disks.
IOCTL_VOLUME_IS_CLUSTERED Determines whether a volume is clustered.
The following control codes are used with change journals.Value Meaning
FSCTL_CREATE_USN_JOURNAL Creates a change journal stream on a target volume or modifies an existing change journal stream.
FSCTL_DELETE_USN_JOURNAL Deletes a change journal on a volume or awaits notification of deletion of a change journal.
FSCTL_ENUM_USN_DATA Creates an enumeration that lists the change journal entries between two specified boundaries.
FSCTL_MARK_HANDLE Marks a specified file or directory and its change journal record with information about changes to that file or directory.
FSCTL_QUERY_USN_JOURNAL Queries for information on the current change journal, its records, and its capacity.
FSCTL_READ_FILE_USN_DATA Retrieves the change-journal information for the specified file or directory.
FSCTL_READ_USN_JOURNAL Returns to the calling process the set of change journal records between two specified USN values.
FSCTL_SECURITY_ID_CHECK Performs a bulk security check of the security identifiers exposed through USN records.
FSCTL_WRITE_USN_CLOSE_RECORD Generates a record in the change journal stream for the input file. This record will have the USN_REASON_CLOSE flag.
Platform SDK Release: February 2003 What did you think of this topic?
Order a Platform SDK CD
用WH_CALLWNDPROC
用户在“资源管理器”中目录列表框的SysTreeView32消息,
但不知怎么不让
“资源管理器”不执行这一消息
同时将消息发送到我的窗口(使用HOOK另一应用中已传入hwnd)
又怎么从这个消息中得出用户选择的Item的值
如只要控制D:盘
可以吗???
Type: Dword
Value: 一个数字,从最低位到最高位依次代表A, B, C, ... , Z 如果要限制用户访问A盘和C盘,让它的值等于5就可以了(5的二进制是101)设置在HKEY_CURRENT_USER下,则只限制当前用户
设置在HKEY_LOCAL_MACHINE,则限制当前机器上所有用户
另外还有另外一个是在我的电脑和资源管理器中隐藏驱动器的,但用户可以在地址栏将路径进行访问Name: NoDrives
Type: Dword
Value: 意思跟上一个差不多,只不过是在我的电脑中隐藏相应的驱动器
我主是水平太差,VC不会呀xstring(麻雀)
我是想分盘符控制
用你的方法不行
如只控制D盘不能访问现在关键是
同时将消息发送到我的窗口(使用HOOK另一应用中已传入hwnd)
又怎么从这个消息中得出用户选择的Item的值
你试试在HKEY_CURRENT_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
下面加上
DWORD的NoViewOnDrive值为8
然后注销再登录,看看你能在我的电脑中访问d盘么不想隐藏就不设NoDrive
请指点第二种方法的HOOK
FileMon
在哪里有?
源代码现在不公开了,不过之前公开的源代码很多地方都有的下载.
用WH_CALLWNDPROC
用户在“资源管理器”中目录列表框的SysTreeView32消息,
但:
1,不知为什么钩不到WM_LBUTTONDOWN消息;
2 ,但不知又怎么从这个消息中得出用户选择的Item的值
如只要控制D:盘
继续求助
Message中监视到
第三个参数为p (Posted)
的消息无法钩到,不知怎么回事?
已经截获了
这2个窗口的
“资源管理器”中的SysTreeView32 和 “我的电脑”中的SysListView32 的
鼠标点击
但不知道
怎么得到用户将要点击的item的值
因为我要分盘符控制
如只控制 D盘请帮忙,
我的钩子中截获鼠标的WM_LBUTTONDOWN消息后
用 SendMessage(OrgWnd,TVM_GETNEXTITEM,TVGN_CARET,hitem);
ltWnd = ((PCWPSTRUCT)hitem)->hwnd;
SendMessage(ltWnd,TVM_GETITEM,0,(LPARAM) pitem);//(LPTVITEM)
strcpy(szDiskName,((TV_ITEM *)pitem)->pszText);得到当前Tree的item的text后
无法不执行这条消息
return 1;
也不行
不加上面的代码就可以
用户不能点击
如D盘控制访问
现在用HOOK截获取WM_LBUTTONDOWN消息
如果直接return 1;
就可以实现但不能分盘符控制
我用上面的方法得到item的text后
想判断是D盘再控制
但我return 1;时也没用,还是执行了点击消息