您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > DELPHI开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

作非常规程序菜单掌握delphi高级秘籍
2001-09-17· ·张磊··YESKY

上一页  1 2  


  2:在状态栏上隐藏程序;

  在一般情况下我们在打开一个窗口或是一个程序时都会在任务条上出现按钮如在IE中每打开一个新的窗口 在任务条上就有一个新的按钮,在这里我们的程序是用在系统托盘中图标控制菜单,程序在后台运行,即 希望我们的程序不在任务条上出现按钮;这个可用函数SetWindowLong来实现,在我们这个程序中的代码如下:

procedure TForm1.FormCreate(Sender: TObject);

begin

 form1.Width:=1;

 form1.Height:=1; {让窗口在运行时表现为一个像素长宽的点}

 form1.Left:=screen.Width-1; {让窗口在运行时在屏幕的右上角而不影响我们的桌面的操作}

 form1.top:=1;

 form1.Brush.Style:=bsclear; {让窗口在运行时在表现为透明}

 setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow); {让窗口在运行时不在任务栏 上出现按钮}

end;

  3:在程序中控制光驱的打开和关闭;

  当我们不再用手动的打开关闭光驱门时,我们的光驱寿命也就会相应延长,我们在程序中可用函数

function mciSendString(lpstrCommand,lpstrReturnString:
PChar;uReturnLength :UINT;hWndCallback:HWND):MCIERROR;stdcall;

  其中lpstrComman参数表示一个MCI命令行,如:’set cdaudio door open wait‘,‘set cdaudio door closed wait’等等你可以delphi中的mmSystem.pas中查看详细说明;而参数'lpstrReturnString'表示接收返回信息的缓冲区指针,如果不需要返回值这里可写为'nil',参数'uReturnLength'表示接收返回信息的缓冲区的长度,若上面为'nil'这里为'0','hWndCallback'参数表示回调窗口的句柄,在这里可写为'handle';

  在我们的程序中原代码如下:

  打开光驱门:

procedure TForm1.N1Click(Sender: TObject);

begin

 mcisendstring('set cdaudio door open wait',nil,0,handle);

end;

关闭关驱门:

procedure TForm1.N2Click(Sender: TObject);

begin

 mcisendstring('set cdaudio door closed wait',nil,0,handle);

end;

  4:在程序中控制重启电脑和关闭计算机;退出WINDOWS可用的函数有ExitWindows()和ExitWindowsEx()在本程序中的代码如下:

  重启:

procedure TForm1.N8Click(Sender: TObject);

begin

 showmessage('请先关闭并保存正在运行的程序');

 exitwindowsex(ewx_force or ewx_reboot,0);

end;

关闭计算机:

procedure TForm1.N9Click(Sender: TObject);

begin

 showmessage('请先关闭并保存正在运行的程序');

 exitwindowsex(ewx_shutdown or ewx_poweroff,0);

end;

  5:实现光驱的自动播放和更改光驱图标都需要更改注册表;要实现注册表的读写我们用以下代码:

  例如有

var reg:tregistry;

reg:=tregistry.Create;

reg.RootKey:=hkey_local_machine; {这里是注册表的主键}

reg.OpenKey('software\microsoft\windows\currentversion\explorer\shell icons',true); {这里是注册表的子键}

reg.WriteString('11',mn); {这里对注册表进行写操作}

  {关于注册表的相关知识大家可参考‘电脑爱好者’出版的<<注册表完全精通>>一书}

  还有一点应特别注意的是在更改光驱图标时不仅要在注册表中更改,还要把'c:\windows\shelliconcache'文件删除,这相关的关于文件操作的知识以及后面一些有关程序中加入声音等等大家一定都会,这里也就不再多说,如不明白可给我写信:go_000000@163.com,或phray@263.net;}


上一页  1 2  

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 Delphi开发单机瘦数据库程序要点
 DELPHI超级Internet控件集--INDY
 DELPHI中的消息处理机制
 在DELPHI程序中拨号上网
 在DELPHI程序中自动设置ODBC数据源
 在DELPHI程序中使用ADO对象存取ODBC数
 DELPHI应用实例
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!