获取U盘ID

落然 2013-03-12 04:41:00
我想用VC获取U盘ID,查了很多资料都是Delphi和VB的,似乎可以通过查注册表或使用API获取U盘ID,可是不知道具体该怎么做。希望有人能解释下,谢谢了!
...全文
862 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
guozizheng001 2015-07-23
  • 打赏
  • 举报
回复
哦 我自己找到了一份 如果楼主下载的里面有一个USBPhysic.dll要引用的话,那就一样了 我能找到的网上实现方式都是用这个DLL (当然也有封装成类的) 用Dependency Walker查出来它只导出两个函数 Init 和 GetUSBPhysicInfo 不过它调用了N多API 这是他调用的kernel32.dll的 CloseHandle CreateFileA DeleteCriticalSection DeviceIoControl EnterCriticalSection ExitProcess FlushFileBuffers FreeEnvironmentStringsA FreeEnvironmentStringsW GetACP GetCPInfo GetCommandLineA GetConsoleCP GetConsoleMode GetConsoleOutputCP GetCurrentProcess GetCurrentProcessId GetCurrentThreadId GetDriveTypeA GetEnvironmentStrings GetEnvironmentStringsW GetFileType GetLastError GetLocaleInfoA GetLogicalDriveStringsA GetModuleFileNameA GetModuleHandleA GetOEMCP GetProcAddress GetProcessHeap GetStartupInfoA GetStdHandle GetStringTypeA GetStringTypeW GetSystemTimeAsFileTime GetTickCount GetVersionExA HeapAlloc HeapCreate HeapDestroy HeapFree HeapReAlloc HeapSize InitializeCriticalSection InterlockedDecrement InterlockedIncrement IsDebuggerPresent LCMapStringA LCMapStringW LeaveCriticalSection LoadLibraryA MultiByteToWideChar QueryPerformanceCounter RaiseException RtlUnwind SetErrorMode SetFilePointer SetHandleCount SetLastError SetStdHandle SetUnhandledExceptionFilter Sleep TerminateProcess TlsAlloc TlsFree TlsGetValue TlsSetValue UnhandledExceptionFilter VirtualAlloc VirtualFree WideCharToMultiByte WriteConsoleA WriteConsoleW WriteFile 由此推断核心功能实现貌似不太简单,还是老老实实用DLL吧 楼主的水平应该知道如何引用外部DLL中的导出函数吧 Public Declare Function Init Lib "USBPhysic.dll" (ByVal sUser As String, ByVal sRegCode As String) As Long Public Declare Function GetUSBPhysicInfo Lib "USBPhysic.dll" (ByVal diskIndex As Long, ByVal InfoType As Long, ByVal pHddInfo As String) As Long 我就不帮忙转成C了。。
guozizheng001 2015-07-23
  • 打赏
  • 举报
回复
楼主发一个VB的吧 需要用
落然 2013-03-15
  • 打赏
  • 举报
回复
引用 5 楼 ksrsoft 的回复:
GetUSBDiskID这个是dll函数,有没有这个函数的定义 运行程序需要dll支持
我是从CSDN下载资里下的,对delphi不了解,能把整个文件发夹给你吗?
缘中人 2013-03-15
  • 打赏
  • 举报
回复
GetUSBDiskID这个是dll函数,有没有这个函数的定义 运行程序需要dll支持
落然 2013-03-15
  • 打赏
  • 举报
回复
引用 3 楼 ksrsoft 的回复:
把你找到delphi的代码贴出来,给你翻译一下,编程cb的
unit GetUSBID; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses USB; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Drv, Pid: string; begin Drv := ExtractFileDrive(ParamStr(0)); if GetDriveType(PChar(Drv + '\')) <> DRIVE_REMOVABLE then Application.MessageBox('对不起,请把本程序放至到优盘上使用!', 'Error', MB_ICONHAND) else if GetUSBDiskID(Drv, Pid) then ShowMessage(Pid); end; end.
缘中人 2013-03-15
  • 打赏
  • 举报
回复
把你找到delphi的代码贴出来,给你翻译一下,编程cb的
落然 2013-03-15
  • 打赏
  • 举报
回复
引用 7 楼 ksrsoft 的回复:
刚做了个例子,73B60084B0 就是pid吧,不过win7不行,xp可以获取到
是,那老师你是使用什么方式获取的呢,能细说下吗?
缘中人 2013-03-15
  • 打赏
  • 举报
回复
刚做了个例子,73B60084B0 就是pid吧,不过win7不行,xp可以获取到
落然 2013-03-14
  • 打赏
  • 举报
回复
还是木人理啊
落然 2013-03-13
  • 打赏
  • 举报
回复
木人理,木人理
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...
代码下载地址: https://pan.quark.cn/s/664854f01855 TCP/IP SOCKET协议构成了互联网通信的基石,它明确了网络设备之间数据交换的规范。TCP(Transmission Control Protocol)是一种以连接为导向、具备可靠性且基于字节流的传输层通信规范,而UDP(User Datagram Protocol)则是一种非连接型且不可靠的传输协议。在实施TCP/IP SOCKET的调试工作中,专业的软件能够协助开发者更清晰地洞察网络通信的流程,精准地找出故障点,并对代码进行改进。 "TCP模拟调试工具"即为一种实用的辅助性软件,它赋予用户模拟TCP连接、发送及接收数据的能力,从而对网络应用程序进行测试和调试。此工具或许具备以下几项功能: 1. **连接模拟**:可以模拟客户端与服务器之间TCP连接的完整过程,涵盖三次握手和四次挥手阶段,从而帮助理解TCP连接的完整生命周期。 2. **数据发送与接收**:支持自定义数据包的发送,并能显示接收到的数据,这对于核实数据传输的准确性极为关键。 3. **错误检测与重传**:TCP协议内含错误检测和丢失数据自动重传的机制,该工具或许能够模拟这些场景,助力开发者测试其应用的容错性能。 4. **流量控制与拥塞控制**:TCP通过滑动窗口机制实现流量控制与拥塞管理,工具或许提供查看和调整这些参数的选项。 5. **端口监听**:能够监听指定的端口,观察数据的进出情况,这对于服务器端程序的调试尤为有益。 6. **日志记录**:记录所有通信事件,便于后续的分析与问题定位。 7. **多线程支持**:针对处理多个并发连接的程序,工具或许提供多线程或并发会话的模拟。 8. **协议解...

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧