ランチャメニュに表示されたファイルを実行するには?

[戻る]
Hot 2002/10/01(火) 13:01:48
お世話になっています。
前回のご教授で無事にランチャのメニュに実行ファイル(アイコンも)を表示すること
ができたのですが、選択した実行ファイルを起動するところでつまずいています。

一応、
int n;    //取得した実行ファイルの数
int i;
char filename[100];   //FindFirstFileで得たファイル名

for(i=0;i<n;i++){
   AppendMenu(hMenu, MF_OWNERDRAW, i, (LPCTSTR)i);
}
でメニュに実行ファイルを表示しているのですが、この場合の起動のしかたで悩んでま
す。

単純に、ID番号が
      AppendMenu( ... , ... ,IDM_EXE, ... );
に固定されたものだと、

#define IDM_EXE 100
.
.
.
case WM_COMMOND:
   switch(LOWORD(wParam))
   {
       case IDM_EXE:
             ShellExecute(NULL,"open",filename,NULL,NULL,SW_SHOWNORMAL);
    return 0;
で無事に起動できるのですが.....    


ID番号が1,2,3... ...iまである場合には、どのようにして#defineで定義して、
どのようにして case WM_COMMOND以下で定めればいいのでしょうか。ちょっとよくわか
らないです。
どうかご教授お願いできないでしょうか。よろしくお願いします。

アプリ:ランチャソフト
OS:WIN2000
開発ソフト:VC++6.0
言語:C言語(SDK)のみ

dairygoods 2002/10/01(火) 14:05:40
コマンドをdefineで定義する必要はありません。

case WM_COMMOND:
   if (wParam < n) {
       ShellExecute(NULL,"open",filename[wParam],NULL,NULL,SW_SHOWNORMAL);
   }
   ...

Hot 2002/10/01(火) 22:01:28
[[解決]]
dairygoodsさん。ありがとうございます。助かりました。
無事に解決しました。

古いスレッドには追加発言できません。