編集
VB 6
編集の終了
ちょっとこれは簡単な修正のようで、特にVisual Basic言語は好きではないようですが、コードを使用して既定のWebブラウザーでURLを開くにはどうすればよいですか。
編集
なぜこのエラーが発生し続けるのですか?
PInvoke関数 'CrackleMail!WindowsApplication1.FormFinal :: ShellExecute'の呼び出しにより、スタックのバランスが崩れました。これは、マネージドPInvokeシグネチャがアンマネージドターゲットシグネチャと一致しないためと考えられます。 PInvokeシグネチャの呼び出し規約とパラメーターがターゲットのアンマネージシグネチャと一致することを確認します。
VB.NET:
System.Diagnostics.Process.Start("http://example.com")
VB 6(わからない):
Declare Function ShellExecuteA Lib "Shell32.dll" ( _
ByVal hWnd As IntPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Integer) As IntPtr
ShellExecuteA(Me.Handle, "open", "http://example.com", "", "", 4)
受け入れられた回答のコードでコンパイルエラーが発生しました。MSDNから以下のコードを取得しました ShellExecuteを使用してデフォルトのWebブラウザを起動します
Private Declare Function ShellExecute _
Lib "Shell32.dll" _
Alias "ShellExecuteA"( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Private Sub Command1_Click()
Dim r As Long
r = ShellExecute(0, "open", "http://www.Microsoft.com", 0, 0, 1)
End Sub
簡単です! Wscript createobject
メソッドを使用するだけ
CreateObject("Wscript.Shell").Run "www.example.com"
Option Explicit
'Link the kernel method that allows a process to be open/spawn
Private Declare Function ShellExecute _
Lib "Shell32.dll" _
Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long
Private Sub mnuAbrirNavegador_Click(Index As Integer)
OpenUrl("http://www.Microsoft.com")
End Sub
Private Sub OpenUrl(ByVal url As String)
r = ShellExecute(0, "open", url, 0, 0, 1)
End Sub