Windowsフォルダには、RUNDLL.EXEという、そのまま起動しても何の効果もないアプリケーションが存在します。
これは、DLL,OCX,EXEなどのファイルから任意の関数を呼び出すアプリケーションのようで、
RUNDLL.EXEと、RUNDLL32.EXEの2つがあります。
どうやら、後者はRUNDLL.EXEの32Bit版のようですね。(^^;
・・・まぁ、前置きはこのくらいにして、実際にRUNDLL.EXEを使用してみましょう。
exec "rundll rnaui.dll,RnaDial"
この例では、RUNDLL.EXE(rundll)からrnaui.dllを呼び出し、
その中のRnaDial関数を実行します。
この命令を実行すると、ネットワーク接続ダイアログが表示されるはずです。
このように、基本的には、exec "rundll ファイル名,関数名"という感じで記述します。
また、このアプリケーションは、引数を指定したり、戻り値を取得する関数には向きません。(^^;
資料
RUNDLL.EXE及び、RUNDLL32.EXEを使用した関数呼び出し例
|
ネットワーク接続ダイアログを表示
|
exec "rundll rnaui.dll,RnaDial"
|
|
ダイヤルアップネットワーク接続ウィザードを表示
|
exec "rundll32 rnaui.dll,RnaWizard"
|
|
プリンタの追加ウィザードを表示
|
exec "rundll32 shell32.dll,SHHelpShortcuts_RunDLL AddPrinter"
|
|
ファイルを開くアプリケーションの選択
|
exec "rundll shell32.dll,OpenAs_RunDLL c:\\windows\\notepad.exe"
(この例では、notepad.exeを開くアプリケーションを選択)
|
|
Windowsを終了
|
exec "rundll user,exitwindows"
|
|
Windowsを再起動
|
exec "rundll user,exitwindowsexec"
|
コントロールパネル関連
(「rundll shell32.dll,Control_RunDLL」を、「control」に置き換えても動作します。
例:exec "control appwiz.cpl")
|
コントロールパネルのフォルダ
|
exec "rundll shell32.dll,Control_RunDLL"
|
|
アプリケーションの追加と削除のプロパティ
|
exec "rundll shell32.dll,Control_RunDLL appwiz.cpl"
|
|
画面のプロパティ
|
exec "rundll shell32.dll,Control_RunDLL desk.cpl"
|
|
インターネットのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL inetcpl.cpl"
|
|
地域のプロパティ
|
exec "rundll shell32.dll,Control_RunDLL intl.cpl"
|
|
ゲームオプション
|
exec "rundll shell32.dll,Control_RunDLL joy.cpl"
|
|
マウスのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL main.cpl @0"
|
|
キーボードのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL main.cpl @1"
|
|
プリンタのフォルダ
|
exec "rundll shell32.dll,Control_RunDLL main.cpl @2"
|
|
フォントのフォルダ
|
exec "rundll shell32.dll,Control_RunDLL main.cpl @3"
|
|
サウンドとマルチメディアのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL mmsys.cpl"
|
|
モデムのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL modem.cpl"
|
|
ネットワーク
|
exec "rundll shell32.dll,Control_RunDLL netcpl.cpl"
|
|
パスワードのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL password.cpl"
|
|
システムのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL sysdm.cpl"
|
|
新しいハードウェアの追加ウィザード
|
exec "rundll shell32.dll,Control_RunDLL sysdm.cpl @1"
|
|
ダイヤルのプロパティ
|
exec "rundll shell32.dll,Control_RunDLL telephon.cpl"
|
|
日付と時刻のプロパティ
|
exec "rundll shell32.dll,Control_RunDLL timedate.cpl"
|
|
コントロールパネルの準備中?
|
exec "rundll shell32.dll,Control_FillCache_RunDLL"
|
|