tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: Shell関数の引数の記述方法
投稿日: 2009/02/09(Mon) 21:38
投稿者魔界の仮面弁士
> 現在、以下のようなコードを記述しています。
> vIEPATH(0) = ""C:\Program Files\Internet Explorer\iexplore.exe" -nohome"
これだと、"" で構文エラーになってしまうでしょう。
実際のコードは、パス情報を外部データから取り込んでいるのでは無いでしょうか?
もしくは、
 vIEPATH(0) = """C:\Program Files\Internet Explorer\iexplore.exe"" -nohome"
の書き間違いとか。


> sUDID = TEST.HTM
右辺が「"」で囲まれていませんが、これは
 sUDID = "TEST.HTM"
の意味では無く、TEST 変数の HTM プロパティのような意味なのでしょうか?


> Shell(vIEPATH(0) & Space(1) & sUDID, 1)
これも構文エラーになるでしょう。実際には
 Shell vIEPATH(0) & Space(1) & sUDID, 1
もしくは
 Call Shell(vIEPATH(0) & Space(1) & sUDID, 1)
ではありませんか?


> (1) 起動する「TEST.HTM」に値を複数渡したいのですが、その記述方法。
> (2)そもそも値を渡す事が出来るのかどうか。

複数の値をTEST.HTMに渡す、という言葉の意味が分からなかったのですが、
iexplore.exe に複数の html を渡すと言う意味であれば、
 vIEPATH(0) = """C:\Program Files\Internet Explorer\iexplore.exe"" -nohome"
 vIEPATH(1) = "C:\FOLDER1\TEST.HTM"
 vIEPATH(2) = "C:\FOLDER2\TEST.HTM"
 vIEPATH(3) = "C:\FOLDER3\TEST.HTM"
 For N = 1 To 3
  Shell vIEPATH(0) & " " & vIEPATH(N), vbNormalFocus
 Next
でどうでしょう。


あるいは、IE7 で複数のタブに表示させる、という意図であれば、
Const navOpenInNewTab = &H800 を Navigate させるとか。
http://bbs.kakaku.com/bbs/-/SortID=8186456/


また、ターゲットがそもそも IE では無いのだとしたら、その受け取り側の
アプリの仕様次第なので、一般解はありません。相手も自作 VB6 アプリなら、
適当な区切り文字(たとえば改行)を付加して送りつけるという手もありますが…。

'== 呼び出す側(Project1.exe) ==
Private Sub Command1_Click()
    Dim sUDID(2) As String
    sUDID(0) = "C:\a.html"
    sUDID(1) = "C:\b.html"
    sUDID(2) = "C:\c.html"

    Dim vPATH As String
    vPATH = "C:\Project2.exe"

    Shell vPATH & " " & Join(sUDID, vbCrLf), vbNormalFocus
End Sub


'== 受け取る側(Project2.exe) ==
Private sUDID() As String
Private Sub Command1_Click()
 Text1.Text = Command()
 sUDID = Split(Command(), vbCrLf)
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。