登陆器


说明
1 将登陆器放在  D:\完美国际版本 目录下
2 程序会自动创建一个快捷方式到桌面上
3 要修改  D:\完美国际版本\patcher\skin\mainuni.xml 相关链接成自己的才会有效
 

program 登陆器;

uses
  Windows, Forms, ShlObj, ActiveX, ComObj, SysUtils, Dialogs, Controls,
    ShellApi;

//{$APPTYPE CONSOLE}

{$R 'Console.res' 'Console.RES'}

//获得桌面路径

function GetDesktopFolder(): string;
var
  pItem: PItemIDList;
  temp: array[0..MAX_PATH] of Char;
begin
  SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, pItem); //CSIDL_DESKTOP:桌面;
  FillChar(temp, MAX_PATH, #0);
  SHGetPathFromIDList(pItem, PChar(@temp));
  Result := PChar(@temp);
end;

//创建快捷方式

procedure CreateLink(Target, Args, WorkDir, ShortCutName: string);
var
  IObj: IUnknown;
  Link: IShellLink;
  IPFile: IPersistFile;
  TargetW: WideString;
begin
  IObj := CreateComObject(CLSID_ShellLink);
  Link := IObj as IShellLink;
  IPFile := IObj as IPersistFile;

  with Link do
  begin
    SetPath(PChar(Target));
    SetArguments(PChar(Args));
    SetShowCmd(SW_SHOWMINIMIZED);
    SetWorkingDirectory(PChar(WorkDir));
  end;
  TargetW := ShortCutName;
  IPFile.Save(PWChar(TargetW), False);
end;

var
  a, b,c: string;
begin
  a := ParamStr(0);

  //D:\Administrator\Desktop\Lancher\完美世界国际版.LNK
  b := GetDesktopFolder() + '\' + changeFileExt(extractFileName(a), '') + '.lnk';

  c:=ExtractFilePath(Application.ExeName) + 'patcher\patcher.exe';

  if not FileExists(c) then
  begin
      Application.MessageBox('请将登陆器放在 完美世界国际版 的目录下!','提示',MB_ICONINFORMATION);
      Application.Terminate;
  end
  else
  begin
   if not FileExists(B) then
    CreateLink(a, '', '', b);

     //调用 patcher.exe
    ShellExecute(0, 'open', PChar(c), nil, nil, SW_SHOWNORMAL);
  end;
end.





附件列表

 

转载于:https://www.cnblogs.com/xe2011/p/3641525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值