MDiフォームを使用して、休日表作成アプリを作っているのですが
コンパイル後のドラッグ&ドロップで実行
は問題なく起動するのですが、拡張子を関連付けしたファイルを
ダブルクリックするとファイルがありません「56」のエラーが出てしまいます。
コンパイル時にMsgbox Command
を実行すると”ファイル名”ダブルコーテーションで囲まれます
保存しているファイルは圧縮ファイルで中はこうなっているので
ファイルオープン時にこうなっているんだと思います。
指定ファイル名.yc
(指定ファイル名.yc1)作業領域
(指定ファイル名.yc2)各種設定
"指定ファイル名.yc"
指定ファイル名.yc"1
errer ファイル名がありません「52」
指定ファイル名.yc"2
↑「56」※修正
他に作成したアプリでCommand関数を実行すると
ダブルコーテーションが表示されないんです
なんで出るのか解りません、それとも
これは絶対出るものとして処理しても良いのでしょうか?
スペースが入るようなパスを渡すために,通常パスは"で囲みます。
囲まれていない場合も予想して,"の有無で分離する必要があります。
この仕様は,例えば,
C:\Program Files\TEST.EXE
をコマンドラインとして渡す場合に,
foo C:\Program Files\TEST.EXE
と渡すと,
1.) C:\Program
2.) Files\TEST.EXE
の二つの引数を渡していることになります。そこで,
foo "C:\Program Files\TEST.EXE"
としてやることで,ファイル名を確実に渡すことができます。
関連付けでは,通常
"実行ファイル名" "%1"
とするのが普通ですね。
YuOさんレス本当にありがとうございますぅ(T_T)
困っているんです、実は…
「保存ファイル名.yc」が実在するファイルなのですが
その中に、2種類のファイルが圧縮されて格納されているんです
その中のファイルを取り出す際に保存されたファイル名(パス含む)
が必要になるんですが、僕は単純に保存したファイルに数字を付けただけの
名前で「中のファイルを格納」しています。(↑※1番目)
なので、読み出す際にこのパスの後ろに数字を追加して
保存時と同じ名前にして取り出す必要があるんです。
i = command & "1"
i2 = command & "2"
それで単純にこの処理をしているんですが、しかし
実行するとダブルコーテーションが邪魔になるんです(↑※2番目)
ダブルコーテーションを検索して""と置き換えるにも
どうして良いものか困っています(T_T)
多分これでいけると思います。
Private Sub Form_Load()
Dim strArray() As String
Dim intIndex As Integer
strArray = Split(Command, """")
For intIndex = 0 To UBound(strArray) - 1
MsgBox strArray(intIndex)
Next intIndex
End Sub
ダブルコーテーションで区切って配列に保存すればOKだと思います。
ダブルコーテーションが入っていなくてもこのまま使えるはずです。
ありがとうございます(T_T)
解決しました—っYuOさん
大感謝です
原因は最初に指摘して頂いた
拡張子関連付けの失敗でしたすいませんですm(__)m
ツイート | ![]() |