当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求控制光驱进出仓软件
帖子发表于 : 2008-03-09 11:21 
头像

注册: 2007-04-17 13:32
帖子: 775
地址: 上海理工大学
送出感谢: 1
接收感谢: 0 次
引用:
Linux下弹入弹出光驱(CDROM)命令

1 弹出光驱命令

eject

2 弹入光驱命令

eject -t

因为光驱上的按钮坏了,所以需要一个光驱进出仓软件
虽然有了eject这个命令,但是需要在桌面上新建两个启动器
如何合并这两个命令在一个启动器里呢?


_________________
http://wangjisheng.blogbus.com/


最后由 wjs272 编辑于 2008-03-09 11:42,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-03-09 11:29 

注册: 2007-09-14 19:51
帖子: 972
送出感谢: 0 次
接收感谢: 0 次
写一个shell脚本
可以弹出窗口
但是我不会


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-03-09 16:54 
头像

注册: 2007-04-17 13:32
帖子: 775
地址: 上海理工大学
送出感谢: 1
接收感谢: 0 次
现在我做了两个启动器放在桌面上,能不能合并成一个呢 ?
图片


_________________
http://wangjisheng.blogbus.com/


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-03-09 17:13 
头像

注册: 2007-04-17 13:32
帖子: 775
地址: 上海理工大学
送出感谢: 1
接收感谢: 0 次
下面这个方面如何用啊?
用Delphi实现对光驱盘盒的开关控制
引用:
通常,我们打开和关闭光驱是通过按动光驱上开关按钮来实现的,但有时候手动方式显得很不方便,尤其是在一台电脑上安装多个光驱的情形下,同时光驱的损耗在手动方式下也是最大的,Delphi是个功能强大且容易的编程工具,可不可以利用编程方法来取代手工操作呢?通过摸索与实践终于将这一想法利用Delphi编程得以实现,该程序不但能够控制一个光驱,而且还可以选择性地控制某个光驱和所有光驱的开启与关闭,这对那些操作多个光驱而又懒得弯腰的电脑人确实会方便许多。

编程思路:通过弹出菜单及事件控制光驱。

1、弹出菜单的实现

运行Delphi并新建一个工程, 在uses部分引用ReGIStry, Mmsystem两个单元文件,在窗体中添加一个名称为PopmenuCDctrl弹出菜单组建,并添加6个菜单项,窗体TForm1的 Popupmenu 项设为PopmenuCDctrl。其中mOpenCDROM(打开CDROM盒)和mCloseCDROM(关闭CDROM盒)菜单将根据电脑中光驱个数自动生成相应的菜单栏目。

2、声明的变量和函数:

… …

procedure mCloseAppClick(Sender: TObject);
procedure mAutorunClick(Sender: TObject);
procedure mNotautorunClick(Sender: TObject);
procedure PopmenuCDctrlPopup(Sender: TObject);

private
 { Private declarations }
 procedure MenuOpenCdrom(Sender : TObject);
 procedure MenuCloseCdrom(Sender : TObject);
var
 Form1: TForm1;
 MYDRIVE:char;
 Mycdrom:pchar;
 tmppopmenu1,tmpPopmenu2:TMenuItem;
 function OpenCDROM(Drive:pChar):Boolean;
 function CloseCDROM(Drive:pChar):Boolean;
 implementation
 … …



列出光驱数目和生成子菜单

procedure TForm1.PopupMenu1Popup(Sender: TObject);
 var Drive :char;
begin;
 mOpenCdrom.Clear; //清除打开光驱子菜单项
 mCloseCdrom.Clear; //清除打开光驱子菜单项
 //列出光驱数目和生成子菜单

 for Drive:='a' to 'z' do
 begin
Case GetDriveType(Pchar(Drive+':\')) of
 DRIVE_REMOVABLE:
 MyDrive:=Drive;
 DRIVE_FIXED:
 MyDrive:=Drive;
 DRIVE_CDROM:
begin
 MyDrive:=Drive;
 tmppopmenu1:=TMenuItem.Create(Self);
 tmppopmenu1.AutoHotkeys:=maManual;
 tmppopmenu1.OnClick := menuOpenCdrom;
 mOpenCDROM.Add(tmppopmenu1);
 tmppopmenu1.Caption :=UpperCase(mydrive)+':';
 tmppopmenu2:=TMenuItem.Create(Self);
 tmppopmenu2.AutoHotkeys:=maManual;
 tmppopmenu2.OnClick := menuCloseCdrom;
 mCloseCDROM.Add(tmppopmenu2);
 tmppopmenu2.Caption :=UpperCase(mydrive)+':';
 end;

 DRIVE_RAMDISK:
 MyDrive:=Drive;
 DRIVE_REMOTE:
 MyDrive:=Drive;
end;
end;

//当光驱多于1个生成“所有光驱”控制菜单项

if mOpenCDROM.Count > 1 then
begin
 tmppopmenu1:=TMenuItem.Create(Self);
 tmppopmenu1.Caption:='所有光驱';
 tmppopmenu1.OnClick := menuOpenCdrom;
 mOpenCDROM.Add(tmppopmenu1);
 tmppopmenu2:=TMenuItem.Create(Self);
 tmppopmenu2.Caption:='所有光驱';
 tmppopmenu2.OnClick := menuCloseCdrom;
 mCloseCDROM.Add(tmppopmenu2);
end;
end;


本文引用地址:http://www.linuxdiyf.com/1/article/2006/0701/article_529.html


_________________
http://wangjisheng.blogbus.com/


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-03-09 19:49 

注册: 2007-08-09 14:16
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
me 写道:
写一个shell脚本
可以弹出窗口
但是我不会


eject -T 是不是你想要的?

-T With this option the drive is given a CD-ROM tray close command if it's opened, and a CD-ROM tray eject command if it's closed. Not all devices support this com-
mand, because it uses the above CD-ROM tray close command.


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-03-09 20:17 
头像

注册: 2007-04-17 13:32
帖子: 775
地址: 上海理工大学
送出感谢: 1
接收感谢: 0 次
引用:
eject -T 是不是你想要的?

引用:
jason@jason-desktop:~$ eject -T
ioctl: Input/output error

我想了一个土办法,见http://wangjisheng.blogbus.com/logs/16707258.html


_________________
http://wangjisheng.blogbus.com/


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-03-09 20:34 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
其实只是不知道如何判断这开仓的状态。比如/proc /var???


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-03-10 19:42 

注册: 2008-01-24 16:24
帖子: 138
送出感谢: 0 次
接收感谢: 0 次
对笔记本光驱eject -t无效吧


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Yahoo [Bot] 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译