お世話になります。
環境はWinXp VC6.0 MFC です
<やりたい事>
EXEのアイコンにファイルをドロップした時そのファイルの
パスを取得するにはどうすればいいのでしょう?
過去ログでは、コンソールでのヒントを見かけました
が、MFCでのヒントなどがあればお願いします。
また、OLEを使う方法とWM_DROPFILES ではどう違うの
でしょうか?(基本的なことですいません)
WM_DROPFILES はアプリが起動後のウィンドウにドロップ
することならできたのですが、EXEのアイコンに
ドロップしたときにはできないのでしょうか?
よろしくおねがいします
この掲示板のちょっと下のほうにある
「複数のファイルをドロッグ・アンド・ドロップで一度に開くには」
というスレッドは参考になりませんでしたか?
参考になりました。ありがとうございます。
書くのを忘れていましたが、Dialogベースで作っています。
この方法はDialogベースではできないのでしょうか?
そう思う理由は?
過去ログで
>ドロップターゲットを実装するには?
>ダイアログベースではないですか?
>それなら失敗するでしょ
などのコメントがあったので。
やりたい事を実現する手段が
OLEなのか、CCommandLineInfoなのか
WM_DROPFILES なのかすら、
わかっていないものなので。
すいません。
教えてもらったCCommandLineInfoで
多分実現できるんだろうと思いますので
もう少し調べてみます。
ヘルプに見つからないので参考まで。使えているので。
__argv[1]で、1つめのパスがショートファイルネームで取得できます。
ロングファイルネームにして下さい。
__argcも、普通のmain(int argc, char *argv[])と同じ。
回答有難うございます。
xxxApp::InitInstance()のなかに
下記のコードを書いてみると
int count;
for( count = 0; count < __argc; count++ ) {
TRACE( argv[%d] %s\n, count, __argv[count] );
}
argv[0]のなかに実行したアプリのパスが入っている事が
分かりました。なんだかやりたい事ができそうな気がします。
*.exeにファイルをドロップしたときのargv[1]の中に
何が入っているかは、通常どうやって見られているのでしょうか?
*.exeにファイルをドロップしたときの動作はデバッガでは
見れないのでしょうか?(基本的なことですいません)
>*.exeにファイルをドロップしたときのargv[1]の中に
>何が入っているかは、通常どうやって見られているのでしょうか?
>*.exeにファイルをドロップしたときの動作はデバッガでは
>見れないのでしょうか?(基本的なことですいません)
ドロップという操作では出来ませんが……
[プロジェクトの設定]-[デバッグ]の「プログラムの引数」に指定すれば動作するハズです。
(VC6の場合。VC.netの場合は名前など違うかも知れない。)
エクスプローラからexeにドラッグ&ドロップした場合、通常は引数として渡されます。
複数ファイルの場合は…それぞれスペースで区切られて渡されるハズです。
(その場合にargv[]で正しく取得出来るのかは試していません。(My Documentsフォルダの場
合))
回答頂いた方々、有難うございました。
argv[1]をとってくるだけでやりたい事は簡単にできました。
>[プロジェクトの設定]-[デバッグ]の「プログラムの引数」に指定すれば動作するハズで
>す。
>(VC6の場合。VC.netの場合は名前など違うかも知れない。)
>エクスプローラからexeにドラッグ&ドロップした場合、通常は引数として渡されます。
>複数ファイルの場合は…それぞれスペースで区切られて渡されるハズです。
VC6を使っているのですが、プログラムの引数はデバッガの
どこに表示されるのでしょうか?(デバッグウィンドウ?)
エクスプローラからexeにドラッグ&ドロップした場合は
ブレークはかけられないと思っているのですが・・・。
よろしければもう少し詳しく教えてください。
>VC6を使っているのですが、プログラムの引数はデバッガの
>どこに表示されるのでしょうか?(デバッグウィンドウ?)
ウォッチ等で明示的に指定しないと、Visual Studio上では見られないかと。
なお、上記の私のレスでの設定場所は、
プロジェクトを開いた後、メニューの[プロジェクト]-[設定]で出てくるダイアログです。
そこの[デバッグ]タブ内にあります。
>エクスプローラからexeにドラッグ&ドロップした場合は
>ブレークはかけられないと思っているのですが・・・。
こちらは、Visual Studioは関与しないのでもちろんブレークポイントでは止まりません。
というコトでドラッグ&ドロップでEXEに起動時に渡されたモノは見れませんが、
EXEに対してドラッグ&ドロップした場合は、起動時の引数として渡されるハズです。
(レジストリなどで設定を変えていなければ…ですが、通常は変更しません)
瀬戸っぷ さんご丁寧にありがとうございました。
またよろしくおねがいします。