16、如何避免程式重復執行?(偵測是否存在前一副本,若有,則結束目前新啟動(dòng)的程式)
使用者在啟動(dòng)程式后,有時(shí)會(huì )將程式縮小在工作列上,之后要用時(shí),又會(huì )重新啟動(dòng)一次程式,資料庫程式有時(shí)會(huì )因此造成資料錯亂!
若您不希望使用者重復啟動(dòng)程式,您可以使用 APP 物件來(lái)判斷,方法如下:
Private Sub Form_Load()
If App.PrevInstance Then ‘檢視前一版本
MsgBox "此程式已經(jīng)在執行中!", 48
End
End If
End Sub
17、如何讓一個(gè) App 永遠保持在最上層 ( Always on Top )
請在聲明區中加入以下聲明
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter
As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_NOMOVE = &H2 ‘不更動(dòng)目前視窗位置
Const SWP_NOSIZE = &H1 ‘不更動(dòng)目前視窗大小
Const HWND_TOPMOST = -1 ‘設定為最上層
Const HWND_NOTOPMOST = -2 ‘取消最上層設定
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
‘將 APP 視窗設定成永遠保持在最上層
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
‘取消最上層設定
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
18、表單配置視窗和解析度
這個(gè)地方不是要告訴您如何寫(xiě)出一支程式,會(huì )自動(dòng)根據使用者熒幕的解析度調整 Form 及各控制項的大小,也就是適用于各種解析
度的程式。那是另一個(gè)主題!
由于我在集團式的公司資訊中心上班,在我的開(kāi)發(fā)過(guò)程中,我的使用者依不同公司別,分成幾個(gè)族群,有的公司都是使用
640x480 的解析度,有的都用 800x600,設計公司則是 1024x768,為了替這些公司開(kāi)發(fā)軟件,在 VB5.0 以前,寫(xiě)各家公司的
程式以前就必須先調整熒幕的解析度 (否則在解析度 800x600 的電腦上開(kāi)發(fā)的程式,在 640x480 解析度的電腦中執行時(shí),右方
和下方的畫(huà)面會(huì )跑出熒幕外面),有的電腦一改變解析度就必須重新開(kāi)機,更是麻煩!
VB5.0 以后,VB 多提供了一個(gè)功能,就是【表單配置視窗】,從此以后,您可以在高解析度的熒幕中,開(kāi)發(fā)低解析度的程式,要
怎么做呢? 《假設您的電腦解析度是 1024x768》
很簡(jiǎn)單!在【表單配置視窗】上的熒幕上按滑數右鍵,選擇【解析度】??吹搅藛?!在【表單配置視窗】上的熒幕上,出現了二個(gè)
虛線(xiàn)框,上面各標明了 640x480 及 800x600。好了!現在您可以開(kāi)始開(kāi)發(fā)各種不同解析度的系統了!
例如您要開(kāi)發(fā)的系統,解析度是 640x480,您只要注意不要讓您的表單超出 640x480 的虛線(xiàn)框就可以了!
聯(lián)系客服