ショートカット作成

解決


ぶー太  2006-03-25 00:20:37  No: 20673

ショートカットを作成するようなプログラムは、どのようにしてつくればいいんでしょう?


けっこう適当  2006-03-25 00:27:52  No: 20674

{ショートカットファイルを作成する}
function CreateShortcut(aAppHandle      :HWND;
                        aShortCutDir    :String;        //ショートカット作成フォルダ
                        aFileName       :String;        //ショートカットファイル名
                        aExePath        :String;        //アプリケーションパス
                        aArguments      :String='';     //コマンドライン引数(省略可)
                        aWorkFolder     :String='';     //作業フォルダ(省略可)
                        aIconPath       :String='';     //アイコンを表示するパス(省略可)
                        aIconIndex      :Integer=0)     //アイコンのインデックス(省略可)
                                        :Boolean;
var
  shellLink: IShellLink;
  persistFile: IPersistFile;
  filePath: String;
  filePathChar: array[0..MAX_PATH*2-1] of Char;
begin
  Result := True;
  {CreateComObject}
  shellLink := CreateComObject(CLSID_ShellLink) as IShellLink;

  persistFile := shellLink as IPersistFile;

  {プログラムパス}
  shellLink.SetPath(PChar(aExePath));
  {コマンドライン}
  if aArguments  <> '' then shellLink.SetArguments       (PChar(aArguments ));
  {作業フォルダ}
  if aWorkFolder <> '' then shellLink.SetWorkingDirectory(PChar(aWorkFolder));

  {shellLink.SetDescription(PChar(aFileName));}

  if aIconPath <> '' then begin
    shellLink.SetIconLocation(PChar(aIconPath), aIconIndex);
  end
  else begin
    shellLink.SetIconLocation(PChar(aExePath), 0);
  end;

  {ショートカットファイル名}
  filePath := aShortCutDir + '\' + aFileName + '.lnk';
  {WideChar変換}
  MultiByteToWideChar(0, 0, PChar(filePath), -1, @filePathChar, MAX_PATH * 2);

  {保存}
  persistFile.Save(@filePathChar, True);
end;


けっこう適当  2006-03-25 00:28:49  No: 20675

uses に以下が必要。
どれが必要かは忘れた。

ShellAPI, ComObj, SHLObj, ActiveX


ぶー太  2006-03-25 00:31:57  No: 20676

ありがとうございました。解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加