最近准备让自己的软件具有“在线升级”的功能。
已知:在网络上有update.lib文件。
目的:运行程序,下载update.lib到指定的目录
目前存在问题:
1、要求不出现下载对话框,也不能激活flashget等下载工具(如果用户电脑上有)
2、网络不通时,提示错误
讨论帮忙者均有分。
大家帮忙讨论一下。

解决方案 »

  1.   

    问题2自己解决了。
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Const ERROR_SUCCESS = 0& Public Const APINULL = 0& Public Const HKEY_LOCAL_MACHINE = &H80000002 Public ReturnCode As Long 代码: Public Function ActiveConnection() As Boolean Dim hKey As Long Dim lpSubKey As String Dim phkResult As Long Dim lpValueName As String Dim lpReserved As Long Dim lpType As Long Dim lpData As Long Dim lpcbData As Long ActiveConnection = False lpSubKey = "SystemCurrentControlSetServicesRemoteAccess" ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, phkResult) If ReturnCode = ERROR_SUCCESS Then hKey = phkResult lpValueName = "Remote Connection" lpReserved = APINULL lpType = APINULL lpData = APINULL lpcbData = APINULL ReturnCode = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) lpcbData = Len(lpData) ReturnCode = ReturnCode = RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) If ReturnCode = ERROR_SUCCESS Then If lpData = 0 Then ActiveConnection = False Else ActiveConnection = True End If End If RegCloseKey (hKey) End If End Function 下面是使用以上代码的例子: If ActiveConnection = True then Call MsgBox("现在处于链结状态。",vbInformation) Else Call MsgBox("现在处于断开状态。", vbInformation) End If 问题1,大家帮帮忙。
      

  2.   

    我用的是api 函数:urldownloadtofile 好像是这个可以直接从网站上下载文件可以做个数据库,放每次更新后的版本好判断本程序的版本号是不是跟数据库里的一样,然后就可以了
      

  3.   

    year81s,urldownloadtofile api引用的库是?
      

  4.   

    Download Now!控件如何?有没有人使用过。
    year81s,能否把源代码和我分享一下。
    [email protected]
    不同意也没有关系的:)
    先谢了。
      

  5.   

    搜到一些代码,与大家分享一下:
    如何下載檔案 
     
         
       方法一 這並不需要用到物件 一個簡單的函數DoFileDownload即可做到 程式如下
    --------------------------------------------------------------------------------
    Private Declare Function DoFileDownload Lib "shdocvw.dll" _
    (ByVal lpszFile As String) As LongPrivate Sub Command1_Click()
    Dim sFileUrl As String
    sFileUrl = StrConv("http://www.hosp.ncku.edu.tw/~cww/index.html", vbUnicode)
    DoFileDownload sFileUrl
    End Sub 
      方法二 Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
        "URLDownloadToFileA" (ByVal pCaller As Long, _
        ByVal szURL As String, _
        ByVal szFileName As String, _
        ByVal dwReserved As Long, _
        ByVal lpfnCB As Long) As Long
    Private Sub Command1_Click()
        Dim lReturn As Long    lReturn = URLDownloadToFile(0, "http://www.hosp.ncku.edu.tw/~cww/index.htm", "C:\index.html", 0, 0)    If lReturn = 0 Then
            MsgBox "Download Complete.", vbInformation + vbOKOnly
        End If
    End Sub 
      

  6.   

    http://expert.csdn.net/expert/faq/faq_index.asp?id=39056
    找到了。
    先谢谢大家。
    下次我还是先自己想想找找再来问大家。
    大家有什么更好的建议也留给我。
    明天揭帖。year81s,谢谢你提供的线索。
      

  7.   

    还想问一下,有没有人用过Download Now!控件?