亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        FoxPro中WindowsAPI的調(diào)用

        字號(hào):

        動(dòng)態(tài)連接函數(shù)庫(kù)(DLLs)可以說是Windows系統(tǒng)的基礎(chǔ),Windows系統(tǒng)或Windows的應(yīng)用系統(tǒng)在執(zhí)行過程中,常常通過外部的動(dòng)態(tài)連接函數(shù)庫(kù)支持其所需功能,如控制屏幕、打印機(jī)、鼠標(biāo)、鍵盤等設(shè)備,若在設(shè)計(jì)過程中,將完成這些功能的程序都重復(fù)寫在系統(tǒng)中,就會(huì)使程序過大。另外一點(diǎn),就是這些工作函數(shù)庫(kù)具有共享功能,也就是說可以利用Windows程 序開發(fā)工具,直接使用這些屬于Windows函數(shù)庫(kù)的功能,直接在程序中訪問,增加開發(fā)的 系統(tǒng)與Windows系統(tǒng)環(huán)境的結(jié)合能力。WindowsAPI的大約400多個(gè)API功能,大部分都可 供用戶調(diào)用,若能用好這些WindowsAPI功能,既可減少重復(fù)開發(fā),又能提高應(yīng)用系統(tǒng)對(duì) Windows環(huán)境的兼容性和系統(tǒng)性能。
            在Windows環(huán)境中所提供的工作函數(shù)庫(kù)主要有下面三個(gè)文件:
            ·GDI.EXE———屏幕顯示及打印功能。
            ·USER.EXE———鼠標(biāo)、鍵盤、通信端口、聲音及時(shí)鐘功能。
            ·KERNEL.EXE———文件及內(nèi)存管理(核心部分)功能。
            FOXTOOLS.FLL就是FOXPRO For Windows提供的訪問WindowsAPI函數(shù)的動(dòng)態(tài)連接函數(shù)庫(kù)。
            它提供下面兩個(gè)函數(shù):
            RegFn()———WindowsAPI功能注冊(cè)函數(shù)。
            CallFn()———WindowsAPI功能調(diào)用函數(shù)。
            要使用WindowsAPI函數(shù)首先應(yīng)該用RegFn()函數(shù)注冊(cè)該函數(shù),注冊(cè)成功后再用CallFn()函數(shù)調(diào)用之。RegFn()和CallFn()的語法如下。RegFn(<Function name>,<Argment Types>,<Return Types>,[DLL name]) CallFn(<Fn Num>,[<Arg1>,<arg2>....])
            參數(shù)說明:
            Function name為要調(diào)用的API函數(shù)的函數(shù)名稱。
            Argment Types為要調(diào)用的API函數(shù)的參數(shù)類型說明。
            Return Types為要調(diào)用的API函數(shù)的返回值類型說明。
            DLL name為您要調(diào)用的API函數(shù)所在的動(dòng)態(tài)連接函數(shù)庫(kù)名。必須包括擴(kuò)展名,如.DLL或.DLL或.EXE(GDI.EXE、USER.EXE,KERNEL.EXE可省略擴(kuò)展名)。
            {Fn Num>是用RegFn()注冊(cè)成功的函數(shù),即RegFn()的返回值[<Arg1>,<arg2>...])為參數(shù)序列,注意參數(shù)類型必須與用RegFn()注冊(cè)的類型一致。
            如果用RegFn()注冊(cè)一個(gè)WindowsAPI函數(shù)成功的話,會(huì)返回一個(gè)數(shù)值,若無法找到指定的 <DLL name>將返回-1,同時(shí)出現(xiàn)一個(gè)Windows錯(cuò)誤窗口。所以如果您使WindowsAPI函數(shù),您必須保證您所調(diào)用的函數(shù)所在的動(dòng)態(tài)連接函數(shù)庫(kù)存在,而且函數(shù)調(diào)用格式正確CallFn()缺省傳遞參數(shù)的方式為傳值,若要改為傳址,應(yīng)在該參數(shù)前加上@強(qiáng)制符號(hào)。筆者曾經(jīng)因?yàn)槭髽?biāo)器左鍵不好使而用WindowsAPI的SwapMouseButton()函數(shù)對(duì)換了鼠標(biāo)器的左右鍵,下面就以此為例說一下RegFn()和CallFn()的用法。
            SwapMouseButton()的語法如下:
            SwapMouseButton(BOOL bSwap)bSwap為真值(1)時(shí)將鼠標(biāo)器左右鍵對(duì)換,為假(0)時(shí)
            將左右鍵恢復(fù)正常設(shè)置。
            對(duì)換過程SwapMouse.prg
            PARAMETERS Swap
            SET LIBRARY TO SYS(2004)+"FOXTOOLS.FLL"
            &&連入FOXTOOLS.FLL庫(kù)
            Fn=RegFn("SwapMouseButton","I","I","USER.EXE")
            &&注冊(cè)SwapMouseButton
            IF Fn=-1
            WAIT WINDOWS"注冊(cè)失敗!"NOWAIT
            SET LIBRARY TO
            RETURN
            ENDIF
            &&注冊(cè)成功
            Result=CallFn(Fn,Swap)
            SET LIBRARY TO
            RETURN