unit Unit1;<br><br>interface<br><br>uses<br> Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, mmsystem, StdCtrls, ActnList, ExtCtrls, Buttons,<br> Graphics, ComCtrls, dialogs, shellapi, Menus;<br><br>type<br> TForm1 = class(TForm)<br> ActionList1: TActionList;<br> diskopen: TAction;<br> diskclose: TAction;<br> flash: TAction;<br> Panel1: TPanel;<br> StatusBar1: TStatusBar;<br> SpeedButton1: TSpeedButton;<br> SpeedButton2: TSpeedButton;<br> SpeedButton3: TSpeedButton;<br> Image1: TImage;<br> SpeedButton4: TSpeedButton;<br> SpeedButton5: TSpeedButton;<br> Label1: TLabel;<br> SpeedButton6: TSpeedButton;<br> PopupMenu1: TPopupMenu;<br> N1: TMenuItem;<br> N2: TMenuItem;<br> N3: TMenuItem;<br> N4: TMenuItem;<br> procedure diskopenExecute(Sender: TObject);<br> procedure diskcloseExecute(Sender: TObject);<br> procedure flashExecute(Sender: TObject);<br> procedure SpeedButton5Click(Sender: TObject);<br> procedure SpeedButton4Click(Sender: TObject);<br> procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;<br> Shift: TShiftState; X, Y: Integer);<br> procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);<br> procedure IconOnClick(var message: TMessage); message WM_USER + 1;<br> procedure SpeedButton6Click(Sender: TObject);<br> procedure FormCreate(Sender: TObject);<br> procedure N1Click(Sender: TObject);<br> procedure N2Click(Sender: TObject);<br> procedure N3Click(Sender: TObject);<br> procedure N4Click(Sender: TObject);<br> procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br> procedure PopupMenu1Change(Sender: TObject; Source: TMenuItem;<br> Rebuild: Boolean);<br><br> private<br> { Private declarations }<br> public<br> { Public declarations }<br> end;<br><br>var<br> Form1: TForm1;<br> moveflag: boolean;<br> movex, movey, pressx, pressy: integer;<br><br>implementation<br><br>{$R *.dfm}<br><br>procedure TForm1.diskopenExecute(Sender: TObject);<br>begin<br> self.StatusBar1.Panels.Items[0].Text := '光驱';<br><br> if (DiskFree(7) = -1) then self.StatusBar1.Panels.Items[1].Text := '已经打开'<br> else<br> begin<br> mciSendString('Set cdaudio door open wait', nil, 0, handle);<br> StatusBar1.Panels.Items[1].Text := ' 打开';<br> self.Refresh;<br> end<br>end;<br><br>procedure TForm1.diskcloseExecute(Sender: TObject);<br>begin<br> self.StatusBar1.Panels.Items[0].Text := '光驱';<br> if not (DiskFree(7) = -1) then StatusBar1.Panels.Items[1].Text := '已经闭合'<br> else<br> begin<br> mciSendString('Set cdaudio door closed wait', nil, 0, handle);<br> StatusBar1.Panels.Items[1].Text := '闭合';<br> self.Refresh;<br> end<br>end;<br><br>procedure TForm1.flashExecute(Sender: TObject);<br>var<br> S, sstr: string;<br> AmtFree: single;<br> Total: single;<br> l: single;<br>begin<br> if DiskFree(8) = -1 then StatusBar1.Panels.Items[1].Text := '闪盘已经取走'<br> else<br> begin<br> AmtFree := DiskFree(8);<br> Total := DiskSize(8);<br> //showmessage(inttostr(Total));<br> l := (AmtFree / Total) * 100;<br> sstr := floattostr(l);<br> sstr := copy(sstr, 1, length(sstr) - 11);<br> S := '有' + sstr + '%的可用空间: ' + floattostr(AmtFree / 1024) + 'KB 可用';<br> self.StatusBar1.Panels.Items[0].Text := '闪盘';<br> self.StatusBar1.Panels.Items[1].text := s;<br> end<br>end;<br><br>procedure TForm1.SpeedButton5Click(Sender: TObject);<br>begin<br> close;<br>end;<br><br>procedure TForm1.SpeedButton4Click(Sender: TObject);<br>begin<br> application.Minimize;<br> //SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);<br> ShowWindow(application.Handle, SW_HIDE);<br>end;<br><br>procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;<br> Shift: TShiftState; X, Y: Integer);<br>begin<br> movex := x;<br> movey := y;<br><br><br>end;<br><br>procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,<br> Y: Integer);<br>begin<br> if (shift = [ssleft]) then<br> begin<br> self.left := self.left + (x - movex);<br> self.top := self.top + (y - movey);<br> end<br>end;<br><br>procedure TForm1.SpeedButton6Click(Sender: TObject);<br>begin<br> ShellAbout(Handle, '光驱精灵1.0#是一坨狗屎', '光驱精灵', Application.Icon.Handle);<br>end;<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>var<br> IconData: TNotifyIconData;<br> cdromicon: ticon;<br>begin<br> SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br> CdRomIcon := TIcon.Create;<br> CdRomIcon.Handle := application.Icon.Handle; //LoadFromFile('zig.ico');<br> IconData.cbSize := SizeOf(IconData);<br> IconData.Wnd := Handle;<br> IconData.uID := 1;<br> IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;<br> IconData.uCallBackMessage := WM_USER + 1;<br> IconData.hIcon := CdRomIcon.Handle;<br> IconData.szTip := '光驱精灵1.0 刘昆制作';<br> Shell_NotifyIcon(NIM_ADD, @IconData);<br> self.Hide;<br>end;<br><br>procedure tform1.IconOnClick(var message: Tmessage);<br>var<br> p: TPoint;<br>begin<br> if (message.lParam = WM_LBUTTONDOWN) then<br> SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br> if (message.lParam = WM_RBUTTONDOWN) then<br> begin<br> GetCursorPos(p);<br> popupmenu1.Popup(p.x, p.y);<br> end;<br> if (message.lParam = WM_LBUTTONDBLCLK) then<br> begin<br> //SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);<br> ShowWindow(application.Handle, 1);<br> end<br>end;<br><br>procedure TForm1.N1Click(Sender: TObject);<br>begin<br> self.diskopenExecute(self);<br>end;<br><br>procedure TForm1.N2Click(Sender: TObject);<br>begin<br> self.diskcloseExecute(self);<br>end;<br><br>procedure TForm1.N3Click(Sender: TObject);<br>begin<br> self.flashExecute(self);<br>end;<br><br>procedure TForm1.N4Click(Sender: TObject);<br>begin<br> self.Close;<br>end;<br><br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>var<br> IconData: TNotifyIconData;<br> cdromicon: ticon;<br>begin<br> CdRomIcon := TIcon.Create;<br> CdRomIcon.Handle := application.Icon.Handle;<br> IconData.cbSize := SizeOf(IconData);<br> IconData.Wnd := Handle;<br> IconData.uID := 1;<br> IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;<br> IconData.uCallBackMessage := WM_USER + 1;<br> IconData.hIcon := CdRomIcon.Handle;<br> IconData.szTip := '光驱精灵1.0 刘昆制作';<br> Shell_NotifyIcon(NIM_delete, @IconData);<br>end;<br><br>procedure TForm1.PopupMenu1Change(Sender: TObject; Source: TMenuItem;<br> Rebuild: Boolean);<br>begin<br> self.PopupMenu1.AutoPopup := false;<br>end;<br><br>end.<br><br>