DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Windows XPでコマンドライン引数が変

環境/言語:[Windows XP NET Framework2.0 Visua Studio 2008 VB]
分類:[.NET]

お世話になります。

コマンドライン引数を取得する記述、こちらのサイトを参照し

For Each cmd As String In My.Application.CommandLineArgs
If cmd.Length > 1 Then
MsgBox(cmd)'メーセージボックスでどのような取得か確認テスト
       'この条件の時に実行することを記述

Else
End If
Next

のように記述しました。

これでWindows Vistaでは正常に"C\User\○○\××\"とパスが取得できるのですが、Windows XPでは

一回目:"C\Document"
二回目:"and"
三回目:"setting"
四回目:"デスクトップ"

のようにメッセージボックスが複数回に分けられて取得されるのですが
原因が分かるかたいらっしゃいますでしょうか?

アプリケーションを関連付けファイルのダブルクリックで起動しようと思い
実装したのですが、Vistaでは全く問題なかったのに
XPではファイルが開けなかったのです。
いろいろと試行錯誤し取得内容をMsgboxで確認したら、このようになっていました。だから開けなかったのだと思うのですが、原因が分かりません。

ご教授願えますでしょうか?

よろしくお願いいたします。
その拡張子に対する関連付けの設定を修正して下さい。

> アプリケーションを関連付けファイルのダブルクリックで起動しようと思い
> 実装したのですが、Vistaでは全く問題なかったのに
> XPではファイルが開けなかったのです。
コマンドラインに「 」(半角スペース)が含まれていると、そこで区切られます。
そのため、細切れになるのはある意味、正しい動作です。

実際にはその問題を解決するため、ファイル名を「"」(二重引用符・ダブルクオテーション)で囲むことが必要です。

関連付けでは恐らく次のような登録になっていると思いますが、%1を囲って下さい。

C:\hogehoge.exe %1
→C:\hogehoge.exe "%1"

関連付けの変更方法については、ここでは述べません。調べてみて下さい。
Azuleanさん

早速のご教授ありがとうございます。

了解しました。
原因を教えて頂けましたのであとは自分で調べます。

取り急ぎお礼とさせていただきます。
Azuleanさん

ご報告です。

開くアプリケーションの関連付け登録の後ろに
+ " " + """" + "%1" + """"

としました。
regeditで確認し"C\○○\××\△△\□□" "%"となっていることを確認し
XPでもVistaでも正常にファイルの読み込みが可能となりました。

どうもありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板