亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

VisualBasic軟件設(shè)計中的幾個問題

2019-11-18 17:44:12
字體:
供稿:網(wǎng)友
在軟件開發(fā)過程中,有一些看似很簡單的問題,卻很容易被一般的開發(fā)人員所忽略,這些“Bugs”的存在,影響我們軟件走向商品化。下面所列出的是筆者在使用VisualBasic開發(fā)軟件時,碰到了幾個這類問題,這里給出其解決方法,供大家探討交流。

一防止應(yīng)用程序加載兩份
當我們的應(yīng)用程序在Windows下運行后,在操作過程中,有時會把它最小化隱藏起來,或者切換到程序管理器下進行其它操作,而后又想進入原來的應(yīng)用程序,這時如果忘記了剛才啟動的應(yīng)用程序,又去重新啟動該應(yīng)用程序,在內(nèi)存中就同時加載了兩份同樣的應(yīng)用程序,這樣不但占用了內(nèi)存空間,而且容易引起誤操作,造成數(shù)據(jù)的損失。為了避免這種情況發(fā)生,就需要程序能夠給出提示“已經(jīng)加載過”或直接進入第一次被加載的應(yīng)用程序中。對于這個問題,看起來比較難辦,其實我們只要對Windows管理應(yīng)用程序的機理有所了解,就很容易解決。
我們知道,對于每一個運行著的應(yīng)用程序,Windows都分配給一個唯一的“句柄(Handle)”和一個模塊代碼(Module)。當同時運行兩份相同的程序時,兩份程序的模塊代碼都相同,因此,只要找到內(nèi)存中兩個相同的模塊代碼,我們就知道有兩份程序在運行,從而可以控制它。Windows提供的兩個接口函數(shù)GetModuleHandle和GetModuleUsage可以完成此任務(wù)。具體方法如下,首先在一個新的模塊文件(*.Bas)中聲明API函數(shù)。

DeclareFunctionGetModuleHandleLib"Kernel"(ByVallpPRogName$)

DeclareFunctionGetModuleUsageLib"Kernel"(ByValhModule)

同時建立一個子過程,名字為main,子過程中的代碼如下:

SubMain()
OnErrorGoToerrMain‘錯誤處理
DimhModule‘模塊句柄
DimAppCount‘應(yīng)用程序的個數(shù)
appPath$=app.Path "/"‘應(yīng)用程序的啟動路徑
hModule=GetModuleHandle(appPath$ app.EXEName ".exe")‘獲得該程序的句柄。
AppCount=GetModuleUsage(hModule)‘獲得模塊代碼,即運行的應(yīng)用程序數(shù)目。
lfAppCount>1Then‘同一應(yīng)用程序數(shù)大于1
MsgBox"程序已經(jīng)加載",64
End‘結(jié)束當前啟動的應(yīng)用程序
Elsc
mainForm.Show‘mainForm是程序的主窗體
Endlf
ExitSub
errMain:
lfErr<>0Then
MsgBox"啟動程序時發(fā)生錯誤",64
ExitSub
Endlf
EndSub
該過程完成后,在VB3.0主菜單[options]下,選擇[Project]菜單項,設(shè)定[StartupFrom]項為Submain,即程序運行時,最先從Submain子程序開始。這樣保證上面的代碼一定被執(zhí)行。Submain是VB3.0約定的子過程名,不能用其它的名字來代替。
重新生成EXE文件,在程序管理器下,啟動該應(yīng)用程序,然后把產(chǎn)生的窗體最小化,接著從程序管理器下再運行它,用戶將看到一個消息框,告訴用戶,應(yīng)用程序已被加載過了,第二份程序終止執(zhí)行。上面的程序僅用來防止加載二份程序,但還沒有做到當不能啟動第二份時,自動進入到第一份程序。要做到這一點,所涉及的程序較復(fù)雜,這里就不詳細介紹了。

二判斷Windows的安裝路徑
在我們開發(fā)的軟件中,有時會直接調(diào)用Windows提供的小應(yīng)用程序,如計算器、計事本等;或需要把一些特殊的文件放到Windows或SYSTEM的路徑下。通常,Windows都安裝在C:\WINDOWS目錄下,但用戶可以任意修改Windows的主目錄名,因此,在我們的軟件中,就需要判斷Windows的安裝路徑。對于這個問題,Windows提供了兩個API函數(shù):GetWindowsDirectory和GetSystemDirectory,可以返回Windows目錄和SYSTEM目錄的名稱。
為此,編制一個通用函數(shù)GetWinDir,它返回Windows的安裝目錄名稱。類似,可以寫出GetSysDir,略。

在*.BAS模塊文件中聲明API函數(shù)

DeclareFunctionGetWindowsDirectoryLib"Kernel"(ByValipBufferAsString,ByValnSizeAsInteger)asIntegerFunctionGetWinDir()AsStringDimWindir$Windir$=Space$(144)‘144是WINDOWS目錄名稱理論上的最大長度。

lfGetWindowsDirectory(Windir$,144)=0Then
MsgBox"不能確定WINDOWS的安裝路徑",16
GetWinDir=""
Else
Windir$=ALLTrim$(Windir$)
ifRight$(Windir$,1)<>“/”thenWindir$=Windir$ “/”
‘加上反斜杠
GetWinDir=Windir$
Endlf
EndFunction
其中ALLTRIM是用來去掉字符串中空字符的函數(shù)
FunctionALLTrim(FatStr$)AsString
'thisFunctiondeleteSpacecharinstringofFatStr$
DimSlimStr$,I
SlimStr$=FatStr$
I=lnStr(SlimStr$,Chr$(0))‘空格的位置
IfIThenSlimStr$=Left$(SlimStr$,I-1)
SlimStr$=Ltrim$(Rtrim$)(SlimStr$))
AIITrim$=SlimStr$
EndFunction
三在關(guān)掉窗體前提示保存數(shù)據(jù)
一般說來,通常用5種方式可以關(guān)閉一個應(yīng)用程序:
1.用戶選擇了當前窗體ControlBox中的[關(guān)閉]命令
2.激發(fā)程序中的結(jié)束命令代碼(如End,Unload)
3.退出Windows
4.在Windows的任務(wù)列表中關(guān)閉應(yīng)用程序。
5.多文檔操作時,關(guān)閉主MDI窗體,引起子MDI窗體關(guān)閉。
在關(guān)閉一個應(yīng)用程序前,我們要給用戶一個機會,提示“是否保存數(shù)據(jù)”,或者取消“關(guān)閉”的操作。在VB中,窗體的關(guān)閉引發(fā)的是Form_Unload事件,我們可以對該事件進行編程,來控制“關(guān)閉”操作。假設(shè)現(xiàn)已有一個過程FileSave用來保存文件,則可以這樣來編寫程序。
SubForm_Unload(CancelAslnteger)
selectcastMsagbox(“是否保存數(shù)據(jù)?”,3 32)
‘Yes,No,Cnacel三種選擇
case6‘YES
FileSave‘保存數(shù)據(jù)
case2‘cancel
Cancel=TRUE‘取消關(guān)閉操作
caseelse‘NO‘不保存,執(zhí)行關(guān)閉操作
Endselect
EndSub
上面代碼中的Cancel變量,是Form_unload事件本身的固有傳出變量,它給Windows控制過程傳遞消息,從而控制程序的走向。

上面三個例子,只是軟件完善過程中的一些小問題,要使軟件穩(wěn)定可靠,需要做大量細致認真的工作。有些問題,我們可以通過發(fā)掘VB本身的潛力,深入掌握一些過程的操作技巧來解決;而有些較復(fù)雜的問題,涉及到Windows底層方面的操作,采用Windows的API函數(shù),可以很容易實現(xiàn)。當然這需要對Windows的函數(shù)和機理有一定的了解。隨著Windows編程水平的提高,我們會逐漸學會并喜歡利用API函數(shù)來輔助完成程序編碼。->


上一篇:VB編程問與答

下一篇:VB編程的一些心得

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产精品老牛影院在线观看| 欧美国产小视频| 99久久精品免费看国产交换| 欧美不卡视频在线观看| 精品免费视频一卡2卡三卡4卡不卡| 男人靠女人免费视频网站| 日韩精品一区二区三区外面| 噼里啪啦国语在线观看免费版高清版| 日本高清不卡视频| 日本免费一区二区三区四区| 国产福利av网站| 欧美第十八页| 亚洲狠狠婷婷综合久久久久图片| 亚洲自拍偷拍欧美| 在线观看国产精品视频| 不要播放器的av网站| 欧美乱大交做爰xxxⅹ小说| 国产精品高潮呻吟AV无码| 色婷婷综合久久久久久| 韩国福利在线| 婷婷成人影院| 91久久精品一区二区二区| 青青青在线免费观看| 在线观看亚洲专区| 成人在线视频一区二区三区| 国产美女诱惑一区二区| 欧洲精品99毛片免费高清观看| 美女脱光衣服与内衣内裤一区二区三区四区| 韩国日本美国免费毛片| 国产一级片久久| 色乱码一区二区三区在线| 亚洲第五色综合网| 91精品国产精品| 97se狠狠狠综合亚洲狠狠| 日韩一区二区在线看| 99精品网站| 欧美大肚乱孕交hd孕妇| 亚洲一区二区精品在线观看| 日韩欧美在线播放视频| 国产精品不卡一区二区三区在线观看| 国模视频一区二区| 台湾佬中文娱乐久久久| 欧美精品日日鲁夜夜添| 无码人妻精品一区二区三区9厂| 欧美xxxx三人交性视频| 日韩国产激情在线| 福利视频一区二区三区四区| av免费观看不卡| 国产超级va在线视频| 日本 国产 欧美色综合| 日韩av在线播放网址| 99精品在线播放| 国产精品av一区二区三区| 欧美激情精品久久久久久蜜臀| 91精品久久久久久久久久另类| 国产一区二区在线观看视频| 蜜桃欧美视频| 国产日韩在线播放| 欧美不卡一区二区| 国产成人av一区二区| 国产一区二区三区免费视频| 99免在线观看免费视频高清| 免费高潮视频95在线观看网站| 佐佐木明希av| 精品偷拍激情视频在线观看| 欧美综合国产精品久久丁香| 成人看的羞羞网站| 7m精品国产导航在线| 超薄肉色丝袜足j调教99| 亚洲国产精品无码久久| 9191在线| 91欧美在线| 欧美黑人一级爽快片淫片高清| 日韩欧美视频专区| 精品综合久久| 久久久久xxxx| 看国产成人h片视频| 亚洲三级在线播放| 成人免费午夜电影| 欧美日韩精品免费观看视频完整| 亚洲一区二区天堂| 伊人福利在线| 综合激情久久| 好看的日韩精品| 在线观看免费国产成人软件| 亚洲第一毛片| 亚洲精品自在久久| 成人黄色在线免费观看| av一级在线| 亚洲欧洲一区二区| 欧美日韩精品一本二本三本| 精品一区二区三区免费毛片| 国产综合久久久久| 成人在线播放网站| 亚洲国产人成综合网站| youjizz亚洲女人| 天堂中文在线视频| 日韩av在线天堂网| 成人免费区一区二区三区| 国产精品观看在线亚洲人成网| 你懂的网址视频| 日本不卡高清| 欧美韩日一区| 精品国产1区2区| 中文字幕亚洲欧美在线| 色的视频在线观看免费播放| 久草这里只有精品视频| 亚洲欧美日韩天堂一区二区| 中文字字幕码一二三区| 国产精品国产一区二区| 天堂a中文在线| av中文字幕在线不卡| 四虎成人精品免费影院| 中文字幕在线中文字幕日亚韩一区| 一本一道dvd在线观看免费视频| 日本黄大片一区二区三区| 热久久最新网址| 精品美女永久免费视频| 日韩专区中文字幕一区二区| 亚洲国产一区二区三区青草影视| 欧洲高清一区二区| 亚洲xxxx做受欧美| 天堂av在线8| 国产鲁鲁视频在线观看免费| 青椒成人免费视频| 97影院手机在线观看| 国产一区二区精彩视频| 一区在线不卡| 欧美极品少妇无套实战| 亚洲国产av一区二区三区| 日本老师69xxx| 国产精品videossex国产高清| 超碰中文字幕在线观看| 欧美精品黑人猛交高潮| 亚洲91在线| 亚洲av成人精品一区二区三区在线播放| 91美女蜜桃在线| 日本在线观看中文字幕| 久久琪琪电影院| 一区二区三区免费高清视频| 国产3p露脸普通话对白| 可以看毛片的网址| 人妻熟女一二三区夜夜爱| 亚洲欧美视频在线观看视频| 久久av一区二区三区漫画| 7777在线视频| 天堂√中文最新版在线| 美女扒开腿让男人桶爽久久软| 免费看亚洲片| 国产精品手机在线播放| 99视频在线播放| 国产欧美久久久久| 午夜男人视频在线观看| 日本电影免费看| 成人动漫视频在线观看| 国产精品亚洲色图| 亚洲伊人成人网| 亚洲欧美精选| 国语精品视频| 国产在线a不卡| 538国产精品一区二区在线| 激情成人四房播| 国产精品久久久久久久免费| 不卡大黄网站免费看| 美女在线不卡| 青青草原av在线| 国产黄色免费视频| 五月婷婷在线视频| 丁香婷婷综合色啪| 羞羞网站在线观看| 日韩精品社区| 奇米综合一区二区三区精品视频| 在线视频1区| 国内外成人在线视频| 国产99在线| 国产午夜伦鲁鲁| 日韩人妻精品无码一区二区三区| 成人免费网站在线| 97免费中文视频在线观看| av小说天堂网| 国产亚洲欧美日韩俺去了| 福利微拍一区二区| 国产精品手机在线观看| 成人免费视频网站入口::| 一区二区成人免费视频| 91在线导航| 成人黄色激情视频| 国产午夜一区二区三区| 国精产品一区二区三区| 日本成人7777| 波兰性xxxxx极品hd| 欧美精品一区二区三区蜜桃视频| 国产高清免费在线| 成人噜噜噜噜| 精品人妻一区二区三区视频| 香蕉精品999视频一区二区| 亚洲欧洲日产国码无码久久99| 欧美成人精品一级| 国产欧美va欧美不卡在线| 日韩xxxx视频| 亚洲欧美激情网| 性欧美hd调教| 国产午夜精品福利视频| 欧美在线视频播放| 自拍偷拍亚洲在线| 精品一区二区三区自拍图片区| 无圣光视频在线观看| 久久久久久久一区二区三区| 中文字幕一区二区人妻电影丶| 日韩在线第七页| 精品国产乱码久久久久久88av| 伊人影院在线观看视频| www免费在线观看| 性色av香蕉一区二区| 丝袜亚洲欧美日韩综合| 国产美女在线一区二区三区| caoporn视频在线观看| 中文字幕人成乱码在线观看| 在线观看男女av免费网址| 国产一级二级av| a在线视频播放观看免费观看| 久久精品在线观看视频| av福利网址网站| 毛片网站网址| 北条麻妃视频在线| 国产成人三级在线播放| 综合av色偷偷网| 欧美性生活一区| www..com.cn蕾丝视频在线观看免费版| 久久国产精品亚洲人一区二区三区| 老熟妇高潮一区二区高清视频| 成人av第一页| 国产真人真事毛片| 亚洲精品v亚洲精品v日韩精品| 成人精品一区二区三区电影黑人| 成人免费福利视频| avtt天堂资源网站| 成人激情视频在线| 午夜av中文字幕| 欧美超级免费视 在线| 国产精品白嫩白嫩大学美女| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一区免费观看| www.亚洲视频.com| 亚洲毛片在线免费观看| 天海翼女教师无删减版电影| 成人91在线观看| 黄色av地址| 亚洲精品永久免费精品| 亚洲欧美日韩图片| 7777精品伊人久久久大香线蕉经典版下载| 免费在线观看一级毛片| 伊人一区二区三区久久精品| 国产麻豆乱码精品一区二区三区| 欧美在线视频一区二区| 欧美成人高潮一二区在线看| 国产一区二区三区中文字幕| 日韩三级小视频| 欧美三级午夜理伦三级中视频| 醉酒壮男gay强迫野外xx| 四虎精品成人免费观看| 色婷婷综合网| 亚洲免费小视频| 国产精品久久777777换脸| 欧洲日韩成人av| 一本一道久久综合狠狠老| 91久久精品国产91久久性色tv| 欧美激情免费观看| 日皮视频在线免费观看| 国产精品国产三级国产专区53| 懂色av中文字幕一区二区三区| 欧美亚洲日本一区二区三区| 777奇米成人网| 亚久久调教视频| 成人性生交大片免费看视频直播| 性欧美精品孕妇| 色丁香婷婷综合久久| 精品女同一区二区三区在线观看| 成人18网址在线观看| 日本精品免费一区二区三区| 日韩一区在线免费观看| 中文字幕精品在线| 欧美a∨亚洲欧美亚洲| 国产一起色一起爱| 另类专区欧美蜜桃臀第一页| 久久免费99精品久久久久久| 午夜精品久久久久久久99热影院| 日韩av一区二区在线观看| 欧美videos巨大粗暴| 亚洲精品国产精品国自产观看| 亚洲精品第一国产综合野| 加勒比免费视频| 正在播放欧美一区| 蜜桃999成人看片在线观看| av网页在线观看| 日韩中文视频免费在线观看| 亚欧精品在线视频| 911精品国产一区二区在线| 在线女人免费视频| 中文字幕免费精品一区高清| 影音先锋中文字幕一区二区| 亚洲麻豆精品| 国产成人a人亚洲精品无码| 秘密基地免费观看完整版中文| 日韩精品一区第一页| 日韩电影免费观看在线观看| 偷拍日韩校园综合在线| 生活片a∨在线观看| 国产欧美精品一区二区三区-老狼| 国产精品13p| av在线免费观看网址| 欧美成人777| 国产一区二区自拍| 精品欧美日韩精品| 国产精品福利电影一区二区三区四区| 欧美高清视频| 午夜激情视频在线播放| 欧美影视一区二区| 青草视频在线观看视频| 国产麻豆精品高清在线播放| 国产又粗又猛大又黄又爽| 一本到不卡精品视频在线观看| 美女黄色丝袜一区| 精品国产免费人成网站| 资源av在线| 四虎精品在永久在线观看| 精品成在人线av无码免费看| 26uuu另类亚洲欧美日本老年|