【紧急】C#怎么获取一个打开磁盘的盘符

问题描述

如果打开某一个盘(无论是鼠标还是键盘打开)..就获取那个盘的盘符.请问各位大神,这个功能要怎么做出来..

解决方案

解决方案二:
楼主先定义下什么叫做“打开某一个盘”
解决方案三:
是在代码中通过使用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楼的做法是对的这样就能时时取到了。

时间: 2024-08-31 12:33:53

【紧急】C#怎么获取一个打开磁盘的盘符的相关文章

获取电脑上所有移动磁盘的盘符列表(包括U盘、移动硬盘)

问题描述 想获取电脑上所有移动磁盘的列表,在网上搜了好多,都只能获取U盘的,移动硬盘无法识别.后来搜到一个"ManagementClass"的类,仔细看了下,可以用来获取所有移动磁盘.写了个函数,供需要的人使用.privatestring[]GetMobileDiskList(){System.Management.ManagementClassmc=newSystem.Management.ManagementClass("Win32_DiskDrive");Ma

电脑怎么修改一个磁盘的盘符

1. 我们在桌面右击 计算机 然后在弹出菜单中我们点击"管理"然后会打开管理对话框了: 2. 在打开窗口的左边我们点击"磁盘管理"然后如下图所示你会看到有 分区信息.如下图所示: 3. 现在我们把D盘的盘符为E盘的话,只要选D然后右击,有一个更改驱动路路径和盘符的选项,如下图所示: 4. 然后会出弹出来一个窗口,里面有更改的选项,如下图所示: 5. 之后我们在弹出对话框中点击选新的 盘符的选项,如下图所示: 6. 最后再点击击确定,然后会告诉我们相关提示,我们点击是

java显示本地磁盘所有盘符,显示桌面路径

  import java.io.File; import javax.swing.filechooser.FileSystemView; /** 显示本地磁盘根盘符,显示桌面路径 */ public class RDDemo { static File[] files; public static void main(String[] args) { FileSystemView sys = FileSystemView.getFileSystemView(); files = sys.get

NSIS:获取硬盘中容量最大的分区盘符

原文 NSIS:获取硬盘中容量最大的分区盘符 我们在安装一些在线视频软件比如迅雷看看时,会发现他们的安装程序会自动判断当前系统中容量最大的分区,以便在其中创建数据缓冲下载的文件夹,这种功能如果实现呢,下面我们用NSIS来获取一下硬盘中容量最大的分区盘符. 01 !include "FileFunc.nsh" 02 !include "LogicLib.nsh" 03   04 OutFile "Demo.exe" 05 SilentInstall

win2008 r2使用安全设置软件导致权限丢失无法打开磁盘怎么办

  win2008 r2使用安全设置软件导致权限丢失无法打开磁盘怎么办          经过安全设置以后发现所有的磁盘如下所示 双击打开以后提示: 无法访问e: 拒绝访问 这样看提示就是权限丢失了权限,只要把各个磁盘的目录权限加上就可以了,重新做系统只能恢复系统所在的c盘,其它的盘仍然无法打开 下面就为大家分享一下设置权限 一般情况下,磁盘权限需要给 system 全部权限 administrators 全部权限 users 读取和执行 .列出文件夹内容.读取权限 以下以F盘为例 右键 > 属

Win7系统碎片整理在哪?如何打开磁盘清理?

  磁盘碎片整理是我们操作电脑时,经常会使用到的一个操作.磁盘碎片整理就是通过对磁盘的垃圾文件进行清理,对磁盘碎片文件进行搬运整理,以达到释放更多的磁盘空间和更快的磁盘相应速度.现在大部分人都在使用Win7系统,那Win7系统的磁盘清理在哪里?如何对磁盘碎片进行清理?现在就和小编一起去看看Win7磁盘清理和碎片整理在哪里. 具体步骤如下: 1.打开资源管理器,在本地磁盘(C)盘上右键单击,选择属性. 2.在弹出的本地磁盘属性中选择常规,点击磁盘清理. 3.勾选您要清理的文件,点击确定. 4.如果

打开磁盘时提示“Windows 脚本宿主无法找到脚本文件”

  故障现象:电脑中毒后,对整个硬盘查杀,查杀完病毒后,打开C.D.E.F等分区时,都会弹出一个对话框提示"脚本宿主无法找到脚本文件,下面是脚本:D:autorun.vbs/行: 10/字符: 8/错误:语法错误/代码:800A03EA/源:Microsoft VBScript编译器错误",无法进入C.D.E.F等分区. 故障处理:电脑原来中了Autorun病毒,虽然杀毒软件将Autorun病毒查杀掉,但由于其他文件(Autorun.*)和注册表引用键值指向了被杀毒软件查杀掉的Auto

文件句柄-如何通过一个打开的文件夹句柄获得文件夹的完整路径

问题描述 如何通过一个打开的文件夹句柄获得文件夹的完整路径 我在msdn上看到了一个例子,可以从一个打开的文件句柄获取到文件名,但是 那种方法对于文件夹的句柄是没有用的,msdn示例的链接地址:http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa366789(v=vs.85).aspx 我期望能够从一个文件夹句柄得到该文件夹的完成路径,不知道谁可以帮助我! 解决方案 问题已解决,使用NtQueryObject()解决的. 解决方案二

请问如何在文本框里获取一个http地址

问题描述 请问如何在文本框里获取一个http地址 问题:有一个添加页面,每次点击添加页面时,页面中有一个文本框时要自动获取一个网站地址显示到文本框中(不是当前页面url).该怎么做呀是不是要用js解析那个URL呀,具体怎么做呀"http://dd.myapp.com/16891/148FD03E4F11362D6A5688E6022045D8.apk"就是这样的.放在input中每次打开时input中都是最新的那个url不是固定的一个 解决方案 你要获取什么地址?是短地址还是什么?你可