--判断是否安装了.net框架 hasInstalled = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software//Microsoft//.NETFramework"); if hasInstalled == false then result = Dialog.Message("安装提示", "运行本软件需要安装.Net框架1.1版,是否从网络中下载并安装?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1) if result == IDYES then isExists = HTTP.TestConnection("http://www.zhangyongjun.com/fdown/uploadfile/dotnetfx.exe", 90, 80); if isExists == true then -- Show the StatusDlg StatusDlg.Show(MB_ICONINFORMATION, false); StatusDlg.ShowCancelButton(true, "取消");
-- Set statusdlg title and message StatusDlg.SetTitle("下载所需文件 . . . "); -- Set meter range (max range = 65534) StatusDlg.SetMeterRange(0, 100); -- Download a file from the internet to the user's computer -- Uses DownloadCallback() as the callback function HTTP.Download("http://www.zhangyongjun.com/fdown/uploadfile/dotnetfx.exe", SessionVar.Expand("%TempFolder%//dotnetfx.exe"), MODE_BINARY, 20, 80, nil, nil, DownloadCallback);
-- Hide the StatusDlg StatusDlg.Hide(); Shell.Execute(SessionVar.Expand("%TempFolder%//dotnetfx.exe"), "open", "", "", SW_SHOWNORMAL) else Dialog.Message("错误提示", "下载文件失败,可能服务器已停止服务。请从Microsoft网站上下载.Net Framework1.1。", MB_ICONEXCLAMATION); Application.Exit(0); end else Application.Exit(0); end end
-- Callback function for HTTP.Download function DownloadCallback (nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message) -- Convert total and downloaded bytes into formatted strings sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true); sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true); -- Output time left, formatted. StatusDlg.SetMessage("正在下载文件 . . . 剩余时间: " .. SecondsLeftFormat); -- Output formatted sizes to user through statusdlg status text StatusDlg.SetStatusText("已下载: " .. sDownloaded .. " / " .. sTotal); -- Set meter position (fraction downloaded * max meter range) StatusDlg.SetMeterPos((nDownloaded / nTotal) * 100); end