棋牌游戏客户端打包方法
KY棋牌游戏
游戏客户端组成由游戏EXE文件和房间资源文件组成
例如斗地主 需要Land.exe 和斗地主房间文件(Locker.bmp,TableFrame.DAT,TableNormal.bmp,TablePlaying.bmp,UserReady.bmp)一共6个文件,看图:
现在用INNO SETUP开始打包
新建个INNO文件: 内容如下
;斗地主
;------------------------------------------------
;
;------------------------------------------------
[Setup]
;
;AppName AppId 决定了是否是相同的程序
;
AppName = 36qp ;应用程序名,需跟大厅设置一样
AppId = 36qp ;应用程序ID,需跟大厅设置一样
AppVerName = 湖南棋牌斗地主 ;游戏名称
;不能选择安装路径
;安装路径从注册表读取
DisableDirPage = yes
;安装时的默认的路径
DefaultDirName = {reg:HKCU\Software\36qp\Plaza,Path}
;游戏主键
;没有在开始菜单中的名字
DisableProgramGroupPage= yes
;安装文件的输出名
;安装文件的输出名
OutputDir = D:\Program Files\36qp\演示
;将打包文件输出到哪个目录
OutputBaseFilename = LandInstallKY棋牌游戏
;打包输出的文件名
;是否使用以前默认的路径
UsePreviousAppDir = no
;
;单个游戏没有自己的卸载
;
Uninstallable = no
;
;压缩
;
Compression = zip/9
SolidCompression = yes
;
;显示的图
;
;WizardImageFile =
[Tasks]
;------------------------------------------------
;
;------------------------------------------------
[Files]
;
;exe
;
Source: D:\Program Files\36qp\Land.exe; DestDir: {app}; Flags: ignoreversion
;原游戏EXE,这里是斗地主LAND.exe
;
;dll
;
;
;other
;
Source: D:\Program Files\36qp\斗地主\Locker.bmp; DestDir: {app}\斗地主; Flags: ignoreversion
Source: D:\Program Files\36qp\斗地主\TableFrame.DAT; DestDir: {app}\斗地主; Flags: ignoreversion
Source: D:\Program Files\36qp\斗地主\TableNormal.bmp; DestDir: {app}\斗地主; Flags: ignoreversion
Source: D:\Program Files\36qp\斗地主\TablePlaying.bmp; DestDir: {app}\斗地主; Flags: ignoreversion
Source: D:\Program Files\36qp\斗地主\UserReady.bmp; DestDir: {app}\斗地主; Flags: ignoreversion
;游戏桌子资源原目录
;------------------------------------------------
;
;------------------------------------------------
[Icons]
;------------------------------------------------
; 需要在安装结束后运行的程序
;------------------------------------------------
[Run]
Filename: {app}\GamePlaza.exe; Flags: nowait postinstall skipifsilent
;
; 注册表
;
[Registry]
;------------------------------------------------
; 卸载的时候要做的事情
;------------------------------------------------
[UninstallDelete]
[Code]
//导入一个Windows API 函数
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
externalMessageBoxA@user32.dllstdcall;
//安装完成后
//更新游戏列表
procedure CurStepChanged(CurStep: TSetupStep);
var
hWnd: HWND;
begin
if CurStep=ssDone then
begin
hWnd := FindWindowByClassName(36qpPlaza);
if hWnd <> 0 then
begin
PostMessage(hWnd, 1124, 2021, 0); ;2021 是游戏的KINDID
//MessageBox(0, PostMessage(hWnd, 1124, 5, 0);, MessageBox, MB_OK);
end
end
end;
//------------------------------------------------
// the end
//------------------------------------------------
最后点生成,打包后的游戏客户端将会输出在你刚才设置的目录中 这里是OutputDir = D:\Program Files\36qp\演示