2010-12-25 80 views
12

EditarURL de Visual Basic abierto con el navegador por defecto

para VB 6

Fin Editar

Hey esto parece que debe ser una solución fácil y no me gusta especialmente el lenguaje de Visual Basic, pero ¿cómo abriría una URL en el navegador web predeterminado, usando el código?

Editar
¿Por qué sigo recibiendo este error?

Una llamada a la función PInvoke 'CrackleMail! WindowsApplication1.FormFinal :: ShellExecute' tiene desequilibrada la pila. Esto es probable porque la firma de PInvoke administrada no coincide con la firma de destino no administrada . Compruebe que la convención de llamada y los parámetros de la firma PInvoke coinciden con la firma no administrada de destino.

+3

VB 6 o VB.NET? – abatishchev

+0

Actualicé mi publicación para corregir la firma de la función – abatishchev

+0

Entonces VB5,6 o VB.NET ?! – abatishchev

Respuesta

11

VB.NET:

System.Diagnostics.Process.Start("http://example.com") 

VB 6 (no estoy seguro):

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

Creo que no tiene que usar el Alias. – Shimmy

+0

@Shimmy: Todo lo que sabía en VB5/6 sin duda me olvidó, así que siéntete libre de editar mi respuesta o publicar su propia :) – abatishchev

+0

De hecho, nunca supe VB6, pero en VB.NET, que yo sepa, cuando se utiliza 'Declarar 'no necesitas el' Alias' en estas circunstancias. – Shimmy

11

El código en la respuesta aceptada dio un error de compilación para mí me dieron el código de abajo de 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

It i ¡es simple! sólo tiene que utilizar el método 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 
Cuestiones relacionadas