国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 媒體動(dòng)畫 > 正文

Authorware基礎(chǔ)教程:authorware7里面地U32和ODBC運(yùn)用介紹(2)

2024-09-08 19:26:42
字體:
供稿:網(wǎng)友

4.1.8  用winapi.u32屏蔽功能鍵和
隱藏任務(wù)欄

1)新建一個(gè)文件,文件名為sample.a7p。

2)放置一計(jì)算圖標(biāo)于流程線上。

3)按【ctrl+shift+f】快捷鍵,打開“函數(shù)”窗口。

4)選擇sample.a7p,單擊【加載】鈕,打開winapi.us2文件,并引入其中的systemparameters info()、findwindow()和setwindowpos()三個(gè)函數(shù)。

5)雙擊計(jì)算圖標(biāo),在里面輸入如下程序語句:

systemparametersinfo(97,1,1,1)——屏蔽鍵盤所有功能鍵。

wnd:=findwindow(″shell_traywnd″,″″)——捕捉任務(wù)欄窗口。

setwindowpos(wnd,0,0,0,0,0,128)——隱藏任務(wù)欄窗口。

6)在程序的退出處放置一計(jì)算圖標(biāo),雙擊計(jì)算圖標(biāo),在里面寫上:

l          systemparametersinfo(97,0,1,1)——恢復(fù)鍵盤所有功能鍵。

l          wnd:=findwindow(″shell_traywnd″,″″)——捕捉任務(wù)欄窗口。

l          setwindowpos(wnd,0,0,0,0,0,64)——顯示任務(wù)欄窗口。

我們還可以在運(yùn)行程序前,通過windows api函數(shù)捕捉所有的窗口,獲得窗口的句柄,然后再向它們依次發(fā)送mw_quit消息,這樣就可以在運(yùn)行程序之前,關(guān)閉所有正在運(yùn)行的程序,從而釋放出更多的資源給你的多媒體作品。

4.1.9  用budeky.u32屏蔽功能鍵

設(shè)計(jì)程序時(shí),因?yàn)槟承┨厥庑枰袝r(shí)可能需要屏蔽系統(tǒng)的某些功能鍵,比如【alt+tab】、【alt+f4】、【ctrl+q】等。本例中就使用budeky.u32中的函數(shù)來屏蔽某些功能鍵,所使用的函數(shù)有:

1)disablequit()

格式:result:=disablequit(windowhandle)

屏蔽用于退出的某些快捷鍵,比如:【alt+f4】、【ctrl+q】和【ctrl+.】。

2)disableswitching()

格式:disableswitching()

屏蔽某些功能鍵及組合,比如【alt+tab】、【alt+esc】、【ctrl+esc】、【ctrl+alt+delete】和窗口鍵。

3)restorequit

格式:restorequit()

解除restorequit()函數(shù)屏蔽的功能鍵。

4)restoreswitching()

格式:restoreswitching()

解除restoreswitching()函數(shù)屏蔽的功能鍵。

具體步驟如下。

1)新建一個(gè)文件,保存為“屏蔽功能鍵.a7p”,文件流程如圖4-7所示。

圖4-7  屏蔽功能鍵流程圖

在“初始化”圖標(biāo)中輸入以下內(nèi)容。

resizewindow(300, 200)  --設(shè)置窗口大小

setwindowtext( windowhandle, "屏蔽功能鍵")

設(shè)置演示窗口標(biāo)題欄的名稱為“屏蔽功能鍵”

2)打開交互圖標(biāo),輸入圖4-8所示的內(nèi)容,調(diào)整好按鈕的相對(duì)位置。

圖4-8  交互圖標(biāo)中的顯示對(duì)象

3)在“屏蔽功能鍵”按鈕交互分支下的計(jì)算圖標(biāo)中輸入以下內(nèi)容:

disableswitching()

hint:="/"alt+tab/"、/"alt+esc/"、/"ctrl+esc/"、

/"ctrl+alt+delete/"和/"窗口鍵/"已被屏蔽"

systemmessagebox(windowhandle,hint , "屏蔽功能

鍵", 48) -- 1=ok

屏蔽功能鍵,然后顯示提示信息。

技巧:因字符串需要加雙引號(hào),而在提示信息中由于也有雙引號(hào),所以必須在內(nèi)部每個(gè)雙引號(hào)前加轉(zhuǎn)意字符“/”。第一個(gè)和最后一個(gè)雙引號(hào)當(dāng)然是不能加的。

4)在“屏蔽退出鍵”按鈕交互分支下的計(jì)算圖標(biāo)中輸入以下內(nèi)容:

disablequit( windowhandle )

hint:="/"alt+f4/"、/"ctrl+q/"和/" ctrl+./" 已被屏蔽"

systemmessagebox(windowhandle, hint, , "屏蔽退出

鍵",48) -- 1=ok

屏蔽退出鍵,然后顯示提示信息。

5)在“解除屏蔽”按鈕交互分支下的計(jì)算圖標(biāo)中輸入以下內(nèi)容:

--解除各鍵的屏蔽!

restorequit()

restoreswitching()

hint:="各鍵已經(jīng)解除屏蔽!"

systemmessagebox(windowhandle,hint , "解除屏蔽",

48) -- 1=ok

解除各鍵的屏蔽,然后顯示提示信息。

6)在“退出” 按鈕交互分支下的計(jì)算圖標(biāo)中輸入以下內(nèi)容:

--退出程序前解除屏蔽

restoreswitching()

restorequit()

quit()

防止用戶未單擊“解除屏蔽”按鈕解除對(duì)各鍵的屏蔽,在退出程序前執(zhí)行解除屏蔽函數(shù)保證程序退出后各鍵均解除屏蔽。

7)運(yùn)行程序,標(biāo)題欄發(fā)生了變化。單擊“屏蔽功能鍵”按鈕出現(xiàn)如圖4-9所示的信息。

圖4-9  屏蔽功能鍵消息框

4.1.10  如何設(shè)置你的演示窗口的位置總在
最前,即不被其他窗口覆蓋

在有些時(shí)候,我們用authorware做的程序希望演示窗口的位置總在最前,即不要被其他窗口覆蓋。比如我們在程序中調(diào)用了word,在進(jìn)行word編輯的同時(shí)authorware的主程序的小窗口仍然在前。我們就要用到winapi.us2中的setwindowpos()函數(shù)。

setwindowpos:這個(gè)函數(shù)能為窗口指定一個(gè)新位置和狀態(tài)。它也可改變窗口在內(nèi)部窗口列表中的位置。

函數(shù)格式:setwindowpos( hwnd hwnd, hwnd hwndinsertafter , int x, int y, int cx, int cy, uint uflags)

其中的參數(shù)意義如下。

hwnd:欲設(shè)置的窗口的句柄。

hwndinsertafter:窗口句柄。在窗口列表中,欲設(shè)置的窗口hwnd會(huì)置于這個(gè)窗口句柄的后面。這個(gè)參數(shù)也可能取下面的值:

1——將窗口置于窗口列表底部。

0——將窗口置于z序列的頂部;z序列代表在分級(jí)結(jié)構(gòu)中,窗口針對(duì)一個(gè)給定級(jí)別的窗口顯示的順序。

-1——將窗口置于列表頂部,并位于任何最頂部窗口的前面(將一個(gè)窗口置頂,不會(huì)被任何窗口遮擋)。

-2——將窗口置于列表頂部,并位于任何最頂部窗口的后面。

x:窗口新的x坐標(biāo)。

y:窗口新的y坐標(biāo)。

cx:新的窗口寬度。

cy:新的窗口高度。

wflags取值如下:

1——保持當(dāng)前大小(cx和cy會(huì)被忽略)。

2——保持當(dāng)前位置(x和y設(shè)定將被忽略)。

4——保持窗口在列表的當(dāng)前位置(hwndinsert after將被忽略)。

8——窗口不自動(dòng)重畫。

10——不激活窗口。

32——圍繞窗口畫一個(gè)框(強(qiáng)迫一條wm_ncc alcsize消息進(jìn)入窗口,即使窗口的大小沒有改變)。

64——顯示窗口。

128——隱藏窗口。

例如:setwindowpos(windowhandle,-1, 0, 0, 0, 0, 3),取3時(shí)cx、cy、x和y設(shè)定都將被忽略。

4.1.11  用altools.u32函數(shù)動(dòng)態(tài)改變屏幕
分辨率,讓課件實(shí)現(xiàn)全屏播放

一個(gè)外掛函數(shù)——altools.u32,這里面有改變分辨率和隱藏任務(wù)欄的函數(shù)。通過程序來改變分辨率和隱藏任務(wù)欄而實(shí)施全屏演示。不過還要在程序退出的時(shí)候改回原來的分辨率。下面我們就來看一看具體實(shí)現(xiàn)的辦法。

一、加載函數(shù)

打開authorware,保存文件為“改變屏幕分辨率.a7p”。按【ctrl+shift+f】快捷鍵打開函數(shù)框,在“分類”里面選擇“改變屏幕分辨率.a7p”,單擊【加載】按鈕,選擇altools.u32,加載里面的“alchangeres”函數(shù),用同樣方法,再加載“alhidetaskbar”、“alshowtaskbar”兩個(gè)函數(shù)。先說明一下這三個(gè)函數(shù)的作用:

1)alchangeres:改變屏幕分辨率的函數(shù),基本格式為“alchangeres(width,height,bitpp)”。

2)alhidetaskbar:隱藏任務(wù)欄。

3)alshowtaskbar:顯示任務(wù)欄。

二、編寫程序

1)拖動(dòng)一個(gè)計(jì)算圖標(biāo)到流程線上,命名為“初始化”,打開并輸入以下語句:

userscreenwidth=screenwidth--保存用戶監(jiān)視器的

寬度

userscreenheight=screenheight--保存用戶監(jiān)視器的

高度

userscreendepth=screendepth--保存用戶監(jiān)視器的顏

色深度

alhidetaskbar()--隱藏任務(wù)欄

alchangeres(640,480,32)--改變屏幕分辨率

resizewindow(640,480)--調(diào)整窗口大小

2)將整個(gè)課件作為一個(gè)整體放在計(jì)算圖標(biāo)“初始化”下。現(xiàn)在我們用一個(gè)等待圖標(biāo)來代替。

3)再拖動(dòng)一個(gè)計(jì)算圖標(biāo)到流程線上,命名為“退出”,打開并后輸入以下語句:

alshowtaskbar()--顯示任務(wù)欄

alchangeres(userscreenwidth,userscreenheight,user

screendepth)--恢復(fù)使用者原來的分辨率

quit()--退出

運(yùn)行程序,這時(shí)我們可以看到,在運(yùn)行初期已經(jīng)改變了屏幕分辨率,而且是全屏播放。當(dāng)退出時(shí),又改回到原來的分辨率。


4.1.12  用midiloop.u32函數(shù)播放midi
聲音文件

authorware 7.0支持的聲音文件格式仍然有一些限制,只有mp3、aiff、pcm、wave、vox、swa擴(kuò)展后綴名的文件才可直接導(dǎo)入到authorware程序中,但還是不支持midi文件的直接使用。我們知道m(xù)idi文件使用的是數(shù)字樂器,換句話說,midi文件并沒有真正地記錄了音頻信息,而是像樂譜一樣記錄了各種樂器的和聲和音高節(jié)奏,具體的演奏任務(wù)由聲卡所帶的數(shù)字樂器完成。midi音樂有著體積信息小的特點(diǎn),而且不會(huì)與wav聲音通道沖突,因此,在進(jìn)行多媒體開發(fā)時(shí)經(jīng)常用來做背景音樂,但authorware并不直接提供對(duì)midi聲音文件格式的支持,怎么辦呢?別急,authorware提供了外部函數(shù)的接口可以解決這個(gè)問題:利用第三方的ucd外部函數(shù),我們可以實(shí)現(xiàn)對(duì)midi聲音文件的支持。下面我們就一起來制作兩個(gè)關(guān)于midi背景音樂循環(huán)播放的范例吧!

1)循環(huán)播放midi背景音樂

在這里我們要實(shí)現(xiàn)的目的是讓midi背景音樂循環(huán)的播放,具體思路是通過導(dǎo)入authorware的外部函數(shù)midiloop.u32相關(guān)的兩個(gè)擴(kuò)展函數(shù),實(shí)現(xiàn)對(duì)midi背景音樂的循環(huán)播放。

在介紹范例前,我們簡單介紹一下midiloop.u32的相關(guān)擴(kuò)展函數(shù):

result:=loopmidi(file)

這個(gè)函數(shù)的功能是對(duì)程序指定的midi音樂進(jìn)行循環(huán)播放,直到用戶中止為止。其中,參數(shù)file就是用戶自行指定的外部midi文件,當(dāng)然,這里指定的midi聲音文件并沒有導(dǎo)入程序內(nèi)部,只是存在一種相當(dāng)于鏈接的關(guān)系。

result:=stopmidi()

這個(gè)函數(shù)的功能是停止當(dāng)前正在播放的midi音樂,參數(shù)為void型。

2)程序的流程圖如圖4-10所示。

圖4-10  播放midi音樂流程圖

3)操作步驟介紹如下。

①新建一個(gè)文件,并調(diào)入外部函數(shù)midiloop.u32的相關(guān)擴(kuò)展函數(shù),loopmidit和stopmidi。

② 加入一個(gè)計(jì)算機(jī),設(shè)置運(yùn)行窗口的大小,計(jì)算圖標(biāo)的內(nèi)容為:

resizewindow(320,240) ——resizewindow是一個(gè)系統(tǒng)函數(shù),設(shè)置窗口的大小

stop:=0——stop為自定義變量,用來控制midi。

loopmidi(filelocation^"midi.mid")——程序開始播放midi背景音樂。

③設(shè)置對(duì)midi音樂的開關(guān)控制以及程序的退出。分別建立三個(gè)button按鈕響應(yīng)交互,返回類型設(shè)置如圖4-16所示。

在“暫停”按鈕響應(yīng)交互計(jì)算圖標(biāo)里輸入代碼:

stop:=1

stopmidi()

在“播放”按鈕響應(yīng)交互計(jì)算圖標(biāo)里輸入代碼:

if stop=1 then

loopmidi(filelocation^"midi.mid")

stop:=0

end if

在“退出”按鈕響應(yīng)交互計(jì)算圖標(biāo)里輸入代碼:

stopmidi()——停止midi背景音樂播放。

quit()——退出程序。

④存盤完成。

4.1.13  用tmscontrols.u32制作子菜單和
右鍵快捷菜單

tmscontrols.u32函數(shù)的主要功能有以下幾種:

l        制作下拉列表;
l        制作彈出式菜單;
l        調(diào)用文件選擇對(duì)話框;
l        字體下拉列表;
l        調(diào)用帶預(yù)覽功能的圖形文件打開對(duì)話框;
l        調(diào)用文件保存對(duì)話框。

制作步驟介紹如下。

1)下拉菜單和右鍵快捷菜單的效果圖如圖4-11和圖4-12所示。

圖4-11  下拉菜單效果圖

圖4-12  右鍵快捷菜單效果圖

2)程序的流程圖如圖4-13所示,其中交互圖標(biāo)中包括條件響應(yīng)和按鈕響應(yīng)。

圖4-13  子菜單和右鍵快捷菜單流程圖

3)引入tmscontrols.u32中的tmssdditem()、tmscreatepopuplist()、tmsdisplaycontrol()三個(gè)函數(shù)。

4)用鼠標(biāo)右鍵快捷菜單的制作,屬性設(shè)置條件響應(yīng)為“rightmousedown=true”,即表示當(dāng)鼠標(biāo)右鍵按下時(shí)響應(yīng)。

5)在“rightmousedown=true”交互下的計(jì)算圖標(biāo)的內(nèi)容為:

popuphandle:=tmscreatepopuplist(windowhandle)

——取得windows句柄。

result:=tmsadditem(popuphandle,1,0,"新建")

result:=tmsadditem(popuphandle,1,1,"二級(jí)子菜單1")

result:=tmsadditem(popuphandle,1,2,"二級(jí)子菜單2")

result:=tmsadditem(popuphandle,1,3,"二級(jí)子菜單3")

result:=tmsadditem(popuphandle,1,4,"二級(jí)子菜單4")

result:=tmsadditem(popuphandle,2,0,"打開")

result:=tmsadditem(popuphandle,3,0,"保存")

result:=tmsadditem(popuphandle,4,0,"-")

result:=tmsadditem(popuphandle,5,0,"打印")

result:=tmsadditem(popuphandle,5,1,"二級(jí)子菜單1")

result:=tmsadditem(popuphandle,5,2,"二級(jí)子菜單2")

result:=tmsadditem(popuphandle,5,3,"二級(jí)子菜單3")

result:=tmsadditem(popuphandle,5,4,"二級(jí)子菜單4")

result:=tmsadditem(popuphandle,6,0,"退出")

以上是設(shè)置子菜單的順序、級(jí)數(shù)、菜單項(xiàng)的名稱。

result:=tmsdisplaycontrol(popuphandle,cursorx,curs

ory,110,100,1)

菜單出現(xiàn)在坐標(biāo)為(cursorx,cursory)處,既出現(xiàn)在當(dāng)前光標(biāo)位置,菜單的尺寸為寬110、高100。

if (result="退出") then quit()

表示當(dāng)用戶選擇“退出”菜單后程序?qū)?zhí)行“quit(0)”語句。

這里是實(shí)現(xiàn)菜單響應(yīng)的關(guān)鍵。

5)在“主菜單”交互下的計(jì)算圖標(biāo)的內(nèi)容為:

popuphandle:=tmscreatepopuplist(windowhandle)——取得windows句柄

result:=tmsadditem(popuphandle,1,0,"新建")

result:=tmsadditem(popuphandle,1,1,"二級(jí)子菜單1")

result:=tmsadditem(popuphandle,1,2,"二級(jí)子菜單2")

result:=tmsadditem(popuphandle,1,3,"二級(jí)子菜單3")

result:=tmsadditem(popuphandle,1,4,"二級(jí)子菜單4")

result:=tmsadditem(popuphandle,2,0,"打開")

result:=tmsadditem(popuphandle,3,0,"保存")

result:=tmsadditem(popuphandle,4,0,"-")

result:=tmsadditem(popuphandle,5,0,"打印")

result:=tmsadditem(popuphandle,5,1,"二級(jí)子菜單1")

result:=tmsadditem(popuphandle,5,2,"二級(jí)子菜單2")

result:=tmsadditem(popuphandle,5,3,"二級(jí)子菜單3")

result:=tmsadditem(popuphandle,5,4,"二級(jí)子菜單4")

result:=tmsadditem(popuphandle,6,0,"退出")

以上是設(shè)置子菜單的順序、級(jí)數(shù)、菜單項(xiàng)的名稱。

result:=tmsdisplaycontrol(popuphandle,21,90,110,100,1)

菜單出現(xiàn)在坐標(biāo)為(21,90)處,菜單的尺寸為寬度110、高度100。

if (result="退出") then quit()

表示當(dāng)用戶選擇“退出”菜單后程序?qū)?zhí)行“quit(0)”語句。

其語句與“rightmousedown=true”交互下的計(jì)算圖標(biāo)的內(nèi)容相似。

4.1.14  如何在文本響應(yīng)時(shí)自動(dòng)調(diào)用
中文輸入法

在authorware中要調(diào)用中文輸入法,我們必須首先調(diào)用winapi.u32中的activatekeyboardlayout ( hkl hkl, uint flags)函數(shù)。

1)新建一個(gè)文件,取名為“調(diào)用輸入法.a7p”。

2)在流程線上放一交互圖標(biāo),取名為“調(diào)出輸入法”。選中它按【ctrl+=】快捷鍵在其交互圖標(biāo)上掛一個(gè)計(jì)算圖標(biāo),在其中輸入“activatekeyboard layout (-536606716, 0)”。作用是調(diào)出“智能abc”輸入法。

3)在交互圖標(biāo)的右側(cè)放一個(gè)群組圖標(biāo),選擇響應(yīng)類型為“文本響應(yīng)”,流程圖如圖4-20所示。

圖4-14  調(diào)用中文輸入法流程圖

4)保存并運(yùn)行程序,可以看到在文本輸入響應(yīng)時(shí),程序會(huì)自動(dòng)調(diào)用“智能abc”輸入法。

5)activatekeyboardlayout(-536606716, 0)中的-536606716是“智能abc”輸入法的句柄值。統(tǒng)計(jì)如表4-1所示。

表4-1  句柄值統(tǒng)計(jì)

名    稱

句  柄  值

王碼拼音輸入法5.0版

-534640636

王碼拼音輸入法5.0版

-534640636

王碼五筆輸入法4.5版

-534575100

微軟拼音輸入法2.0版

-535951356

全拼輸入法4.0版

-536803324

鄭碼輸入法4.0版

-536672252

智能abc標(biāo)準(zhǔn)輸入法5.0版

-536606716

五筆型輸入法98版

-534771708

五筆型輸入法86版

-535820284

王碼五筆畫輸入法5.0版

-534706172

english(american)

67699721

如你所用的輸入法不在其中,可用vb做一個(gè)小程序,程序中只放兩個(gè)控件,一個(gè)是按鈕,一個(gè)是文本框,其他屬性都不修改,在代碼窗口輸入如下內(nèi)容。

option explicit '聲明api讀取當(dāng)前輸入法的句柄函數(shù)。

private declare function getkeyboardlayout lib

 "user32" (byval dwlayout as long) as long

private sub command1_click()

dim hcurkbdlayout as long

hcurkbdlayout = getkeyboardlayout(0)

text1.text = hcurkbdlayout

end sub

運(yùn)行程序,單擊文本框,選中你所需要的輸入法,按下“command1”就會(huì)在文本框中顯示該輸入法的句柄值。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临潭县| 安康市| 开封县| 大兴区| 亚东县| 永清县| 五原县| 太仓市| 家居| 锡林郭勒盟| 霸州市| 新津县| 三门县| 宁都县| 紫金县| 林周县| 营口市| 蒲城县| 凤城市| 龙江县| 社旗县| 肥城市| 南京市| 军事| 读书| 潢川县| 永和县| 嘉荫县| 宁陕县| 瑞安市| 延川县| 襄汾县| 黑山县| 翁源县| 博湖县| 安丘市| 仁怀市| 永兴县| 赤壁市| 安庆市| 安西县|