トップへ(mam-mam.net/)

[スタートアップ]フォルダにショートカット(.lnkファイル)を作成してログオン時に自動起動 ~Delphiソースコード集

検索:

[スタートアップ]フォルダにショートカット(.lnkファイル)を作成してログオン時に自動起動 ~Delphiソースコード集

Windowsの[スタートアップ]フォルダにショートカット(.lnk)ファイルを作成すると、 OSにログオン時にアプリケーションを自動起動させることができます。
Delphiで[スタートアップ]フォルダにアプリケーションのショートカットファイルを作成します。

(参考)Windowsのスタートアップフォルダの標準位置のフルパス
C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

プロジェクトの作成と画面設計

Delphiを起動し、メニューから「ファイル」⇒「新規作成」⇒ 「Windows VCLアプリケーション -Delphi(W)」をクリックします。
フォーム(Form1)にTButton×1個をドラッグ&ドロップします。
すべて保存をクリックして、プロジェクトフォルダを作成し、ユニットとプロジェクトを保存します。

Delphi IDE プロジェクトの作成と画面設計

ソースコードの記述

Button1をダブルクリックしてソースコードを記述します。

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 
  Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Uses ShlObj,ActiveX,ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var pc:PChar;
    Path:String;
    IFace:IInterface;
    ShellLink: IShellLink;
    PersistFile: IPersistFile;
begin
  GetMem(pc,2048);
  try
    //スタートアップのフルパスを取得する
    SHGetSpecialFolderPath(Handle,pc,CSIDL_STARTUP,False);
    Path:=pc;
  finally
    FreeMem(pc);
  end;
  //IShellLink、IPersistent インターフェースの取得
  IFace:=CreateComObject(CLSID_SHELLLINK);
  ShellLink:=IFace as IShellLink;
  PersistFile:=IFace as IPersistFile;

  //ショートカットのリンク先ファイル名を設定
  ShellLink.SetPath(PChar(Application.ExeName));
  //ショートカットの作業フォルダーを設定
  ShellLink.SetWorkingDirectory(PChar(ExtractFileDir(Application.ExeName)));
  //ショートカットのICONの設定
  ShellLink.SetIconLocation(PChar(Application.ExeName),0);
  //ショートカットに引数を入れる場合
  ShellLink.SetArguments(PChar(''));
  //ショートカットに説明(コメント)を入れる場合
  ShellLink.SetDescription(PChar('説明です'));

  //ショートカットを作成する
  PersistFile.Save( PChar(Path+'\ショートカットファイル名.lnk'), True);
end;

end.

実行する

メニューから「実行」⇒「実行」をクリックすると、コンパイルと実行が行われます。

Delphi アプリの実行

Button1をクリックするとWindows OSの「スタートアップ」フォルダにショートカットが作成されます。
「スタートアップ」フォルダにショートカット(.lnk)ファイルが作成されたので、Windows OSのログオン時に、本アプリケーションが自動起動します。
自動起動させたくない場合は、ショートカット(.lnk)ファイルを削除してください。

スタートアップ フォルダにショートカットの作成