如何写简单的无窗体,监控u盘插入的delphi程序
1个回答
展开全部
我的基本框架是这样的的
利用的消息循环,
begin
while(GetMessage(msg,0,0,0))do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.
如何加入消息队列,判断优盘的插入和拔出??
网上有篇帖子是这样的,用的是有窗体的label,
《Delphi捕获U盘插入或者拔出》
Delphi捕获U盘插入或者拔出
在USB端口被热插后,系统会向所有程序发布WM_DEVICECHANGE消息,所以只要捕获此消息即可实现对U盘的监视。
1、新建工程;
2、在form1上放一个Label;
3、定义一个私有过程procedureWMDeviceChange(varMsg:TMessage);messageWM_DEVICECHANGE;
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,AppEvnts,ExtCtrls,StdCtrls;
type
TForm1=class(TForm)
Label1:TLabel;
private
{Privatedeclarations}
procedureWMDeviceChange(varMsg:TMessage);messageWM_DEVICECHANGE;
public
{Publicdeclarations}
end;
var
Form1:TForm1;
implementation
{$R*.dfm}
procedureTForm1.WMDeviceChange(varMsg:TMessage);
var
myMsg:String;
begin
CaseMsg.WParamof
32768:
begin
myMsg:='U盘插入';
Label1.Caption:=myMsg
end;
32772:
begin
myMsg:='U盘拔出';
Label1.Caption:=myMsg;
end;
end;
end;
end.
我想讲两者结合起来,如何实现呢??
请会的大侠给我点启示。
---------------------解决方案------------------------------
---------------------解决方案------------------------------
为啥要无窗体,无窗体不就是控制台程序了。
程序带窗体,你隐藏窗体不就得了,如果无窗体,何来什么消息和消息循环。
如果你想判断多个U盘的插入和移除的顺序,可以通过WM_DEVICECHANGE消息的lparam,lparam是个结构体指针,这个结构体包含了你想要的数据,包括当前插入或移除的设备类型、设备的盘符等。
---------------------解决方案------------------------------
写个示例,你下载瞅瞅
http://download.csdn.net/detail/sololie/6672327
---------------------解决方案------------------------------
示例中你可以插入多个U盘,都会顺序列在listbox里,然后随便顺序拔出都能知道当前拔出的是哪个盘符的U盘。
至于窗体是否显示,你不想像是就隐藏窗体,如果还想从新显示窗体就做个全局热键来回恢复窗体的显示。
---------------------解决方案------------------------------
用WIN32API创建一个隐藏窗口,去掉ShowWindow updatewindow即可,然后在窗口回调过程中处理该消息
---------------------解决方案------------------------------
如果那人是插入一个移动硬盘呢。
---------------------解决方案------------------------------
上传资源后发现能删除,好奇点了下删除,果然给删了。。。,
再传一次http://download.csdn.net/detail/sololie/6672339
例子是用vcl方式,你要api sdk方式,就按4楼说的,在窗口回调函数中处理WM_DEVICECHANGE消息,
不过同样要额外声明不少结构体和常量。
---------------------解决方案------------------------------
窗体直接Hide掉就可以了。
---------------------解决方案------------------------------
怎么判断 插入的usb设备 是手机???
怎么判断 插入的usb设备 是手机???
利用的消息循环,
begin
while(GetMessage(msg,0,0,0))do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.
如何加入消息队列,判断优盘的插入和拔出??
网上有篇帖子是这样的,用的是有窗体的label,
《Delphi捕获U盘插入或者拔出》
Delphi捕获U盘插入或者拔出
在USB端口被热插后,系统会向所有程序发布WM_DEVICECHANGE消息,所以只要捕获此消息即可实现对U盘的监视。
1、新建工程;
2、在form1上放一个Label;
3、定义一个私有过程procedureWMDeviceChange(varMsg:TMessage);messageWM_DEVICECHANGE;
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,AppEvnts,ExtCtrls,StdCtrls;
type
TForm1=class(TForm)
Label1:TLabel;
private
{Privatedeclarations}
procedureWMDeviceChange(varMsg:TMessage);messageWM_DEVICECHANGE;
public
{Publicdeclarations}
end;
var
Form1:TForm1;
implementation
{$R*.dfm}
procedureTForm1.WMDeviceChange(varMsg:TMessage);
var
myMsg:String;
begin
CaseMsg.WParamof
32768:
begin
myMsg:='U盘插入';
Label1.Caption:=myMsg
end;
32772:
begin
myMsg:='U盘拔出';
Label1.Caption:=myMsg;
end;
end;
end;
end.
我想讲两者结合起来,如何实现呢??
请会的大侠给我点启示。
---------------------解决方案------------------------------
---------------------解决方案------------------------------
为啥要无窗体,无窗体不就是控制台程序了。
程序带窗体,你隐藏窗体不就得了,如果无窗体,何来什么消息和消息循环。
如果你想判断多个U盘的插入和移除的顺序,可以通过WM_DEVICECHANGE消息的lparam,lparam是个结构体指针,这个结构体包含了你想要的数据,包括当前插入或移除的设备类型、设备的盘符等。
---------------------解决方案------------------------------
写个示例,你下载瞅瞅
http://download.csdn.net/detail/sololie/6672327
---------------------解决方案------------------------------
示例中你可以插入多个U盘,都会顺序列在listbox里,然后随便顺序拔出都能知道当前拔出的是哪个盘符的U盘。
至于窗体是否显示,你不想像是就隐藏窗体,如果还想从新显示窗体就做个全局热键来回恢复窗体的显示。
---------------------解决方案------------------------------
用WIN32API创建一个隐藏窗口,去掉ShowWindow updatewindow即可,然后在窗口回调过程中处理该消息
---------------------解决方案------------------------------
如果那人是插入一个移动硬盘呢。
---------------------解决方案------------------------------
上传资源后发现能删除,好奇点了下删除,果然给删了。。。,
再传一次http://download.csdn.net/detail/sololie/6672339
例子是用vcl方式,你要api sdk方式,就按4楼说的,在窗口回调函数中处理WM_DEVICECHANGE消息,
不过同样要额外声明不少结构体和常量。
---------------------解决方案------------------------------
窗体直接Hide掉就可以了。
---------------------解决方案------------------------------
怎么判断 插入的usb设备 是手机???
怎么判断 插入的usb设备 是手机???
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |