任意フォルダ内のファイルをメニュに表示するには? – プログラミング – Home

任意フォルダ内のファイルをメニュに表示...
 
通知
すべてクリア

[解決済] 任意フォルダ内のファイルをメニュに表示するには?


Hot
 Hot
(@Hot)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

はじめてランチャソフトを作っているのですが、実行ファイルの表示のところでつまず
いています。
任意フォルダ(マイドキュメント内のAフォルダなど)内に格納した実行ファイル(不定
数)をメニュに表示(アイコン+ファイル名)するという仕様にしたいのですが、その
作成手順が全くわかりません..。作成手順の概略をご教授願えないでしょうか。よろし
くお願いします。

現在、起動アイコンをタスクトレイに格納して、その起動アイコンを左クリックするこ
とでダミーの実行ファイル名(4個)を表示するところまでできているのですが..。

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


引用未解決
トピックタグ
MASATO
 MASATO
(@MASATO)
ゲスト
結合: 23年前
投稿: 53
 

わからないのは、以下の3点でしょうか。

(1) 任意フォルダの指定方法
(2) 実行ファイルのパス取得方法
(3) 実行ファイルのアイコン取得方法

(1)
任意フォルダは、だれの任意か(開発者の任意か、ユーザの任意か)
わからないので方法は省略します。

(2)
FindFirstFile,FindNextFile,FindCloseを使えば
ファイル名が *.exe とマッチするファイルパスが取得できます。
つまりは任意のフォルダの実行ファイル一覧が取得できるます。

(3)
SHGetFileInfoに(2)で求めたファイルのパスを渡せばアイコンが取得できます。


返信引用
Hot
 Hot
(@Hot)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

ありがとうございます。作成手順を理解できました。

サイト等でも調べたのですが、
(1) 任意フォルダの指定方法(ユーザの任意)を予定しています。できれば、フォルダ選
択ダイアログを起動して、lpItemIDList=SHBrowseForFolder(&binfo)から
SHGetPathFromIDList(lpItemIDList,filename)で任意フォルダのフルパスを取得したい
と思います。
この辺は大丈夫なのですが、(2)のhFind=FindFirstFile(*.exe,&wfd))
==INVALID_HANDLE_VALUEへどのように移行すればいいのかわかりません。ご教授お願い
できないでしょうか。よろしくお願いします。


返信引用
MASATO
 MASATO
(@MASATO)
ゲスト
結合: 23年前
投稿: 53
 

フォルダのパスは求まっても、
FindFirstFileの第一引数をどのように指定すればいいか分からない、
ということですか?

それでしたら方法は2つあります。
(1)
SetCurrentDirectoryにフォルダのパスを渡せば、
FindFirstFileの第一引数は*.exeを指定すれば実行ファイルを探せます。

(2)
_tmakepathを使います。
フォルダのパスが格納された変数をpath(CString型かLPCTSTR型を仮定)とします。
-----
TCHAR exepath[MAX_PATH];
_tmakepath(exepath, NULL, path, *, exe);
-----
これで得られたexepathを、FindFirstFileに第一引数として渡せば
実行ファイルを探せるでしょう。


返信引用
Hot
 Hot
(@Hot)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

無事に解決することができました。
MASATOさん。どうもありがとうございます。
手間を省けるので(1)SetCurrentDirectory関数の方法でやらせて頂きます。
なんかモヤモヤが取れてスッキリしました。
解決欄にチェック入れておきます。
それでは...(^^)/


返信引用
Hot
 Hot
(@Hot)
ゲスト
結合: 23年前
投稿: 6
Topic starter  

すいません。部分的な解決で解決チェックいれてしまいました。アイコン表示などで作
業継続中なので、また疑問点がでればご教授お願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました