问题描述
如果打开某一个盘(无论是鼠标还是键盘打开)..就获取那个盘的盘符.请问各位大神,这个功能要怎么做出来..
解决方案
解决方案二:
楼主先定义下什么叫做“打开某一个盘”
解决方案三:
是在代码中通过使用folderBrowserDialog之类的控件打开磁盘吗?这个简单。如果是是在系统中进行处理,那需要全局钩子相关的技术点还不少百度下相关操作
解决方案四:
引用1楼wddw1986的回复:
楼主先定义下什么叫做“打开某一个盘”
就是我们正常操作的时候打开D盘,E盘这样子..
解决方案五:
引用2楼xian_wwq的回复:
是在代码中通过使用folderBrowserDialog之类的控件打开磁盘吗?这个简单。如果是是在系统中进行处理,那需要全局钩子相关的技术点还不少百度下相关操作
不是的..打开某一个盘这个操作跟代码无关..我是想程序可以检测到打开磁盘这个操作...
解决方案六:
自顶自顶自顶自顶自顶
解决方案七:
楼主说的打开盘符应该是WINDOWS中的操作,通过程序是监控这个太有难度了,感觉也没有什么用啊
解决方案八:
引用6楼tcmakebest的回复:
楼主说的打开盘符应该是WINDOWS中的操作,通过程序是监控这个太有难度了,感觉也没有什么用啊
我想做的一个软件有一个功能是需要做到这样
解决方案九:
百度“当前激活的窗体”或者“当前打开的所有窗体”(具体哪个是你需要的看着办吧),然后过滤哪些是目录,比如C:、C:abc,之后你自己看着办吧!
解决方案十:
那你需要用2#的方法,挂WM_SHELL全局钩子不过,实现上资源管理器是运行explorer进程的,所以你也可以用dll或者线程注入到这个进程来实现最后,除了explorerdll扩展的方式外,其他几种报毒的可能性都很高
解决方案十一:
建议你去C++版问问,找到方案后再试着改成C#版的
解决方案十二:
引用9楼dongxinxi的回复:
那你需要用2#的方法,挂WM_SHELL全局钩子不过,实现上资源管理器是运行explorer进程的,所以你也可以用dll或者线程注入到这个进程来实现最后,除了explorerdll扩展的方式外,其他几种报毒的可能性都很高
能否给一个详细的demo..没接触过这一块
解决方案十三:
简单点放一个timer定时监控窗体不过xp和win7的资源管理器窗口布局不一样图上上面是2003系统下面是win7系统如果是xp系统上你直接找寻窗体classname为ExploreWClass的窗体就是来了然后GetWindowText就是当前的路径了如果是Win7上你要找寻className为CabinetWClass的窗体然后去遍历子控件找到className为ToolbarWindow32的窗体然后GetWindowText就是路径其他windows系统不知道了不过这样只能监控资源管理器窗口而已打开文件的方式很多不一定要从资源管理器去打开
解决方案十四:
hookCreateFileW函数,取第一个参数,如果值是C:那么就是打开盘
解决方案十五:
引用12楼crystal_lz的回复:请问,复制/剪切文件能用FileSystemWatcher捕捉到相关事件吗.?
解决方案:
引用13楼bigbaldy的回复:
hookCreateFileW函数,取第一个参数,如果值是C:那么就是打开盘
如果不全局hook就没有意义那么问题来了如果全局hook操作系统或者其他程序随时都有可能创建temp类文件或者日志文件那么绝壁悲剧
解决方案:
引用15楼crystal_lz的回复:
Quote: 引用13楼bigbaldy的回复:
hookCreateFileW函数,取第一个参数,如果值是C:那么就是打开盘如果不全局hook就没有意义那么问题来了如果全局hook操作系统或者其他程序随时都有可能创建temp类文件或者日志文件那么绝壁悲剧
他说的就是鼠标键盘直接操作的,注入一个explorer应该就够了
解决方案:
引用14楼lerbornjames的回复:
Quote: 引用12楼crystal_lz的回复:请问,复制/剪切文件能用FileSystemWatcher捕捉到相关事件吗.?
复制有点难度,剪切可以,监听你剪切的那个文件是否被删除就行;复制的话,稍微复杂点,要获取当前激活的窗体,判断是否是文件夹,然后监听这个文件夹,然后在判断该文件是否被创建,
解决方案:
FileSystemWatcher这个也许可以
解决方案:
直接路径就可以把我猜的
解决方案:
那我cmdd:这个算么?
解决方案:
复制/剪切文件,CreateFileW.FileSystemWatcher都弄不到楼主的要求吧楼主要是打开的盘符。。上面那几个是用于监控文件用的,只能监控到某盘符下是否文件创建了。应是以12楼的做法是对的这样就能时时取到了。