掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
「アプリからひらく」には? (ID:75010)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ええー、MSDNをくまなく見ないとわからないので見つけづらいですよね…。 わたしもけっこう迷いました。 で、Commandというシステム変数(関数ということになってると思いますけど)に、 ファイルパスが入っているので、あとは読むだけです。 でも、Win2000/XP とかと、9x/Meなどはパスの送り方が違うようです。 (後者ではMSDOS名で渡される) どちらにしても読むことは出来ますけど、オプションがつくとそのかぎりではありません。 (ちなみに一般的なフリーソフトは、前者のやり方で送ってくるようです) 下の関数を使ってみたらどうでしょう?作ってみました。Windows98では正常動作します。 Public Function CommandLine() As String On Error Resume Next Dim X As String X = Command If InStr(1, Left(X, 4), ":\") <> 0 Then If Countstr(X, """") <> 2 Then X = Mid(X, 1, InStr(UInstr(X, "\", UInstr(X, """", Len(X) - 1)), X, " ") - 1) Else X = Mid(X, 1, InStr(UInstr(X, "\"), X, " ") - 1) End If Else X = Mid(X, InStr(1, X, " ") + 1) End If CommandLine = LongPath(DelQuot(X)) End Function Public Function CommandOption() As String On Error Resume Next Dim X As String X = Command If InStr(1, X, ":\") <= 2 Then X = Mid(X, InStr(UInstr(X, "\", UInstr(X, """", Len(X) - 1)), X, " ") + 1) Else X = Mid(X, 1, InStr(1, X, " ") - 1) End If CommandOption = DelQuot(X) End Function UInstr関数は以下のとおり、後で気づいたんですけど、 VB6のInstrRevとおんなじものらしいですね^^; VB6使ってるのに、気づかず作成していました。 ま、いっか^^; Public Function UInstr(Base As String, Search As String, Optional Start As Long = -1, Optional ByVal compare As VbCompareMethod = vbBinaryCompare) As Long On Error GoTo 1: If Len(Base) = 0 Or Len(Search) = 0 Or Start < -1 Or Len(Search) >= Len(Base) Or Base = vbNullString Or Search = vbNullString Then GoTo 1 Dim i As Long For i = IIf(Start = -1, Len(Base), Start) To 1 Step -1 If StrComp(Mid(Base, i, Len(Search)), Search, compare) = 0 Then UInstr = i: Exit Function Next 1 UInstr = 0 End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.