Install.dpr
资源名称:Wingb_Mz.rar [点击查看]
上传用户:wen198501
上传日期:2013-04-01
资源大小:335k
文件大小:2k
源码类别:
输入法编程
开发平台:
Delphi
- program Install;
- {$R Install.res}
- uses Windows, Imm;
- function PathFileExists(pszPath: PChar): Bool; stdcall; external 'shlwapi.dll' Name 'PathFileExistsA';
- const
- AppName = 'Wingb_Mz Installer';
- ImePath = '..ImeWingb_Mz.Ime';
- ImeFile = 'Wingb_Mz.Ime';
- ImeName = '中文 (简体) - 区位Delphi版';
- var
- SysPath: array[0..MAX_PATH] of Char;
- PathLen: DWord;
- begin
- // 安装确认
- if (MessageBox(0, '您要安装 "区位输入法Delphi版" 吗? ', AppName, MB_YESNO) <> ID_YES) then Exit;
- // 来源路径
- if (PathFileExists(ImePath) = False) then
- begin
- MessageBox(0, PChar('未找到安装源 - "' + ImePath + '", 安装失败!! '), AppName, MB_OK);
- Exit;
- end;
- // 系统目录
- PathLen := GetSystemDirectory(SysPath, MAX_PATH);
- if (PathLen = 0) or (PathFileExists(SysPath) = False) then
- begin
- MessageBox(0, '未找到Windows系统目录, 安装失败!! ', AppName, MB_OK);
- Exit;
- end;
- // 目标路径
- if (SysPath[PathLen - 1] <> '') then
- begin
- SysPath[PathLen] := '';
- Inc(PathLen);
- end;
- lStrCpy(@SysPath[PathLen], ImeFile);
- // 覆盖确认
- if (PathFileExists(SysPath) = True) then
- begin
- if (MessageBox(0, PChar('目标文件 - "' + SysPath + '" 已存在, 尝试覆盖? '), AppName, MB_YESNO) <> ID_YES) then Exit;
- DeleteFile(SysPath);
- if (PathFileExists(SysPath) = True) then
- begin
- MessageBox(0, PChar('文件 - "' + SysPath + '" 正在使用中, 无法覆盖, 安装失败!! '), AppName, MB_OK);
- Exit;
- end;
- end;
- // 复制文件
- if (CopyFile(ImePath, SysPath, False) = False) then
- begin
- MessageBox(0, PChar('无法复制 "' + ImePath + '" 至 "' + SysPath + '", 安装失败!! '), AppName, MB_OK);
- Exit;
- end;
- // 安装Ime
- if (ImmInstallIme(SysPath, ImeName) = 0) then
- MessageBox(0, PChar('Ime模块 - "' + SysPath + '" 安装失败!! :~( '), AppName, MB_OK)
- else
- MessageBox(0, PChar('Ime模块 - "' + SysPath + '" 安装成功!! :~) '), AppName, MB_OK);
- end.