Luar's Flash Playground:修改Screenweaver Uninstaller來支持中文Windows
新聞(100)
觀點或評論(93)
Flash書(63)
教程(65)
Design Patterns(3)
FlashCom筆記(45)
Flash Remoting筆記(27)
Flex筆記(11)
Flash Lite筆記(14)
PHP資訊(22)
Ajax筆記(9)
習作(47)
組件(15)
酷站(31)
學習資源(28)
書籍推介(15)
本站與我(90)
RSS瀏覽器
聯絡
熱愛鑽研
Ajax
ActionScript
Flash
Flash Lite
Flex
Flash Remoting
FlashCom
Director
Lingo
PHP
Multiplayer Game

搜尋
VCASMO
修改Screenweaver Uninstaller來支持中文Windows (12-07-2003)

Screenweaver被譽為最好的Flash桌面應用程式製作工具,它可以將Flash通過它的Builder轉成獨立執行的Exe、熒幕保護程式或者打包成Installer,讓使用者安裝Flash應用程式,可惜它打包出來的Installer,包括一個Uninstaller,當用Installer安裝好Flash應用程式後,Start Menu的Flash應用程式Folder會多了一個Uninstall的選項,利用它,理論上可以反安裝Flash應用程式,可惜這Uninstaller不支持中文Windows,單擊它後,出現的竟然又是Installer!

原來Builder轉成的Installer和Uninstaller是同一個文件,通過Uninstall後傳入一個參數Argument "/uninstall" 來分辨。打開Screenweaver安裝Folder下resources的install.fla,Layer initialization script的Frame 2,打開Action Panel,第48行:

if( swApplication.getCmdLineArg(1) == "/uninstall" )

在中文Windows執行下會產生的獨特問題,Uninstaller Path傳入來的參數不能夠用空白格分開,期間多了一些亂碼(例如:C:\DOCUME~1\luar\LOCALS~1\Temp\rd179.tmp|洱/uninstall|洱2464|洱),因此代碼不能夠認出參數"/uninstall",所以永遠沒有可能執行反安裝。

因此,我修改了這行代碼,直接用IndexOf找找有沒有"/uninst"這字符串來決定它是否反安裝,將這行代碼修改為:

if (swApplication.getCmdLineArg().indexOf("uninst") != -1)

注意
如果Windows本身是英文版,但預設語言是中文的話,都會有以上中文Windows的問題。

注意
以上修改反會使英文版Windows的Uninstaller無法執行,出現類似中文版情況,選Uninstall反出現Install程序。

因此最後結合兩者的代碼在if中:

if (swApplication.getCmdLineArg(1) == "/uninstall" or swApplication.getCmdLineArg().indexOf("uninst") != -1)

注意
由於應付中文版的if判斷條件是搜尋"uninst"字符串的存在,因此應用程序的名稱最好不要包含"uninst"。

本文章由luar發表。
意見
  • 在試版中的3.64版本中,我看見這一升句是在第51行的...
    if( swApplication.getCmdLineArg(1) == "/uninstall" )
    是新版本的問題嗎?

    mrlee於01-09-2003發表

  • 請問screenweaver怎麼用阿, 安裝以後,flash中會有很多它的命令, 如何使用這些命令阿, 有沒有系統的教程阿 luar ?

    jerrowolf於02-09-2003發表

  • 哦, 找到幫助了, 可以學習了, 呵呵

    jerrowolf於02-09-2003發表

同組文章

Movable Type 3.15系統支持,Luar's Production版權所有。