Delphi 自动检测U盘插入、拔出及获取U盘盘符!
2016-07-18 13:57
405 查看
http://qqhack8.blog.163.com/blog/static/1141479852012102133475/
Delphi 自动检测U盘插入、拔出及获取U盘盘符!
u盘的 插入和删除windows会给所有的程序发出WM_DEVICECHANGE 信息
//这句放在private里面
procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
procedure TForm1.WMDeviceChange (var Msg: TMessage);
var
myMsg : String;
begin
Case Msg.WParam of
32768:
begin
myMsg :='U盘插入';
Label1.Caption:=myMsg
end;
32772:
begin
myMsg :='U盘拔出';
Label1.Caption:=myMsg;
end;
end;
end;
u盘盘符判断
procedure TForm1.Button1Click(Sender: TObject);
var
buf:array [0..max_path-1] of char;
m_result:integer;
i:integer;
str_temp:string;
begin
m_result:=getlogicaldrivestrings(max_path,buf);
for i:=0 to (m_result div 4) do
begin
str_temp:=string(buf[i*4]+buf[i*4+1]+buf[i*4+2]);
if getdrivetype(pchar(str_temp)) = drive_removable then
begin
showmessage(str_temp+'盘为u盘') ;
listbox1.items.add(str_temp) ;
end;
end;
//完整源码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
//u盘的 插入和删除windows会给所有的程序发出WM_DEVICECHANGE 信息
procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// u盘的 插入和删除windows会给所有的程序发出WM_DEVICECHANGE 信息
procedure TForm1.WMDeviceChange (var Msg: TMessage);
var
myMsg : String;
begin
Case Msg.WParam of
32768:
begin
myMsg :='U盘插入';
Label1.Caption:=myMsg
end;
32772:
begin
myMsg :='U盘拔出';
Label1.Caption:=myMsg;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
buf:array [0..max_path-1] of char;
m_result:integer;
i:integer;
str_temp:string;
begin
m_result:=getlogicaldrivestrings(max_path,buf);
for i:=0 to (m_result div 4) do
begin
str_temp:=string(buf[i*4]+buf[i*4+1]+buf[i*4+2]);
if getdrivetype(pchar(str_temp)) = drive_removable then
begin
showmessage(str_temp+'盘为u盘') ;
listbox1.items.add(str_temp) ;
end;
end;
end;
end.
end;
相关文章推荐
- delphi 获取USB口拔出和插入的状态
- delphi 强制退出死循环,要设置label标签
- 用Delphi实现文件下载的几种方法
- DELPHI XE开发Office Add-In
- Delphi中拖动无边框窗口的几种简单方法
- 常用正则表达式大全
- Delphi7简单DirectUI界面源码
- 用Delphi画圆角Panel的方法
- delphi代码实现创建dump文件
- Delphi中ClientDataSet的用法小结
- DELPHI跨平台的临界替代者
- Delphi创建服务程序
- Delphi 10.1 Berlin下TStringGrid单元格样式设定
- c#中的webservice调用delphi写的dll函数的方法
- DelphiXE_画图
- delphi中使用mediaplayer控件播放音乐
- delphi报警声音 Beep、MessageBeep 和 Windows.Beep
- Delphi 使用双缓冲解决图片切换时的闪烁问题 good
- Delphi TCOM控件串口通信调试寻找文件传输速度慢的原因
- delphi for xx in xx do 语法的使用示例