パソコン起動時に任意の実行ファイルを起動させるには?


 HSP3掲示板より『次立ち上げた時も自動起動』。 イメージ 1


 一番手っ取り早いのが、Windowsのスタートアップフォルダを利用すること。このフォルダ内に存在するファイルはWindowsが起動される時に自動的に実行してくれるんですな。
 実際に登録されてるファイルがあるなら、Windowsの[スタートメニュー]→[すべてのプログラム]→[スタートアップ]で確認可能。


 で、HSP(HSP3)でこれを利用するには、まずこのスタートアップフォルダの場所を知っとく必要があります。パソコンごとにパスの文字列がバラバラなためです。
 これは簡単で標準のdirinfo関数を使います。取得タイプはdirinfo関数の説明の↓の部分が当てはまります。(CSIDL値はちょくとさんのコチラのページを参照あれ~)



p1に0x10000以上の値を指定した場合は、
ビット0~15までをCSIDL値として特殊フォルダの取得を行ないます。


mes dirinfo($10007)


 次に、実行ファイルのショートカットファイルを作成する必要があります。このショートカットファイルを取得したスタートアップフォルダのパスに放り込む形にしとけばいいわけ。手段は下の二択~。




  1. HSP標準の拡張プラグインHSPEXT.dllにあるfxlink命令


  2. COMオブジェクト (付属サンプル「sample\comobj\comtest1.hsp」)

 最後に、自分自身のショートカットファイルを作成するなら、自分自身のフォルダパスとファイル名を知っとかなくてはなりません。フォルダパスだけならdirinfo関数でOKで、あらかじめ自分自身のファイル名も分かってるなら、いちおうこれでも十分でしょう。


 ちなみに、自分自身のファイル名を取得するHSP標準の命令・関数は存在しません。必要ならば、Win32 API関数の「GetModuleFileName」を呼びます。