📄 frmmain.pas
字号:
{*******************************************************}
{ }
{ 手机遥控器 v1.0 }
{ }
{ 版权所有 (C) 2002, 2003 MyvNet }
{ }
{ 作者: 小冬[kendling] }
{ 邮件: kendling@sina.com }
{ 主页: http://www.MyvNet.com }
{ }
{*******************************************************}
unit frmMain;
interface
uses
Messages,
CnRS232Dialog, ActnList, Classes, StdActns, Windows, Forms, Menus, CnRS232,
SysUtils, CnClasses, CnTrayIcon, StdCtrls, Controls, ExtCtrls,
CnTimer, jpeg;
type
TFMain = class(TForm)
CnTrayIcon1: TCnTrayIcon;
pmMenu: TPopupMenu;
pmnu_ShowMainForm: TMenuItem;
actlst1: TActionList;
act_FileExit: TFileExit;
act_ShowMainForm: TAction;
mmo1: TMemo;
btnSend: TButton;
act_SendButton: TAction;
btn1: TButton;
CnEdtCmd: TEdit;
mmMain: TMainMenu;
miFile: TMenuItem;
miHelp: TMenuItem;
miHelpAbout: TMenuItem;
miFileConnect: TMenuItem;
miFileDisconnect: TMenuItem;
N1: TMenuItem;
miFileOption: TMenuItem;
N2: TMenuItem;
miFileExit: TMenuItem;
act_FileConnect: TAction;
act_FileDisconnect: TAction;
act_FileOption: TAction;
miHelpRegister: TMenuItem;
N3: TMenuItem;
act_HelpRegister: TAction;
act_HelpAbout: TAction;
img1: TImage;
N4: TMenuItem;
pmnuExit: TMenuItem;
tMouse: TCnTimer;
procedure act_ShowMainFormExecute(Sender: TObject);
procedure act_SendButtonExecute(Sender: TObject);
procedure btn1Click(Sender: TObject);
procedure CnEdtCmdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure act_FileDisconnectExecute(Sender: TObject);
procedure act_FileConnectExecute(Sender: TObject);
procedure act_FileOptionExecute(Sender: TObject);
procedure act_HelpRegisterExecute(Sender: TObject);
procedure act_HelpAboutExecute(Sender: TObject);
procedure ComPortReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
procedure tMouseTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FMain: TFMain;
implementation
uses UntComm, frmSetting, frmAbout, sndkey32;
{$R *.dfm}
{-------------------------------------------------------------------------------
过程名: TFMain.act_ShowMainFormExecute
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.01
参数: Sender: TObject
返回值: 无
说明: 显示/隐藏主窗口
-------------------------------------------------------------------------------}
procedure TFMain.act_ShowMainFormExecute(Sender: TObject);
begin
if Self.Visible then
begin
CnTrayIcon1.HideApplication;
end else
begin
CnTrayIcon1.ShowApplication;
end;
end;
{-------------------------------------------------------------------------------
过程名: TFMain.act_SendButtonExecute
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.01
参数: Sender: TObject
返回值: 无
说明: 过程说明
-------------------------------------------------------------------------------}
procedure TFMain.act_SendButtonExecute(Sender: TObject);
begin
SendCmdToComPort(CnEdtCmd.Text);
end;
{-------------------------------------------------------------------------------
过程名: TFMain.btn1Click
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.01
参数: Sender: TObject
返回值: 无
说明: 显示串口状态
-------------------------------------------------------------------------------}
procedure TFMain.btn1Click(Sender: TObject);
begin//
objWinamp.StartWinamp();
MessageBox(Handle, PChar(BoolToStr(objWinamp.IsFound)), 'Info', MB_OK);
end;
{-------------------------------------------------------------------------------
过程名: TFMain.CnEdtCmdKeyDown
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.07
参数: Sender: TObject; var Key: Word; Shift: TShiftState
返回值: 无
说明: 发送即时命令
-------------------------------------------------------------------------------}
procedure TFMain.CnEdtCmdKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then act_SendButton.Execute;
end;
{-------------------------------------------------------------------------------
过程名: TFMain.FormCreate
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.07
参数: Sender: TObject
返回值: 无
说明: 初始化全局变量
-------------------------------------------------------------------------------}
procedure TFMain.FormCreate(Sender: TObject);
begin
InitSystem;
//自动连接
if bAutoConnect then
act_FileConnect.Execute;
end;
{-------------------------------------------------------------------------------
过程名: ComPortReceiveData
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.01
参数: Sender: TObject; Buffer: Pointer; BufferLength: Word
返回值: 无
说明: 接收串口返回数据
-------------------------------------------------------------------------------}
procedure TFMain.ComPortReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
tmpStr: array [1..4096] of Char;
tmpStr2: UTF8String;
tmpStr3: string;
strCMDlst: TStrings;
i, j: Integer;
objCMD: TPhoneCMD;
begin
FillMemory(@tmpStr, 4096, 0);
Move(Buffer^, tmpStr, BufferLength);
tmpStr2 := Copy(tmpStr, 0, BufferLength);
tmpStr3 := Utf8ToAnsi(tmpStr2);
if bUtf8 then
mmo1.Lines.Add(tmpStr3)
else
mmo1.Lines.Add(tmpStr);
//分析
strCMDlst := TStringList.Create;
objCMD := TPhoneCMD.Create;
strCMDlst.Clear;
strCMDlst.Text := tmpStr3;
for i:=0 to strCMDlst.Count-1 do
begin
tmpStr3 := Trim(strCMDlst[i]);
if (UpperCase(tmpStr3) <> 'OK') and
(tmpStr3 <> '') then
begin
j := Pos('=', tmpStr3);
if j > 0 then
begin
objCMD.strCMD := Copy(tmpStr3, 0, j-1);
objCMD.strParam := Copy(tmpStr3, j+1, Length(tmpStr3)-j);
end else
begin
objCMD.strCMD := tmpStr3;
objCMD.strParam := '';
end;
MessageX(objCMD);
// MessageBox(Handle, PChar(tmpStr3 + #13#10 + objCMD.strCMD + #13#10 +
// objCMD.strParam), PChar('Info'), MB_OK);
end; //UpperCase
end; //for
objCMD.Free;
strCMDlst.Free;
end;
procedure TFMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if objComPort.Connected then
act_FileDisconnect.Execute;
ResetSystem;
end;
procedure TFMain.act_FileConnectExecute(Sender: TObject);
begin
if not objComPort.Connected then
begin
act_FileConnect.Enabled := False;
act_FileDisconnect.Enabled := True;
objComPort.CommName := strComPort;
objComPort.StartComm;
Sleep(500);
ReadPhoneStatus;
SendInitCodeToComPort;
end;
end;
procedure TFMain.act_FileDisconnectExecute(Sender: TObject);
begin
//复位手机状态
WritePhoneStatus;
act_FileDisconnect.Enabled := False;
act_FileConnect.Enabled := True;
objComPort.StopComm;
end;
procedure TFMain.act_FileOptionExecute(Sender: TObject);
var
FSetting: TFSetting;
begin
FSetting := TFSetting.Create(self);
FSetting.ShowModal;
FSetting.Free;
end;
procedure TFMain.act_HelpRegisterExecute(Sender: TObject);
begin
//
end;
procedure TFMain.act_HelpAboutExecute(Sender: TObject);
var
FAbout: TFAbout;
begin
FAbout := TFAbout.Create(Self);
FAbout.ShowModal;
FAbout.Free;
end;
procedure TFMain.tMouseTimer(Sender: TObject);
begin
case iMouse of
0: //LEFT
mouse_event(MOUSEEVENTF_MOVE, -3*iMouseMoveSpeed, 0, 0, 0);
1: //UP
mouse_event(MOUSEEVENTF_MOVE, 0, -3*iMouseMoveSpeed, 0, 0);
2: //RIGHT
mouse_event(MOUSEEVENTF_MOVE, 3*iMouseMoveSpeed, 0, 0, 0);
3: //DOWN
mouse_event(MOUSEEVENTF_MOVE, 0, 3*iMouseMoveSpeed, 0, 0);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -