2010-12-25 2 views
12

РедактироватьВизуальная URL Basic Открыть с помощью браузера по умолчанию

для VB 6

End Edit

Эй, это кажется, что это должно быть легко исправить, и я не особенно нравится язык Visual Basic, но как я могу открыть URL-адрес в веб-браузере по умолчанию, используя код?

Редактировать
Почему я продолжаю получать эту ошибку?

Вызов функции PInvoke 'CrackleMail! WindowsApplication1.FormFinal :: ShellExecute' имеет несбалансированный стек. Вероятно, это связано с тем, что управляемая подпись PInvoke не соответствует неуправляемой целевой сигнатуре . Убедитесь, что соглашение о вызове и параметры подписи PInvoke соответствуют целевой неуправляемой сигнатуре.

+3

VB 6 или VB.NET? – abatishchev

+0

Я обновил свое сообщение, чтобы исправить подпись функции – abatishchev

+0

Итак, VB5,6 или VB.NET ?! – abatishchev

ответ

11

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) 
+0

Я думаю, вам не нужно использовать псевдоним. – Shimmy

+0

@Shimmy: Все, что я знал в VB5/6, конечно, я забыл, поэтому не стесняйтесь редактировать мой ответ или публиковать свой собственный :) – abatishchev

+0

На самом деле, я никогда не знал VB6, но в VB.NET, AFAIK, когда вы используете 'Declare 'вам не нужно' Alias' при таких обстоятельствах. – Shimmy

11

код в принятом ответе дал ошибку компиляции для меня я получил следующий код из MSDN Use ShellExecute to launch the default Web browser

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 
2

Это i просто! Просто используйте Wscript createobject метод

CreateObject("Wscript.Shell").Run "www.example.com" 
0
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 
Смежные вопросы