📄 untcomm.pas
字号:
(Name:'u'; Value:pkPUP),
(Name:'d'; Value:pkPDown),
(Name:':J'; Value:pkClick),
(Name:'<'; Value:pkLeft),
(Name:'^'; Value:pkUP),
(Name:'>'; Value:pkRight),
(Name:'v'; Value:pkDown),
(Name:'['; Value:pkFLeft),
(Name:']'; Value:pkFRight),
(Name:':R'; Value:pkReturn),
(Name:'c'; Value:pkCancel),
(Name:'1'; Value:pk1),
(Name:'2'; Value:pk2),
(Name:'3'; Value:pk3),
(Name:'4'; Value:pk4),
(Name:'5'; Value:pk5),
(Name:'6'; Value:pk6),
(Name:'7'; Value:pk7),
(Name:'8'; Value:pk8),
(Name:'9'; Value:pk9),
(Name:'0'; Value:pk10),
(Name:'*'; Value:pk11),
(Name:'#'; Value:pk12)
);
var
i: Integer;
begin
Result := pkNone;
for i := 1 to MaxPhoneKeyCode do
begin
if Trim(strKey) = PhoneKeyCodes[i].Name then
begin
Result := PhoneKeyCodes[i].Value;
end;
end;
end;
{-------------------------------------------------------------------------------
过程名: ProcessAppKey
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.21
参数: const pkKey: TPhoneKey; const KeyDown: Boolean
返回值: 无
说明: 处理程序按键
-------------------------------------------------------------------------------}
procedure ProcessAppKey(const pkKey: TPhoneKey; const KeyDown: Boolean);
var
objKeyGroup: TKeyGroup;
begin
objKeyGroup := TKeyGroup.Create;
if SelectApp in [appOne..AppTen] then
CopyMemory(objKeyGroup, KeyGroups[Programs[Ord(SelectApp)].AppKGNum],
SizeOf(TKeyGroup));
case pkKey of
pkCamaner: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkCamaner)-1], KeyDown);
pkOnline: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkOnline)-1], KeyDown);
pkPUP: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkPUP)-1], KeyDown);
pkPDown: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkPDown)-1], KeyDown);
pkLeft: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkLeft)-1], KeyDown);
pkUP: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkUP)-1], KeyDown);
pkRight: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkRight)-1], KeyDown);
pkDown: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkDown)-1], KeyDown);
pkClick: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkClick)-1], KeyDown);
pkFLeft: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkFLeft)-1], KeyDown);
pkFRight: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkFRight)-1], KeyDown);
pkReturn: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkReturn)-1], KeyDown);
pkCancel: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkCancel)-1], KeyDown);
pk1: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk1)-1], KeyDown);
pk2: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk2)-1], KeyDown);
pk3: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk3)-1], KeyDown);
pk4: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk4)-1], KeyDown);
pk5: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk5)-1], KeyDown);
pk6: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk6)-1], KeyDown);
pk7: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk7)-1], KeyDown);
pk8: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk8)-1], KeyDown);
pk9: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk9)-1], KeyDown);
pk10: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk10)-1], KeyDown);
pk11: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk11)-1], KeyDown);
pk12: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk12)-1], KeyDown);
end;
objKeyGroup.Free;
end;
{-------------------------------------------------------------------------------
过程名: ProcessWinampKey
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.21
参数: const pkKey: TPhoneKey; const KeyDown: Boolean
返回值: 无
说明: 处理Winamp按键
-------------------------------------------------------------------------------}
procedure ProcessWinampKey(const pkKey: TPhoneKey; const KeyDown: Boolean);
begin
end;
{-------------------------------------------------------------------------------
过程名: ProcessMouseKey
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.21
参数: const pkKey: TPhoneKey; const KeyDown: Boolean
返回值: 无
说明: 处理鼠标按键
-------------------------------------------------------------------------------}
procedure ProcessMouseKey(const pkKey: TPhoneKey; const KeyDown: Boolean);
var
objKeyGroup: TKeyGroup;
begin
objKeyGroup := TKeyGroup.Create;
if SelectApp in [appOne..AppTen] then
CopyMemory(objKeyGroup, KeyGroups[Programs[Ord(SelectApp)].AppKGNum],
SizeOf(TKeyGroup));
case pkKey of
pkCamaner: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkCamaner)-1], KeyDown);
pkOnline: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkOnline)-1], KeyDown);
pkPUP: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkPUP)-1], KeyDown);
pkPDown: SendKeyBoardEvent(objKeyGroup.Key[Ord(pkPDown)-1], KeyDown);
pkLeft: MouseEvent(0, KeyDown);
pkUP: MouseEvent(1, KeyDown);
pkRight: MouseEvent(2, KeyDown);
pkDown: MouseEvent(3, KeyDown);
pkClick: MouseEvent(5, KeyDown);
pkFLeft: MouseEvent(4, KeyDown);
pkFRight: MouseEvent(6, KeyDown);
pkReturn: if KeyDown then ShowHelp;
pkCancel: if KeyDown then ExitFunction;
pk1: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk1)-1], KeyDown);
pk2: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk2)-1], KeyDown);
pk3: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk3)-1], KeyDown);
pk4: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk4)-1], KeyDown);
pk5: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk5)-1], KeyDown);
pk6: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk6)-1], KeyDown);
pk7: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk7)-1], KeyDown);
pk8: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk8)-1], KeyDown);
pk9: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk9)-1], KeyDown);
pk10: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk10)-1], KeyDown);
pk11: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk11)-1], KeyDown);
pk12: SendKeyBoardEvent(objKeyGroup.Key[Ord(pk12)-1], KeyDown);
end;
objKeyGroup.Free;
end;
{-------------------------------------------------------------------------------
过程名: ProcessMenu
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.18
参数: const strMessage: string
返回值: 无
说明: 处理菜单消息
-------------------------------------------------------------------------------}
procedure ProcessMenu(const strMessage: string);
var
strValue: string;
begin
strValue := strMessage[Length(strMessage)];
if strValue = 'I' then
begin
//发送主菜单
ShowMainMenu;
end else
begin
case SelectMenu of
pmsMain:
begin
case StrToInt(strValue) of
0: //返回上一层菜单
begin
end;
1: //应用程序
begin
ShowApplicationMenu;
end;
2: //Winamp播放器
begin
ShowWinampMenu(5);
end;
3: //移动鼠标
begin
ShowMouseMove;
end;
4: //关于本软件
begin
ShowAbout;
end;
end;
end;
pmsApplication:
begin
case StrToInt(strValue) of
0: //返回上一层菜单
ShowMainMenu;
1..9: //应用程序
StartApplication(strValue);
end;
end;
pmsWinamp:
begin
if not bPlayList then //如果不在播放列表中
begin
if (strValue <> '0'){ and (SelectMenu <> pmsWinamp)} then
ShowWinampMenu(StrToInt(strValue));
case StrToInt(strValue) of
0: //返回上一层菜单
ShowMainMenu;
1: //上一首
objWinamp.PrevTrack;
2: //播放/暂停
if objWinamp.WAState = 1 then
objWinamp.Pause
else
objWinamp.Play;
3: //下一首
objWinamp.NextTack;
4: //停止
objWinamp.Stop;
5: //播放列表
ShowPlayList(iCurPage);
6: //增加音量
objWinamp.Volume := objWinamp.Volume + 10;
7: //减少音量
objWinamp.Volume := objWinamp.Volume - 10;
end;
end
else begin
case StrToInt(strValue) of
0: //返回上一层菜单
ShowWinampMenu(5);
1..12:
ProcessPlayList(StrToInt(strValue));
// 1: //每一首歌
// ;
// 2: //每二首歌
// ;
// 3: //每三首歌
// ;
// 4: //每四首歌
// ;
// 5: //每五首歌
// ;
// 6: //每六首歌
// ;
// 7: //每七首歌
// ;
// 8: //每八首歌
// ;
// 9: //每九首歌
// ;
// 10: //上一页
// ShowPlayList(iPlayListPage-1);
// 11: //下一页
// ShowPlayList(iPlayListPage+1);
// 12: //查找
// ;
end;
end; //if
end;
pmsMouse: //其实没有菜单处理
begin
end;
pmsAbout: //其实没有菜单处理
begin
end;
end; //case
end; //if
end;
{-------------------------------------------------------------------------------
过程名: ProcessDialog
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.19
参数: const strMessage: string
返回值: 无
说明: 处理对话框
-------------------------------------------------------------------------------}
procedure ProcessDialog(const strMessage: string);
begin
case SelectMenu of
pmsMain:
begin
ShowMainMenu;
end;
pmsApplication:
begin
end;
pmsWinamp:
begin
end;
pmsMouse:
begin
end;
pmsAbout:
begin
ShowMainMenu;
end;
end;
end;
{-------------------------------------------------------------------------------
过程名: SearchWinampPath
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.11
参数: 无
返回值: string
说明: 搜索Winamp路径
-------------------------------------------------------------------------------}
function SearchWinampPath: string;
var
Registry: TRegistry;
begin
Result := '';
Registry := TRegistry.Create;
Registry.RootKey := HKEY_CURRENT_USER;
if Registry.OpenKey('Software\Winamp', False) then
begin
Result := Registry.ReadString('') + '\Winamp.exe';
end;
Registry.Free;
end;
{-------------------------------------------------------------------------------
过程名: InitSystem
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.07
参数:
返回值: 无
说明: 初始化系统
-------------------------------------------------------------------------------}
procedure InitSystem();
begin
//获取程序路径和语言文件路径
strAppPath := GetCurrentDir + '\';
strLngPath := GetCurrentDir + '\lang\';
CreateObjects;
LoadSetting;
LoadLanguage;
// ReadPhoneStatus;
end;
{-------------------------------------------------------------------------------
过程名: ResetSystem
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.07
参数:
返回值: 无
说明: 复位系统
-------------------------------------------------------------------------------}
procedure ResetSystem();
begin
//删除帮助窗口
if FHelp <> nil then FHelp.Free;
//保存配置
if bSaveInExit then WriteSetting;
DestroyObjects;
end;
{-------------------------------------------------------------------------------
过程名: CreateObjects
作者: 小冬[kendling]
邮件: kendling@sina.com
主页: http://www.MyvNet.com
日期: 2005.02.14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -