ファイルの関連付け

解決


アサシ  2002-11-20 20:23:56  No: 105458

質問です。
ファイルとEXEを関連付けて、エクスプローラー等からファイルのダブルクリックでEXEを起動する際に、ダブルクリックされたファイルのパスをEXEが取得したいのですが、どうすればいいでしょうか?


特命  2002-11-20 21:33:40  No: 105459

Command() 関数に、ファイルのパスが入ります。


アサシ  2002-11-20 21:51:15  No: 105460

入ってないみたいなんです・・・。
EXEのForm_Loadに

Private Sub Form_Load()
    Dim strArg() As String
    Dim i As Long
    
    strArg = getArgument()
    
    For i = 0 To UBound(strArg)
        List1.AddItem strArg(i)
    Next i
End Sub

' コマンドラインを取得しスペースで分割します
Function getArgument() As String()
    Dim strArg() As String
    Dim i As Long
    
    strArg = Split(Command())                   ' スペースで分割
    
Debug.Print "UBound(strArg) = " & UBound(strArg)
    For i = 0 To UBound(strArg)
Debug.Print strArg(i)
    Next i
    
    getArgument = strArg
End Function

このようにしたのですが、表示されません。
ドラッグアンドドロップでの起動時はファイルパスが表示されました。
ちなみにこの関数は自作ではありません。

どうしましょうか?


YuO  2002-11-20 22:27:11  No: 105461

関連付けが正しくないのでしょう。
たとえば,
HKEY_CLASSES_ROOT\.foo : foofile
HKEY_CLASSES_ROOT\foofile\shell\open\Command : foo.exe
のようになっているとか。
HKEY_CLASSES_ROOT\foofile\shell\open\Command : foo.exe "%1"
のように,ファイル名を渡してやる必要があります。


アサシ  2002-11-20 22:41:39  No: 105462

解決しました!YuOさん特命さんありがとうございます。
"%1"ってファイル名なんすね?MSDNに載ってます?
いやー助かりました!ありがとうございます!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加