如何实现插入U盘,启动U盘上的某个程序?给思路也行 ( 积分: 246 )

  • 主题发起人 主题发起人 想飞的男孩
  • 开始时间 开始时间
这个问题不复杂的, 我已经完成了(实现了), 提示如下:
1. u盘插入的时候,系统会给当前所有的程序发送一个移动磁盘准备好的消息;
2. 编写一个服务程序(驻留内存,始终运行), 接收到移动磁盘准备好的消息的时候
运行这个移动磁盘上的某个程序(例如project1.exe);
3. 想要的男孩可以发邮件给我所取运行程序...
 
看看在Delphi盒子上的“闪盘小偷”程序你就明白怎么做啦,含源码,见链接
http://www.2ccc.com/article.asp?articleid=2876

前几天在学习监测硬件是否变化时发现了VC版的“闪盘小偷”代码,为了学习将其改成了DELPHI版,大家一起研究。

程序功能:监视是否有移动存储设备插入,如果插入将其内容拷贝到指定目录中.

实现原理:当Windows系统的硬件设置发生变化时,系统将会向所有应用程序发送一条WM_DEVICECHANGE消息.当有设备被禁止或激活时(比如我们插入光盘,从光驱中取出光盘,或者在系统设备中删除或禁止打印端口),该消息的wParam参数分别被指定为DBT_DEVICEARRIVAL(设备安装完毕)和DBT_DEVICEREMOVECOMPLETE(设备移除完毕),根据这两个参数可以判断闪存是否存在,lParam参数指向一DEV_BROADCAST_HDR结构,该结构中的dbch_devicetype成员是变化设备的类型,当该值为DBT_DEVTYP_VOLUME时,表明一个带有卷标名的驱动器发生了变化,一般情况下该驱动器既为光驱.

其他:Ctrl+Alt+F12退出程序
 
to 天河流星:
我想你的方法应该和tseug的方法差不多的。不过我要求是空白的机器。

to Beyondbill:
你的发表内容我正在看,一会儿回复。
 
to Beyondbill:
唉,你的方法还是不对题。
 
我就不明白怎么不对题了,人家闪盘小偷是插入U盘或者光盘的时候就开始偷偷从里面Copy东西出来,你的要求就是启动U盘上的Project.exe程序,这有啥不合题,你把人家偷偷从里面面Copy的代码换成你的执行Project.exe代码不就成了,有问题吗?
 
Beyondbill:
的确不对题;
闪盘小偷是先运行系统里的服务程序,等U盘插上来的时候,把U盘里的东西偷出来,
而楼主要求运行的程序是在 U 盘上的,没有被事先启动。

想飞的男孩:
bbgsgs 和 bbscom 说的没错,我在 W2k 下也试过,
你那里不行,可能是什么系统服务被停止了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部