麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 媒體動畫 > 正文

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

2024-09-08 19:26:42
字體:
來源:轉載
供稿:網友

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

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

2)放置一計算圖標于流程線上。

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

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

5)雙擊計算圖標,在里面輸入如下程序語句:

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

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

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

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

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

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

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

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

4.1.9  用budeky.u32屏蔽功能鍵

設計程序時,因為某些特殊需要,有時可能需要屏蔽系統的某些功能鍵,比如【alt+tab】、【alt+f4】、【ctrl+q】等。本例中就使用budeky.u32中的函數來屏蔽某些功能鍵,所使用的函數有:

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()函數屏蔽的功能鍵。

4)restoreswitching()

格式:restoreswitching()

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

具體步驟如下。

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

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

在“初始化”圖標中輸入以下內容。

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

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

設置演示窗口標題欄的名稱為“屏蔽功能鍵”

2)打開交互圖標,輸入圖4-8所示的內容,調整好按鈕的相對位置。

圖4-8  交互圖標中的顯示對象

3)在“屏蔽功能鍵”按鈕交互分支下的計算圖標中輸入以下內容:

disableswitching()

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

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

systemmessagebox(windowhandle,hint , "屏蔽功能

鍵", 48) -- 1=ok

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

技巧:因字符串需要加雙引號,而在提示信息中由于也有雙引號,所以必須在內部每個雙引號前加轉意字符“/”。第一個和最后一個雙引號當然是不能加的。

4)在“屏蔽退出鍵”按鈕交互分支下的計算圖標中輸入以下內容:

disablequit( windowhandle )

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

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

鍵",48) -- 1=ok

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

5)在“解除屏蔽”按鈕交互分支下的計算圖標中輸入以下內容:

--解除各鍵的屏蔽!

restorequit()

restoreswitching()

hint:="各鍵已經解除屏蔽!"

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

48) -- 1=ok

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

6)在“退出” 按鈕交互分支下的計算圖標中輸入以下內容:

--退出程序前解除屏蔽

restoreswitching()

restorequit()

quit()

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

7)運行程序,標題欄發生了變化。單擊“屏蔽功能鍵”按鈕出現如圖4-9所示的信息。

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

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

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

setwindowpos:這個函數能為窗口指定一個新位置和狀態。它也可改變窗口在內部窗口列表中的位置。

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

其中的參數意義如下。

hwnd:欲設置的窗口的句柄。

hwndinsertafter:窗口句柄。在窗口列表中,欲設置的窗口hwnd會置于這個窗口句柄的后面。這個參數也可能取下面的值:

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

0——將窗口置于z序列的頂部;z序列代表在分級結構中,窗口針對一個給定級別的窗口顯示的順序。

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

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

x:窗口新的x坐標。

y:窗口新的y坐標。

cx:新的窗口寬度。

cy:新的窗口高度。

wflags取值如下:

1——保持當前大小(cx和cy會被忽略)。

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

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

8——窗口不自動重畫。

10——不激活窗口。

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

64——顯示窗口。

128——隱藏窗口。

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

4.1.11  用altools.u32函數動態改變屏幕
分辨率,讓課件實現全屏播放

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

一、加載函數

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

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

2)alhidetaskbar:隱藏任務欄。

3)alshowtaskbar:顯示任務欄。

二、編寫程序

1)拖動一個計算圖標到流程線上,命名為“初始化”,打開并輸入以下語句:

userscreenwidth=screenwidth--保存用戶監視器的

寬度

userscreenheight=screenheight--保存用戶監視器的

高度

userscreendepth=screendepth--保存用戶監視器的顏

色深度

alhidetaskbar()--隱藏任務欄

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

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

2)將整個課件作為一個整體放在計算圖標“初始化”下。現在我們用一個等待圖標來代替。

3)再拖動一個計算圖標到流程線上,命名為“退出”,打開并后輸入以下語句:

alshowtaskbar()--顯示任務欄

alchangeres(userscreenwidth,userscreenheight,user

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

quit()--退出

運行程序,這時我們可以看到,在運行初期已經改變了屏幕分辨率,而且是全屏播放。當退出時,又改回到原來的分辨率。


4.1.12  用midiloop.u32函數播放midi
聲音文件

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

1)循環播放midi背景音樂

在這里我們要實現的目的是讓midi背景音樂循環的播放,具體思路是通過導入authorware的外部函數midiloop.u32相關的兩個擴展函數,實現對midi背景音樂的循環播放。

在介紹范例前,我們簡單介紹一下midiloop.u32的相關擴展函數:

result:=loopmidi(file)

這個函數的功能是對程序指定的midi音樂進行循環播放,直到用戶中止為止。其中,參數file就是用戶自行指定的外部midi文件,當然,這里指定的midi聲音文件并沒有導入程序內部,只是存在一種相當于鏈接的關系。

result:=stopmidi()

這個函數的功能是停止當前正在播放的midi音樂,參數為void型。

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

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

3)操作步驟介紹如下。

①新建一個文件,并調入外部函數midiloop.u32的相關擴展函數,loopmidit和stopmidi。

② 加入一個計算機,設置運行窗口的大小,計算圖標的內容為:

resizewindow(320,240) ——resizewindow是一個系統函數,設置窗口的大小

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

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

③設置對midi音樂的開關控制以及程序的退出。分別建立三個button按鈕響應交互,返回類型設置如圖4-16所示。

在“暫停”按鈕響應交互計算圖標里輸入代碼:

stop:=1

stopmidi()

在“播放”按鈕響應交互計算圖標里輸入代碼:

if stop=1 then

loopmidi(filelocation^"midi.mid")

stop:=0

end if

在“退出”按鈕響應交互計算圖標里輸入代碼:

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

quit()——退出程序。

④存盤完成。

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

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

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

制作步驟介紹如下。

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

圖4-11  下拉菜單效果圖

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

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

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

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

4)用鼠標右鍵快捷菜單的制作,屬性設置條件響應為“rightmousedown=true”,即表示當鼠標右鍵按下時響應。

5)在“rightmousedown=true”交互下的計算圖標的內容為:

popuphandle:=tmscreatepopuplist(windowhandle)

——取得windows句柄。

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

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

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

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

result:=tmsadditem(popuphandle,1,4,"二級子菜單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,"二級子菜單1")

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

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

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

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

以上是設置子菜單的順序、級數、菜單項的名稱。

result:=tmsdisplaycontrol(popuphandle,cursorx,curs

ory,110,100,1)

菜單出現在坐標為(cursorx,cursory)處,既出現在當前光標位置,菜單的尺寸為寬110、高100。

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

表示當用戶選擇“退出”菜單后程序將執行“quit(0)”語句。

這里是實現菜單響應的關鍵。

5)在“主菜單”交互下的計算圖標的內容為:

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

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

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

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

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

result:=tmsadditem(popuphandle,1,4,"二級子菜單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,"二級子菜單1")

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

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

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

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

以上是設置子菜單的順序、級數、菜單項的名稱。

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

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

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

表示當用戶選擇“退出”菜單后程序將執行“quit(0)”語句。

其語句與“rightmousedown=true”交互下的計算圖標的內容相似。

4.1.14  如何在文本響應時自動調用
中文輸入法

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

1)新建一個文件,取名為“調用輸入法.a7p”。

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

3)在交互圖標的右側放一個群組圖標,選擇響應類型為“文本響應”,流程圖如圖4-20所示。

圖4-14  調用中文輸入法流程圖

4)保存并運行程序,可以看到在文本輸入響應時,程序會自動調用“智能abc”輸入法。

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

表4-1  句柄值統計

名    稱

句  柄  值

王碼拼音輸入法5.0版

-534640636

王碼拼音輸入法5.0版

-534640636

王碼五筆輸入法4.5版

-534575100

微軟拼音輸入法2.0版

-535951356

全拼輸入法4.0版

-536803324

鄭碼輸入法4.0版

-536672252

智能abc標準輸入法5.0版

-536606716

五筆型輸入法98版

-534771708

五筆型輸入法86版

-535820284

王碼五筆畫輸入法5.0版

-534706172

english(american)

67699721

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

option explicit '聲明api讀取當前輸入法的句柄函數。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: wwwcom国产 | 99ri精品| 精品国产一级毛片 | videos高潮 | 成人在线视频免费播放 | 欧美中文字幕一区二区 | 毛片一级视频 | 毛片在线免费播放 | 亚洲网站免费观看 | 黄色毛片一级视频 | 久草在线观看福利视频 | 国产精品久久久久久久久久 | 中文字幕亚洲情99在线 | 免费的毛片 | 在线亚洲播放 | 成码无人av片在线观看网站 | 成人精品免费在线观看 | 27xxoo无遮挡动态视频 | 九九热在线免费观看视频 | 久久国产亚洲视频 | 国产一精品久久99无吗一高潮 | 中国精品久久 | 一级黄色免费观看视频 | 私库av在线免费观看 | 永久免费av在线 | 在线看免电影网站 | av在线一区二区三区 | 中文字幕一区二区三区四区 | 精品一区二区三区免费 | 日本教室三级在线看 | 久久久久久久久浪潮精品 | 亚洲成人在线视频网站 | japan护士性xxxⅹhd | 精品国产一二区 | 黄色淫片| 97色在线观看免费视频 | 亚洲国产一区二区三区 | 夜添久久精品亚洲国产精品 | 一区视频 | 欧美日韩成人一区二区 | 国产精品午夜在线观看 |