公司的軟體要發布,要我做一個光碟片自啟動的,所以在看這個,收下來做個筆記。
1.首先要準備好素材:背景圖片、按鈕的移動聲音、按鈕的點擊聲音、裝飾圖案和啟動聲音等。首先建立一個Blank Project,在右側的Properties面板中將style項設為Image,(Properties面板是整個Project的屬性)然後在下放的Image選項中選擇你的背景圖片的位置。
2.第二步要加入標題,選中功能表列的Insert—Label加入標題,也可以選擇快捷按鈕中的 A 的那個按鈕或按Ctrl+2。在Settings標籤下的Object中的Text中輸入要顯示的標籤,Select Font可以設定字型字型大小。Alignment中可設定對齊。State Colors中設定正常情況下的顏色和移動到上面的醒目提示還有點擊時的顏色,本人在這裡將他們全部設為白色,可在Normal中設為白色,然後點擊Match Normal即可。
3.第三步添加按鈕,在左邊的Gallery面板中選擇第一個“插入按鈕”的表徵圖即可顯示軟體內建的素材庫,在其中選擇合適的按鈕拖拽到Project上。雙擊按鈕就可開啟其屬性面板Button Properties,也可以直接在右側的Properties面板中修改按鈕的參數。本人建議使用雙擊後的Button Properties面板,在Settings—Object—Text中輸入要顯示在按鈕上的文字,其它選項與標題設定的方法一樣。在Attributes—Properties—Object中可以設定按鈕的名稱和顯示效果,Postition可以設定按鈕的位置,Feedback中設定滑鼠移動到按鈕上的指標和顯示文字,Sounds—Highlight是滑鼠移動到按鈕上的聲音,Click是滑鼠點擊的聲音。Action標籤是最重要的,也就是點擊按鈕後運行程式的Action語言。分為On Click、On Enter、On Leave三種情況,我們主要用到On Click、On Leave。在On Click下點擊Add Action,會顯示New Action Wizard的對話方塊,在Step 1 -Choose a的下拉式功能表中選擇一種Action。例如我們要做一個軟體的安裝Action,那麼我們選擇File選項,在Step 2 - Choose an下的列表中會出現所有的File Action,我們選擇File.Run,它是運行一個檔案的Action,在列表的下面會出現一個蘭色的File.Run字型,點擊它可查看協助。然後點擊下一步,在Source中選擇你要串連的程式或資源,其他選項可忽略,點擊完成。當我們要做的程式需要拷貝檔案到安裝資料夾來註冊時,例如WinRAR3.2、Flashget1.4,我們要利用到On Leave這個標籤,選擇Add Action,Action類型選擇Shell,然後選擇Shell.GetFolder命令,這個命令我是要定位Progarm file檔案夾,因為WinRAR檔案夾是在Progarm file檔案夾下,我們無法直接拷貝到WinRAR檔案夾下。單擊下一步在Type中選擇SHF_PROGRAMFILES後完成。這時下面的命令列中會出現result = Shell.GetFolder(SHF_PROGRAMFILES);我們將result修改為DestFolder。然後再添加一個File.Copy的Action(方法相信大家都知道了),將Source的位置選擇為我們要拷貝的檔案,Destination設為DestFolder.."//WinRAR//"點擊完成(要注意引號)。這樣我們就可以完成檔案的拷貝了。
4.下面我們添加那個視窗,用Fireworks做出那個視窗然後點擊Insert—Image或使用快捷按鈕或Ctrl+4來插入它。然後用Object—Lock—Selection把它瑣定,這樣再調節視窗裡的圖片時就不會碰到它了。再用同樣的命令插入一個適當圖片作視窗裡的圖片。
5.最後用Insert—Hotspot插入一段文字,(Hotspot是用來插入段落的,而Label是插入標題的)將其調整到適當的位置。選擇Project—windos settings中的Width和Height調節寬度和高度。選擇Project—Audio Settings中的Add來添加一個啟動音效檔梢園湊兆約旱南埠媒瀋櫛坊蛘卟謊凡シ擰H綣閿凶齪玫鈉範箍梢訮roject—Startup Movie來設一個開場動畫(Flash也可以啊!)最後用F5預覽一下就可以用F7產生了,注意產生時在Build & Publish Target下選Hard Drive Folder,然後選擇你要製作的光碟片檔案夾就行了。
對了,你也可以直接開啟軟體內建的摸板看看它的Action是怎麼編寫的,總之英語好的人佔便宜了,像我這樣的看協助時是連猜帶蒙的,如果我上面有什麼說的不對請指正。其實這個軟體的Action很強大,可以做出很多不同用途的啟動介面,有興趣的可以看看他的協助,我用的這些也是從協助中學來得,其他的Action我還沒試過,相信大家的想象力比我豐富,肯定能做出更好的。祝你成功!哎,打了好半天,該歇會兒了!
如果不喜歡軟體內建的按鈕可以用Photoshop做好按鈕的圖片(起碼要有兩種狀態:正常;按下;)儲存成.png檔案(因為png檔案支援透明背景),這樣在AutoPlay Media Studio Professional中內建的按鈕編輯工具中就可以做出個人化的按鈕了,當然也可以用Photoshop做出一張帶有選項的背景,通過AutoPlay Media Studio Professional的熱點來編輯也可以達到個人化選擇菜單的效果。
文章中少了Browse CD和Exit CD的做法,另外在Easyboot專題看到有人問標題動畫的問題,就一起說說。如若有誤,請大家指正!
1、加入標題動畫的方法是選擇project—startup movie,然後在彈出的對話方塊中將play startup moive選中。在startup movie裡選擇標題動畫是Video格式,還是flash格式。在filename中選擇動畫的位置。在Window Size中選擇視窗是否全屏,或者是自訂大小。Media Size是選擇媒體的大小,Fit to Window是適合視窗大小。style是一些風格設定。
見圖1
2、Browse CD是瀏覽光碟片內容按鈕,方法是在Actions中點擊add action,選擇File中的ExploreFolder命令。然後單擊“下一步”,通過選擇DefaultFolder來設定你的預設瀏覽目錄。
我的命令如下:
File.ExploreFolder("AutoPlay", SW_SHOWNORMAL);
3、Exit CD是退出按鈕,方法是在Action中點擊add action,選擇Application中的Application.Exit()即可。
子介面跳轉功能:
見圖2
播放按鈕代碼如下:
Audio.Load(CHANNEL_USER1, "AutoPlay//Audio//The Woods (short).ogg", false, false);
Audio.Play(CHANNEL_USER1);
"AutoPlay//Audio//The Woods (short).ogg", 是你想要播放的檔案名稱.代碼含義就是先找到要播放的檔案,然後播放.
暫停按鈕代碼如下:
Audio.Stop(CHANNEL_USER1);
AutoPlay Media Studio Professional v5.0的部分Action解釋
以下是關於Application的部分Actions(未完)
(1).Application.Exit
關閉視窗
例:關閉自動運行介面
Application.Exit();
(3).Application.GetLastError
返回最終錯誤碼(單獨使用無實際效果,與Dialog.Message聯合使用)
例:返回最終錯誤碼付給nError變數
nError = Application.GetLastError();
可以與if判斷和Dialog.Message命令連用:
列印這個AutoPlay/Docs/MyFile.pdf檔案;並檢查Action執行是否有錯誤,將錯誤碼返回給error變數,如果錯誤碼不等於0(也就是有錯誤)即用一個對話方塊顯示出來.
File.Print("AutoPlay//Docs//MyFile.pdf");
error = Application.GetLastError();
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
end
錯誤碼範圍:
(9999) 未知錯誤碼
(1000-1099) 檔案相關錯誤
(1100-1199) 命令屬性相關錯誤
(1200-1299) 聲音相關錯誤
(1300-1399) 頁相關錯誤
(1400-1499) 狀態對話方塊相關錯誤
(1500-1599) INI 檔案相關錯誤
(1600-1699) 註冊相關錯誤
(1700-1799) ListBox相關錯誤
(1800-1899) 系統相關錯誤
(1900-1999) 文字檔相關錯誤
(2000-2099) Window相關錯誤
(2100-2199) 磁碟機相關錯誤
(2200-2299) 檔案夾Action相關錯誤
(2300-2399) Shell Action相關錯誤
(2400-2499) DLL相關錯誤
(2500-2599) HTTP相關錯誤
(2600-2699) 壓縮檔相關錯誤
(2700-2799) 提示框相關錯誤
(2800-2899) Application相關錯誤
(2900-2999) 內部功能相關錯誤
(3000-3099) 字串相關錯誤
(7).Application.LoadScript
讀取lua指令檔
例:讀取AutoPlay/Scripts/AddedFunctionality.lua指令碼
Application.LoadScript("AutoPlay//Scripts//AddedFunctionality.lua");
(9).Application.Minimize
最小化介面
例:最小化介面
Application.Minimize();
(10).Application.Restore
還原介面
例:還原介面
Application.Restore();
(11).Application.RunScriptFile
運行lua指令碼
例:運行MyScript.lua指令檔
Application.RunScriptFile(_SourceFolder.."//MyScript.lua");
============================================================
以下是所有關於File.的Action:
1、File.Copy
拷貝目標檔案到指定目錄
例:File.Copy("C://MyDir//*.*", "C://DestDir//", true, true, false, true, nil);
2、File.Delete
刪除目標檔案
例:File.Delete("C://MyDir//MyFile.ext", false, false, false, nil);
3、File.DeleteOnReboot
在下次啟動時刪除目標檔案
例:File.DeleteOnReboot("C://MyDir//MyFile.ext");
4、File.DoesExist
判斷目標檔案存在與否,存在擷取“真”值,反之擷取“假”值。(單獨使用無效果,與Dialog.Message等聯合使用)
例:are_ya_there = File.DoesExist(_WindowsFolder.."//system.ini");
5、File.ExploreFolder
檔案夾瀏覽
例:File.ExploreFolder("C://Documents and Settings", SW_MAXIMIZED);
6、File.Find
在本地硬碟上尋找檔案(單獨使用無效果,與Dialog.Message等聯合使用)
例:found = File.Find( Shell.GetFolder(SHF_MYDOCUMENTS), true, false, "*.pdf");
if (found) then
Dialog.Message("Found one!", "The first PDF file found was:" .. found[1]);
7、File.GetAttributes
擷取目標檔案系統屬性(單獨使用無效果,要與其他命令聯合使用)
例:attrib = File.GetAttributes( _TempFolder .. "//MyTempFile.tmp" );
bReadOnly = attrib.ReadOnly;
strCreationDate = attrib.CreationDate;
8、File.GetCRC
對目標檔案擷取一個CRC值(用於下載後檢查檔案,單獨使用無效果,與File.Run和Dialog.Message聯合使用)
例:crc_value = File.GetCRC(_TempFolder.."//setup.exe");
if crc_value == 824907888 then
File.Run(_TempFolder.."//setup.exe", "", "", SW_SHOWNORMAL, true);
else
result = Dialog.Message("Error", "The downloaded file is incomplete. Please try downloading again.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
9、File.GetDefaultViewer
擷取目標檔案類型的開啟檔案(單獨使用無效果,要與其他命令聯合使用。本例為擷取jpg的預設開啟檔案)
例:result = File.GetDefaultViewer(".jpg");
10、File.GetShortName
對長檔名檔案擷取一個DOS 8.3檔案名稱(單獨使用無效果,個人認為要與別的命令聯合使用)
例:short_version = File.GetShortName ("C://Program Files//AutoPlay Media Studio 5.0//ams50.exe");
結果:C:/PROGRA~1/AUTOPL~1/ams50.exe
11、File.GetSize
擷取目標檔案大小(單獨使用無效果,要與其他命令聯合使用)
例:file_size = File.GetSize(_TempFolder .. "//setup.exe");
12、File.GetVersionInfo
擷取目標檔案的版本資訊(單獨使用無效果,要與其他命令聯合使用,將擷取的資訊付給其他函數)
例:version_info = File.GetVersionInfo( _ProgramFilesFolder .. "//Doopernator//Doopernator.exe");
13、File.Install
向系統安裝DLL檔案(可與Dialog.Message、Application.GetLastError聯合使用,下例就是將成功安裝付給函數且用Application.GetLastError擷取失敗錯誤,然後判斷安裝成功與否,如果失敗,用Dialog.Messag輸出錯誤資訊)
例:success = File.Install("AutoPlay//Docs//cooltoy.dll", _SystemFolder.."//cooltoy.dll", FILE_INSTALL_ALWAYS );
error = Application.GetLastError();
if success == false then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
14、File.Move
移動目標檔案到指定目錄(註:_TempFolder為temp檔案夾、_ProgramFilesFolder ..為Program Files檔案夾、_WindowsFolder..為系統檔案夾)
例:File.Move("AutoPlay//Docs//*.txt", _TempFolder .. "//Text Files", false);
15、File.MoveOnReboot
在下次啟動時移動檔案到指定目錄
例:File.MoveOnReboot(_TempFolder .. "//setup.exe", "C://setup.exe");
16、File.Open
開啟文檔檔案(如果指向exe檔案,預設會將exe檔案拷到AutoPlay//Docs//內再執行)如要播放視頻檔案就要用此命令,File.Run 無法實現。
例:File.Open("AutoPlay//Docs//ad4.92.exe", "", SW_SHOWNORMAL);
17、File.OpenEmail
發送郵件(還可以加標題)
例:File.OpenEmail("[url=mailto:yu346704@sohu.com]yu346704@sohu.com[/url]");
File.OpenEmail("[url=mailto:yu346704@sohu.com]yu346704@sohu.com[/url]?subject=Good luck", SW_SHOWNORMAL);
18、File.OpenURL
用預設瀏覽器開啟網頁
例:File.OpenURL("www.baidu.com", SW_MAXIMIZE);
19、File.Print
列印文檔
例:File.Print("AutoPlay//Docs//1.txt");
20、File.Rename
重新命名指定檔案檔案名稱(可以用來做批次檔)
例:File.Rename("C://1.txt", "C://2.exe");
21、File.Run
運行檔案(直接在原目錄中執行,用來做啟動介面裡的軟體安裝)
例:File.Run("AutoPlay//Docs//ezb456cn-s.exe", "", "", SW_SHOWNORMAL, false);
22、File.RunOnReboot
在下次啟動時運行目標檔案
例:File.RunOnReboot(_TempFolder .. "//setup.exe", "/W");
23、File.SetAttributes
設定目標檔案的系統屬性(首先可用File.GetAttributes擷取屬性,然後修改屬性,亦可直接建立一個空屬性,用attrib = {};替換第一句。)
一定要注意 = 前用什麼函數(本例為attrib)後面的屬性前也要一致(attrib.ReadOnly、attrib.Hidden),最後設定屬性時也要用相同的函數("C://COMMAND.COM", attrib)
例:attrib = File.GetAttributes("C://COMMAND.COM");
attrib.ReadOnly = true;
attrib.Hidden = true;
File.SetAttributes("C://COMMAND.COM", attrib);
========================================================
以下是關於Dialog.部分的Action
1、Dialog.FileBrowse
彈出尋找檔案對話方塊
例:result = Dialog.FileBrowse(true, "Locate File", _DesktopFolder, "All Files (*.*)|*.*|", "", "dat", false, false);
2、Dialog.FolderBrowse
彈出瀏覽檔案夾對話方塊(只能看到檔案夾一級,無法看到檔案夾中的內容)
例:result = Dialog.FolderBrowse("Please select a folder:", "AutoPlay//Docs");
3、Dialog.Input
彈出輸入對話方塊
例:result = Dialog.Input("Enter Data", "Your answer:", "", MB_ICONQUESTION);
4、Dialog.MaskedInput
按照指定格式輸入資料((###) ###-####為指定格式,2045559923為預設資料)
例:result = Dialog.MaskedInput("Enter Data", "Your phone number:", "(###) ###-####", "2045559923", MB_ICONQUESTION, " ");
5、Dialog.Message
彈出警告資訊
例:Dialog.Message("Failure", "The file on your system is not valid.");
6、Dialog.PasswordInput
輸入密碼對話方塊(輸入內容為*號,與Application.Exit()聯合使用可完成密碼確認,下例是將valid作為密碼並付給real_password,利用Dialog.PasswordInput輸入一個密碼付給user_password,如果等於real_password則進入介面,否則利用Application.Exit()退出該介面)
特別注意:(以下是一個if的判斷語句的標準格式,中間一行的xxxx;是滿足判斷後執行的命令,由於是命令所以要帶“;”號。本例的前兩句是付值語句,是將valid付給real_password,將使用者輸入的內容付給user_password)
if xxxx ~= xxxx then
xxxx;
end
例:real_password = "valid";
user_password = Dialog.PasswordInput("Password", "Please enter the password: ", MB_ICONQUESTION);
if real_password ~= user_password then
Application.Exit();
end
7、Dialog.SplashFlash
顯示一個Flash提示框(下例中的10是顯示持續的時間)
例:Dialog.SplashFlash("AutoPlay//Flash//Intro.swf", 10, false);
8、Dialog.SplashImage
顯示一個圖片(下例中的10是顯示持續的時間)
例:Dialog.SplashImage("AutoPlay//Images//d370.jpg", 10, true);
9、Dialog.SplashVideo
顯示一個視頻(下例中的10是顯示持續的時間,對mpg格式支援良好,本人試了試avi,出現了跳楨現象?)
例:Dialog.SplashVideo("AutoPlay//Videos//Magnolia.mpg", 10, true);
10、Dialog.TimedMessage
顯示一個等待提示框(類似軟體安裝時彈出的提示框,下例中的2000為期間)
例:Dialog.TimedMessage("Please Wait...", "Working...", 2000, MB_ICONINformATION);
其實Dialog.命令大部分都是與其他命令配合使用時才能發揮最佳效果,例如Dialog.Input、Dialog.SplashVideo、Dialog.TimedMessage等都只能提供一個提示框或其他類似提示,如果不與其他命令配合,輸入資料和提示視頻、動畫以及等待資訊等等就都沒有什麼實際意義了。
================================================================
以下所有關於Folder.的Action:
Folder.Create
建立檔案夾
例:Folder.Create("C://Stored");
Folder.Delete
刪除檔案夾(空)
例:Folder.Delete("C://Stored");
Folder.DeleteTree
刪除檔案夾及其內容
例:Folder.DeleteTree("C://Stored", nil);
Folder.DoesExist
檢查檔案夾是否存在並返回“真/假”值,若存在返回“真”,不存在返回“假”。(單獨使用無效果,與Dialog.Message等聯合使用)
例:檢查ProgramFiles檔案夾是否存在,並返回提示.
does_exist = Folder.DoesExist(_ProgramFilesFolder);
if does_exist then
Dialog.Message("Notice", "Yes, the folder does exist on your system.", MB_OK, MB_ICONINformATION);
else
Dialog.Message("Notice", "No, the folder does not exist on your system.", MB_OK, MB_ICONINformATION);
end
Folder.Find
在本地系統上尋找檔案夾
例:found = Folder.Find( Shell.GetFolder(SHF_MYDOCUMENTS),"Plant Data", false);
if (found) then
Dialog.Message("Found one!", "The first folder found was:" .. found[1]);
end
Folder.GetCurrent
返回目前的目錄的值賦給函數
例:current_dir = Folder.GetCurrent( );
Folder.Rename
重新命名檔案夾
例:Folder.Rename("C://Stored", "C://OldStored"); 註:Stored為舊檔案夾名,OldStored為新檔案夾名。
Folder.SetCurrent
設定目前的目錄
例:Folder.SetCurrent("AutoPlay//Docs");
=====================================================================
以下是關於Paragraph的部分Actions(未完)
Paragraph.SetVisible
設定段落是否可見,Ture值為可見,False為不可見。可用於滑鼠移入按鈕時顯示段落文字,移出時段落消失的互動效果。
例:在按鈕Action中的On Enter標籤中如下設定,為滑鼠移入按鈕時顯示段落文字.
Paragraph.SetVisible("Paragraph1", true);
在按鈕Action中的On Leave標籤中如下設定,為滑鼠移出時段落消失.
Paragraph.SetVisible("Paragraph1", false);
======================================================================
以下是關於Shell部分的相關Actions
1、Shell.CreateShortcut
建立捷徑
例:在案頭上建立一個指向C:/Program Files/MyApp/app.exe的捷徑,使用C://Program Files//MyApp//app.ico的表徵圖.
Shell.CreateShortcut(_DesktopFolder, "My Shortcut", "C://Program Files//MyApp//app.exe", "", "", "C://Program Files//MyApp//myicon.ico", 0, SW_MAXIMIZE);
2、Shell.DeleteShortcut
刪除捷徑
例:刪除剛才建立的捷徑
Shell.DeleteShortcut(_DesktopFolder, "My Shortcut");
3、Shell.Execute
執行操作
例:將My Documents目錄付給My_Docs變數;然後編輯My Documents中的CompanyInfo.htm網頁檔案
MyDocs = Shell.GetFolder(SHF_MYDOCUMENTS);
Shell.Execute(MyDocs .. "//CompanyInfo.htm", "edit", "", "", SW_SHOWNORMAL);
4、Shell.GetFolder
設定目錄變數
例:將My Documents目錄付給My_Docs變數
My_Docs = Shell.GetFolder(SHF_MYDOCUMENTS);
=======================================================================
以下是關於zip部分的Actions
1、Zip.Add
添加檔案到壓縮檔
例:將AutoPlay/Docs/Prices.txt和Catalog.txt添加到C:/CompanyInformation/Info.zip檔案中,將兩個檔案先付值給FileTable變數,這樣可以用一個Zip.Add命令添加這兩個檔案.
FileTable = {_SourceFolder.."//AutoPlay//Docs//Prices.txt", _SourceFolder.."//AutoPlay//Docs//Catalog.txt"};
Zip.Add("C://CompanyInformation//Info.zip", FileTable, false, "", 5, nil);
2、Zip.Extract
解壓縮檔案
例:解壓AutoPlay/Docs/graphics.zip中的所有檔案到C:/Graphics目錄中
Zip.Extract("AutoPlay//Docs//graphics.zip", {"*.*"}, "C://Graphics", true, true, "", 3, nil);
3、Zip.GetContents
返回壓縮檔內容資訊(單獨使用無實際效果,得到傳回值)
例:得到AutoPlay/Docs/Info.zip內容列表並付值到zip_contents變數中.
zip_contents = Zip.GetContents("AutoPlay//Docs//Info.zip", true);