圖1
圖2
1、首先創建一個名為“注冊.a5p”的文件,打開后先去掉標題欄和菜單欄,然后引入一個計算圖標,命名為“判斷”。
打開“判斷”計算圖標,輸入如下內容:
resizewindow(306, 226)--初始化窗口
g_ma:=readextfile(filelocation^"/hwnum.txt")--讀取機器碼文件信息并存入變量g_ma
if g_ma>0 then
path:=1
else
path:=2--根據注冊碼值進行判斷,選擇分支流程
end if
這樣,當用戶每次執行程序時,都會由第一個計算圖標來判斷本軟件是否存在機器碼,然后再通過決策分支路徑來決定程序的走向(機器碼產生后不會改變,除非機器碼信息文件不存在。)。
2、拖動一個決策圖標到“判斷”計算圖標下,雙擊打開決策屬性設置對話框進行如下設置:“重復”一項設置為“不重復 ”、“分支 ”一項設置為“計算分支結構”,下面輸入變量“path”,用于控制流程走向。具體說來就是:如果此程序存在機器碼,則執行“path:=1”所對應的第一條分支,否則,執行“path:=2”所指定的第二分支生成一個機器碼和對應的注冊碼文件。
3、在決策圖標右側放置兩個群組圖標,分別命名為“存在”、“不存在”。
打開“不存在”群組圖標,在第二級流程線上拖放兩個計算圖標,分別命名為“生成信息文件”、“跳轉到判斷”。其中,“生成信息文件”計算圖標中的內容如下:
snword1:="h w t h e q u w c"--原始密碼信息,記得一定要用空格隔開,否則authorware會將其看作是一個字符串
snword2:="k b r o 9 n f o x"
snword3:="j u m p e d 0 v z"
snword4:="r 3 g i 1 a 7 y d"
snnumber:="0 1 2 3 4 5 6 7 8 9"
m:=random(1,9,1)--隨機取數,并賦值給自定義變量,用于生成機器碼和對應的注冊碼文件。
n:=random(1,9,1)
o:=random(1,9,1)
p:=random(1,9,1)
q:=random(1,10,3)
r:=random(2,10,1)
s:=random(3,10,2)
t:=random(4,10,1)
sn1:=getword(m, snword1)--在對應字串中取得字符并賦值給自定義變量
sn3:=getword(n, snword2)
sn4:=getword(o, snword3)
sn7:=getword(p, snword4)
sn2:=getnumber(q, snnumber)
sn5:=getnumber(t, snnumber)
sn6:=getnumber(s, snnumber)
sn8:=getnumber(r, snnumber)
writeextfile(filelocation^"http://hwnum.txt", m^n^o^p^q)--機器碼信息
writeextfile(filelocation^"http://hwsb.txt", r^s^t)--識別碼信息
writeextfile(filelocation^"http://hwreg.txt", sn1^sn2^sn3^sn4^sn5^sn6^sn7^sn8)--注冊信息(軟件序列號)
(注意:這兒的文件路徑可以任意改變,文件名也可以改變,如可以改成擴展名為ocx或dll的文件,這樣更安全。在這兒之所以存為txt文本,只是為了方便大家進行驗證。還要注意的是,原始密碼信息中的字符記得一定要用空格空開,否則authorware會將其作為一個字串對待,切記莫忘!)
跳轉圖標中只需加一句goto語句即可。
4、雙擊“存在”群組圖標。在打開的“存在”群組圖標中拖放一個計算圖標,將其命名為“讀取注冊信息”,在其中輸入:
sntext:=readextfile(filelocation^"/hwreg.txt")--讀取原始注冊碼信息并賦值給變量sntext
hwreg:=readextfile(filelocation^"/hwreg.ocx")--讀取用戶注冊碼輸入信息并賦值給變量hwreg
if sntext=hwreg then --判斷確定流程走向
path1:=1
else
path1:=2
end if
5、在“讀取注冊信息”計算圖標下放置一個決策圖標,屬性設置同第2步,只是將變量path換為path1即可。
在決策圖標右側放置兩個群組圖標,將它們分別命名為“已注冊”和“未注冊”,其中“已注冊”為空群組,不需設定。
6、打開“未注冊”群組圖標,在其第三級流程線上放置三個顯示圖標并分別命名為“顯示機器碼”、“注冊聲明”和“按鈕”。打開“顯示機器碼”顯示圖標,在其中適當位置輸入“本機的機器碼為:{g_ma} 識別碼為:{sb_ma}”(不包括雙引號,大括號要在英文狀態下輸入。)和相關信息。
(友情提醒:點擊“文本”→“定義風格(d)…”或按“ctrl”+“shift”+“y”快捷鍵,在打開的定義風格對話框中新建一風格,并將數字格式對話框中的“顯示數千/u25968數百萬隔離”復選框前的勾去掉,以防在千分位顯示逗號),至于“注冊聲明”圖標中的內容,各位可以自由發揮。而“按鈕”顯示圖標中的內容是圖1中的三個按鈕文本信息,在下面用熱區交互響應。
選中“顯示機器碼”顯示圖標,按“ctrl+=”快捷鍵,在隨后彈出的計算圖標中輸入以下內容:
sntext:=readextfile(filelocation^"/hwreg.txt")--讀取原始注冊信息
l:=readextfile(filelocation^"/trynum.txt")--讀取試用次數信息并賦值給l
if l<10 then--加這一語句主要是為了獲得用戶使用次數,使程序更真實、貼近實際。為此,我可是費了一番周折的喲。
x_path:=1
else
x_path:=2
end if
7、在下面加入一個決策圖標,設置同上,只是將變量改為x_path即可。在其右側分別放置一個“畫線”計算圖標和一個空群組圖標,在計算圖標中輸入以下內容:
setframe(1,16711680)--設置線的顏色
if l<0 then l:=0--當l<0時,l值始終為0
line(14,30,213,11+(10-l)*19,213)--畫線,線的位置看情況而定。
在決策圖標下再放置一個顯示圖標,在其中輸入:剩余{l}次使用機會,用于顯示剩余次數。
8、在“剩余次數”顯示圖標下放置一個“注冊碼輸入”交互圖標,將其屬性設置為“更新變量”和“最優顯示”,其余默認。打開“注冊碼輸入”交互圖標,再要顯示用戶注冊碼輸入信息的地方輸入:{sndisplayed},也就是圖1中的輸入注冊碼方框處。
交互圖標右邊的第一按鍵響應圖標“backspace”屬性設置如下:激活條件為charcount(sndisplayed)>0,擦除為“在下一次輸入之后”。
其計算圖標輸入的內容如下:
snentry:=substr(snentry,1,charcount(snentry)-1)
sndisplayed:=substr(sndisplayed,1,charcount(sndisplayed)
9、交互圖標右邊的第一按鍵響應圖標“?”屬性設置如下:激活條件為charcount(sndisplayed)<9(用于控制用戶輸入的最大字符數),擦除為“在下一次輸入之后”。
其計算圖標輸入的內容如下:
snentry:=snentry^key--自定義變量snentry用于存放用戶輸入信息
sndisplayed:=sndisplayed^"*"--“*”為密碼顯示字符
10、“注冊”熱區交互屬性設置為:永久交互、激活條件為ok<>1、退出交互。
其計算圖標中的內容為:
if snentry=sntext then--判斷注冊碼信息與用戶輸入信息是否相同,以此來決定流程走向。
path2:=1
ok:=1
else
path2:=2
end if
11、“試用”熱區交互屬性設置為:永久交互、激活條件為l>0。對應計算圖標中的內容為:
eraseall()
goto(iconid@"主程序")
(在“試用”交互屬性中將激活條件設為:l>0,這樣就可以在用戶使用10次后不響應“試用”交互,必須輸入正確的注冊碼后才可繼續使用,這樣就可達到限制試用次數的功能。)
“再說吧”熱區交互下的計算圖標中的內容為:
quit()
12、在交互圖標下放置一決策圖標,并在決策圖標右側加入“真確”和“錯誤”兩個群組圖標。決策屬性設置同上,只將變量改為path2即可。
在“真確”群組圖標中放置一個“寫入注冊文件”計算圖標,雙擊打開后輸入:
writeextfile(filelocation^"/hwreg.ocx",sntext)--用戶輸入信息存入文檔保存
“錯誤”群組圖標中放置一個顯示圖標用于錯誤提示,再加一個等待圖標限時2秒,最后再添一個計算圖標用goto語句跳轉到“注冊碼輸入”交互圖標即可。
最后記得,在第一級流程上放置一“主程序”群組用于放課件內容,再在“主程序”群組上附著一個計算圖標(按ctrl+=快捷鍵),在其中輸入:
l:=l-1
writeextfile(filelocation^"/trynum.txt",l)
用于記錄用戶試用次數。
至此,整個注冊程序設計完成了,最終流程圖見圖2。怎么樣,沒有用到一個外部函數就做出了不錯的注冊程序,authorware沒有我們想象的那么菜吧?如果加以適當修改,效果會更眩。不過,在此給出這個源程序并不是讓大家就真的去收費,只是向大家展示一下另類的課件制作方法,以此說明我們的authorware不只是一個簡單的多媒體制作軟件,同時也從一個側面展示了函數的魅力。只要你敢與幻想、勇于嘗試,你會有更好的更有價值的創意。為了我們課件的明天,大家一起努力吧!(不過要記得,如果有有朝一日,您的課件真的拿出來與人“共享”了,課件的水平也得跟上哦。
新聞熱點
疑難解答