باز کردن با موزیلا

Ali.Ghasemi

New Member
سلام در ویژوالبیسیک چه کدی بزارم که وقتی یک نفر دکمه رفتن به سایت زد با موزیلا براش باز بشه نه اکسپولیر
 

the_king

مدیرکل انجمن
سلام در ویژوالبیسیک چه کدی بزارم که وقتی یک نفر دکمه رفتن به سایت زد با موزیلا براش باز بشه نه اکسپولیر

منظورتون از موزیلا Mozilla Firefox است؟
تقریبا در مورد اکثر نرم افزار ها اگه موقع اجرا کردن فایل exe شون مسیر فایل یا آدرس اینترنتی رو بصورت پارامتر
بهشون بدهید، بازشون خواهند کرد. مثلا در مورد Notepad اینطوری یک فایل باز میشه :
کد:
notepad.exe "C:\MyFolder\test.txt"
یا مثلا در مورد Firefox اینطوری آدرس رو باز می کنه :
کد:
firefox.exe "www.google.com"

فقط در مورد Firefox چون ممکنه محل نصب اش در هر سیستمی فرق کنه باید ابتدا مسیر فایل firefox.exe روی
سیستم کاربر پیدا بشه. بخش پیچیده کد دسترسی به یک مسیر خاص در Registry ویندوز است تا مسیر فایل
Firefox.exe رو روی سیستم کاربر پیدا کنه، اینکار در داخل تابع GetFirefoxPath انجام شده :

کد:
Option Explicit

Private Const ERROR_SUCCESS As Long = 0
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Const REG_SZ As Long = 1
Private Const KEY_READ As Long = &H20019

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As Long, ByRef lpcbData As Long) As Long
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 Form_Load()
    Dim URL As String, Path As String
    URL = "http://forum.majidonline.com/"
    Path = GetFirefoxPath
    If Len(Path) > 0 Then
        ShellExecute Me.hWnd, "open", Path, """" & URL & """", vbNullString, 1
    End If
End Sub

Private Function [B][COLOR="Blue"]GetFirefoxPath[/COLOR][/B]() As String
    Dim hKey As Long, SubKey As String
    Dim Length As Long, Path() As Byte
    SubKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe"
    If RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, hKey) = ERROR_SUCCESS Then
        Length = 4096
        ReDim Path(0 To Length)
        If RegQueryValueEx(hKey, vbNullString, 0, REG_SZ, VarPtr(Path(0)), Length) = ERROR_SUCCESS Then
            If Length > 1 Then
                GetFirefoxPath = Left(StrConv(Path, vbUnicode), Length - 1)
            End If
        End If
        RegCloseKey hKey
    End If
End Function
 

Ali.Ghasemi

New Member
مرسی
کد Opsera هم میذارید :rose:

عزیز یک کد هم برای باز کردن پش فرش مروگرها بزاری خیلی ممنون میشم
 
آخرین ویرایش توسط مدیر:

the_king

مدیرکل انجمن
مرسی
کد Opsera هم میذارید :rose:

عزیز یک کد هم برای باز کردن پش فرش مروگرها بزاری خیلی ممنون میشم

با مرورگر پیشفرض که خیلی ساده است، آدرس رو مستقیما اجرا می کنیم، انگار که یک فایل اجرایی است،
خود سیستم عامل بصورت خودکار از روی پروتکل http تشخیص میده که باید با یک مرورگر بازش کنه :
کد:
Option Explicit

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 Form_Load()
    Dim URL As String
    URL = "http://forum.majidonline.com/"
    ShellExecute Me.hWnd, "open", URL, vbNullString, vbNullString, 1
End Sub

مسیر فایل Opera.exe هم در Registry ویندوز مشخص میشه :
کد:
Option Explicit

Private Const ERROR_SUCCESS As Long = 0
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Const REG_SZ As Long = 1
Private Const KEY_READ As Long = &H20019

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As Long, ByRef lpcbData As Long) As Long
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 Form_Load()
    Clipboard.Clear
    Clipboard.SetText ("&H" & Hex(KEY_READ))
    Dim URL As String, Path As String
    URL = "http://forum.majidonline.com/"
    Path = GetOperaPath
    If Len(Path) > 0 Then
        ShellExecute Me.hWnd, "open", Path, """" & URL & """", vbNullString, 1
    End If
End Sub

Private Function GetOperaPath() As String
    Dim hKey As Long, SubKey As String
    Dim Length As Long, Path() As Byte
    Dim Command As String
    SubKey = "SOFTWARE\Classes\Applications\Opera.exe\shell\open\command"
    If RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, hKey) = ERROR_SUCCESS Then
        Length = 4096
        ReDim Path(0 To Length)
        If RegQueryValueEx(hKey, vbNullString, 0, REG_SZ, VarPtr(Path(0)), Length) = ERROR_SUCCESS Then
            If Length > 1 Then
                Command = Left(StrConv(Path, vbUnicode), Length - 1)
                If Left(Command, 1) = """" Then
                    GetOperaPath = Mid(Command, 2, InStr(2, Command, """") - 2)
                End If
            End If
        End If
        RegCloseKey hKey
    End If
End Function
 

جدیدترین ارسال ها

بالا