• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB==快速調用系統對話框(全)

    發布: 2007-5-25 09:19 | 作者: hktl | 來源: 互聯網 | 查看: 36次 | 進入軟件測試論壇討論

    領測軟件測試網
    (作者:甘冀平 2000年12月21日 17:46)

      Windows系統給我們提供了許多非常實用的功能,而且都是以對話框的形式展現在用戶眼前,比如:查找文件、瀏覽選擇后執行程序,等等 ... 如果我們能在程序中以簡練的代碼快速調用它們,就可以移花接木般地達到需要的目的。這樣,既省卻了再次編寫繁瑣代碼的過程,又能讓程序快速執行(調用系統內核模塊,能不快嗎^_^)。以下就列舉幾個這樣的例子:  

      ●快速調用“查找文件對話框”

      ●快速調用“系統重新啟動對話框”

      ●快速調用“程序運行對話框”

      ●快速調用“文件屬性對話框”

      ●快速調用“軟盤格式化對話框”

      ●快速調用“網絡資源映射對話框”

      ●快速調用“查找文件對話框”

    快速調用“查找文件對話框”
      在Windows環境中,如果要查找一個文件,通常情況下采取的步驟是:

      1、確定查找文件所在的文件夾范圍

      2、按熱鍵F3

      3、在出現的“查找:所有文件”窗口中,輸入各個項目。


      是不是有點復雜。在VB程序中,能否通過點擊一個按鈕,就出現第3步的“查找:所有文件”?答案是肯定的!代碼如下:

      '聲明API函數

      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

      '定義常量參數

      Const SW_SHOW = 5

      '通用調用查找對話框函數

      Public Sub ShowFindDialog(Optional InitialDirectory As String)

      ShellExecute 0, "find", _

       IIf(InitialDirectory = "", "", InitialDirectory), _

       vbNullString, vbNullString, SW_SHOW

      End Sub

      '調用查找對話框例程

      Call ShowFindDialog("C:\Program Files")

      調用的代碼ShowFindDialog("C:\Program Files"),非常簡練。注意:如果括號中的參數不是一個合法的目錄名,這一行調用命令將不會產生任何結果。如果參數為空,就等于選擇了當前目錄。

    快速調用“系統重新啟動對話框”
      我們在安裝應用軟件時,經常遇到安裝結束時要求用戶重新啟動機器的確認對話框,這時系統將根據用戶的選擇重新啟動,或者暫時退出安裝,等待用戶手工重新啟動機器。其實,在我們的應用程序中,可以用很少的代碼就調用出系統本身的重新啟動對話框,真的是非常的快捷!代碼是:

      '聲明API函數

      Private Declare Function SHRestartSystemMB Lib _

      "shell32" Alias "#59" (ByVal hOwner As Long, ByVal _

      sExtraPrompt As String, ByVal uFlags As Long) As Long

      '定義系統重新啟動常量參數

      Private Const SystemChangeRestart = 4

      '通用系統啟動過程

      Public Sub SettingsChanged(FormName As Form)

        SHRestartSystemMB FormName.hWnd, vbNullString, SystemChangeRestart

      End Sub

      '調用例

      SettingsChanged Form1

      運行一下,看看實際的效果圖:


      直接使用系統內在的功能,省得自己去繪制表單了,不僅實現的功能可以很嚴謹,而且樣子還很專業呢!

    快速調用“程序運行對話框”
      一般情況下,當我們需要在VB程序中調用一個外部.exe或者.com程序時,一般要用到shell命令。它提供了一種非常簡捷的方式讓我們執行一個確定的外部程序。但缺點也顯現出了,就是它不提供用戶選擇執行程序的功能。你也許還記得這樣的經歷:我們用鼠標點擊桌面左小角的“開始”,在選擇“運行”,這時,就出現了一個“運行”對話框:


      你可以在這里直接輸入要執行的程序全路徑,或者,點擊“瀏覽”按鈕,選擇一個程序。

      要達到同樣的效果,請使用下面的代碼:

      '聲明API函數

      '引用了未公開的DLL文件shell32

      Private Declare Function SHRunDialog Lib "shell32" _

        Alias "#61" (ByVal hOwner As Long, ByVal UnknownP1 _

        As Long, ByVal UnknownP2 As Long, ByVal szTitle _

        As String, ByVal szPrompt As String, ByVal uFlags _

        As Long) As Long

      '通用調用運行對話框過程

      '參數Title表示對話框的標題,參數Description表示對話框中的描述文字

      Public Sub ShowRunDialog(ByRef CallingForm As Form, _

        Optional Title As String, _

        Optional Description As String)

        If Title = "" Then Title = "Run"

        If Description = "" Then Description = _

        "Type the name of a program to open, " & _

          "then click OK when finished."

        SHRunDialog CallingForm.hWnd, 0, 0, _

          Title, Description, 0

      End

      '調用例程

      Call ShowRunDialog(Me, "Run Dialog", "Choose a program and press OK")

      怎么樣,輸入完以上代碼了嗎?執行一下看看效果,是不是很滿意:


    快速調用“文件屬性對話框”
      為了查看一個文件的大小、創建時間、存取屬性(只讀、歸檔、隱藏)等等情況,采取的步驟一般是:

      1、定位文件

      2、用鼠標右鍵單擊文件

      3、在出現的菜單中選擇“屬性”

      這時,就出現了文件屬性對話框。比如,對于c:\autoexec.bat實施上面的操作后,圖示如下:


      這時,我們就能對它的各種屬性值進行修改。

      在VB開發中,為了實現上面的功能,要應用到ShellExecuteEX函數,具體如下:

      '聲明結構變量

      Private Type SHELLEXECUTEINFO

        cbSize As Long

        fMask As Long

        hwnd As Long

        lpVerb As String

        lpFile As String

        lpParameters As String

        lpDirectory As String

        nShow As Long

        hInstApp As Long

        lpIDList As Long

        lpClass As String

        hkeyClass As Long

        dwHotKey As Long

        hIcon As Long

        hProcess As Long

      End Type

      '定義常量參數

      Const SEE_MASK_INVOKEIDLIST = &HC

      Const SEE_MASK_NOCLOSEPROCESS = &H40

      Const SEE_MASK_FLAG_NO_UI = &H400

      '引用API函數

      Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias _

      "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long

      '通用調用文件屬性對話框過程

      '第一個參數為欲操作的文件全路徑,第二個參數為窗口句柄

      Public Sub ShowProps(FileName As String, OwnerhWnd As Long)

        Dim SEI As SHELLEXECUTEINFO

        Dim r As Long

        With SEI

          .cbSize = Len(SEI)

          .fMask = SEE_MASK_NOCLOSEPROCESS Or _

           SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI

          .hwnd = OwnerhWnd

          .lpVerb = "properties"

          .lpFile = FileName

          .lpParameters = vbNullChar

          .lpDirectory = vbNullChar

          .nShow = 0

          .hInstApp = 0

          .lpIDList = 0

        End With

        r = ShellExecuteEX(SEI)

      End Sub

      Use

      '例程:調用c:\autoexec.bat的屬性對話框

      Call ShowProps("c:\autoexec.bat", Me.hwnd)

    快速調用“軟盤格式化對話框”
      我們都已經熟悉了在Windows中格式化軟盤的過程,操作步驟一般是:

      1、打開“我的電腦”

      2、用鼠標右鍵點擊圖標“3.5英寸軟盤A”

      3、在出現的菜單中,選擇“格式化”

      接著,就出現了下圖所示的對話框:


      在這個窗口中,再依次選擇你對軟盤格式化的要求參數。

      在VB開發中,通過簡捷的代碼就能快速地調用這個系統對話框,并且,通過設置不同的調用參數,能夠直接選擇對話框出現的形式。下面就詳細介紹:

      '聲明API函數

      '第2個參數表示調用對話框的具體形式

      Private Declare Function GetWindowsDirectory Lib "kernel32" _

      Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _

      ByVal nSize As Long) As Long

      '調用通用軟盤格式化對話框

      Private Sub cmdFormat(ByVal mystyle As Integer)

      Dim rtn As String

      Dim Buffer As String

      Dim WinPath As String

      Buffer = String$(255, 0)

      rtn = GetWindowsDirectory(Buffer, Len(Buffer))

      WinPath = Left(Trim(Buffer), rtn)

      rtn = Shell(WinPath + "\rundll32.exe shell32.dll,SHFormatDrive", mystyle)

      End Sub

      '調用例程

      Private Sub Command2_Click()

      Call cmdFormat(1)

      End Sub

      請注意:上面調用例程中有一個參數,這里是1。根據你的要求不同,可以設置不同數值從而得到初始頁面不同的格式化對話框。以下做一個對照:

      參數為1的情況:Call cmdFormat(1)


      參數為2的情況:Call cmdFormat(2)


      參數為4的情況:Call cmdFormat(4)


    快速調用“網絡資源映射對話框”
      在局域網上,我們經常將服務器上的一個共享目錄映射為本地一個盤符,從而能否方便快速地訪問網絡資源。在VB中,可以用很少的代碼就調出映射對話框,請看下面的代碼:

      '聲明API函數

      Private Declare Function WNetConnectionDialog Lib "mpr.dll" _

      (ByVal hWnd As Long, ByVal dwType As Long) As Long

      '網絡資源映射對話框

      Private Sub ShowMapDrives(hWnd As Long)

       WNetConnectionDialog hWnd, 1

      End Sub

      '調用例程

      Private Sub Command2_Click()

       Call ShowMapDrives(Me.hWnd)

      End Sub

      運行程序,下面就是最終的結果:


      我們注意到,在上面的代碼中,如果將“WNetConnectionDialog hWnd, 1”一行中的1修改為2,執行后將出現打印端口映射對話框:


      沒有想到吧!竟然能如此方便的獲取網絡資源!

    總結
      以上列舉了幾個調用系統對話框的例子,大家可以看到,全部都使用到了windows的API函數。的確,要善于發現并應用API海洋中的浪花,有了她們,我們的程序開發就不會枯燥,新奇的感覺將不斷地涌現!



    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>