Blame | Last modification | View Log | Download
; -- xychart.iss --; Copyright (C) 2003 RLD Automation; FL7.0, Windows 2000[Setup]AdminPrivilegesRequired=noRestartComputer=noDisableStartupPrompt=yesDisableProgramGroupPage=yesDiskSpanning=0AppName=FactoryLink XY-Chart ModuleAppVerName=XY-Chart Module Version 6.0, for FL7.0 NT4 (with SP4 or higher) or Windows 2000AppCopyright=Copyright © 2002 USDATA.DefaultDirName={code:GetPrgDir|{pf}\xychart};DefaultGroupName=Wizard Information SystemsDirExistsWarning=noMinVersion=4,4OutputDir=..\..\Setup\Fl70WizardImageFile=..\ModernImage.bmpWizardSmallImageFile=..\SmallImage.bmpUsePreviousAppDir=yesUninstallable=yesUninstallDisplayIcon={app}\xychart.exeUninstallDisplayName=USDATA FactoryLink XY-Chart ModuleUninstallFilesDir={app}AppPublisher=USDATAAppVersion=6.1AppPublisherURL=http://www.usdata.comAppSupportURL=support@usdata.comAppUpdatesURL=http://www.usdata.comLicenseFile=..\license.txtInfoBeforeFile=..\infobefore.txtWizardStyle=modernUninstallStyle=modernWindowVisible=noBackColor=clSilverBackColor2=clBlackBackColorDirection=toptobottom[Files];FactoryLink filesSource: "..\..\Flink\Ac\xychart.ac"; DestDir: "{app}\ac"Source: "..\..\Flink\Bin\Fl70\xychart.exe"; DestDir: "{app}\bin"; CopyMode: alwaysoverwriteSource: "..\..\Flink\Bin\FlMsgRLD.dll"; DestDir: "{sys}"; CopyMode: alwaysoverwriteSource: "..\..\Flink\Bin\RLDTitle.exe"; DestDir: "{app}\bin"; Flags: uninsneveruninstallSource: "..\..\Flink\Ctgen\xychart.ctg"; DestDir: "{app}\ctgen"Source: "..\..\Flink\Ctgen\xychart.rtm"; DestDir: "{app}\ctgen"Source: "..\..\Flink\Help\en\xychart.hlp"; DestDir: "{app}\help\de"Source: "..\..\Flink\Help\en\xychart.hlp"; DestDir: "{app}\help\en"Source: "..\..\Flink\Help\en\xychart.hlp"; DestDir: "{app}\help\fr"Source: "..\..\Flink\Key\De\typea.key"; DestDir: "{app}\key\de"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\De\typealf.key"; DestDir: "{app}\key\de"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\De\typed.key"; DestDir: "{app}\key\de"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\De\typedalf.key"; DestDir: "{app}\key\de"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\De\typembx.key"; DestDir: "{app}\key\de"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\typea.key"; DestDir: "{app}\key\en"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\typealf.key"; DestDir: "{app}\key\en"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\typed.key"; DestDir: "{app}\key\en"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\typedalf.key"; DestDir: "{app}\key\en"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\typembx.key"; DestDir: "{app}\key\en"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\Fr\typea.key"; DestDir: "{app}\key\fr"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\Fr\typealf.key"; DestDir: "{app}\key\fr"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\Fr\typed.key"; DestDir: "{app}\key\fr"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\Fr\typedalf.key"; DestDir: "{app}\key\fr"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\Fr\typembx.key"; DestDir: "{app}\key\fr"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstallSource: "..\..\Flink\Key\En\xycolor.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xyintp.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xymarker.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xymode.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xysave.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xystyle.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xyyesno.key"; DestDir: "{app}\key\de"Source: "..\..\Flink\Key\En\xycolor.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xyintp.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xymarker.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xymode.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xysave.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xystyle.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xyyesno.key"; DestDir: "{app}\key\en"Source: "..\..\Flink\Key\En\xycolor.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xyintp.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xymarker.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xymode.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xysave.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xystyle.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Key\En\xyyesno.key"; DestDir: "{app}\key\fr"Source: "..\..\Flink\Mps\70\xychart.mps"; DestDir: "{app}\mps\en";Source: "..\..\Flink\Mps\En\xychart.cba"; DestDir: "{app}\mps\en"Source: "..\..\Flink\Msg\En\xychart.txt"; DestDir: "{app}\msg\de"Source: "..\..\Flink\Msg\En\xychart.txt"; DestDir: "{app}\msg\en"Source: "..\..\Flink\Msg\En\xychart.txt"; DestDir: "{app}\msg\fr"Source: "..\..\Flink\Msg\En\xycht_ac.txt"; DestDir: "{app}\msg\de"Source: "..\..\Flink\Msg\En\xycht_ac.txt"; DestDir: "{app}\msg\en"Source: "..\..\Flink\Msg\En\xycht_ac.txt"; DestDir: "{app}\msg\fr";ProtectionSource: "..\..\..\fl\700\flnti\bin\inst_seq.exe"; DestDir: "{app}"; Flags: deleteafterinstallSource: "..\..\Flink\opt\delta.opt"; DestDir: "{app}\opt"; CopyMode: onlyifdoesntexistSource: "{src}\delta.opt"; DestDir: "{app}"; Flags: deleteafterinstall external skipifsourcedoesntexist;DocumentationSource: "{src}\xychart.pdf"; DestDir: "{app}\..\Documentation\en"; Flags: external skipifsourcedoesntexistSource: "..\xychart.exe"; DestDir: "{app}\bin"; DestName: "ReadMeXyChart.exe"; Flags: isreadme[Registry];Driver entryRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: ""; ValueData: "NC_TASKGROUP"; Flags: noerror createvalueifdoesntexistRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: "Opened Icon"; ValueData: "folderclosed"; Flags: createvalueifdoesntexistRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: "Closed Icon"; ValueData: "folderopened"; Flags: createvalueifdoesntexistRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: "Description"; ValueData: "Task Group"; Flags: createvalueifdoesntexistRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: "TG_CAPTION Graphics"; ValueData: "Graphics"; Flags: createvalueifdoesntexistRoot: HKLM; Subkey: "SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP"; ValueType: String; ValueName: "Task Group Graphics"; ValueData: "{code:GetDriverString}";Update utility launcher and autostart serviceRoot: HKLM; Subkey: "Software\Classes\AppID\{{6BE98583-87A6-11D1-9B6C-0020AF1E9F09}"; ValueType: string; ValueName: "RunAs"; ValueData: "Interactive User"; Flags: createvalueifdoesntexistRoot: HKLM; Subkey: "System\CurrentControlSet\Services\FactoryLink Autostart Service"; ValueType: string; ValueName: "ObjectName"; ValueData: "LocalSystem";[Run]Filename: "{app}\bin\acctmgr.exe"; Parameters: "-c -d -v"; Check: AddTitle(xychart,xymbx nchart xydisp xydef xyclr); Flags: runminimized; StatusMsg: "Updating FactoryLink account manager index..."Filename: "{app}\inst_seq.exe"; Parameters: "-MXYCHART -S{app}\delta.opt"; Flags: runminimized; StatusMsg: "Updating protection..."Filename: "{app}\bin\mkhelp.exe"; Flags: runminimized; StatusMsg: "Updating FactoryLik help file index..."[UninstallRun]Filename: "{app}\bin\RLDTitle.exe"; Parameters: " /REMOVE=xychart"; Flags: runminimized; StatusMsg: "Updating FactoryLink account manager index..."Filename: "{app}\bin\acctmgr.exe"; Parameters: "-c -d -v"; Check: RemoveTitle(xychart); Flags: runminimized; StatusMsg: "Updating FactoryLink account manager index..."[InstallDelete];Type: files; Name: "{app}\FlInstall.exe"[Messages]RunEntryShellExec=Yes, I would like to view the README file[Code]varDriverList: String;TaskName: String;function InitializeSetup(): Boolean;{varMyText: String;}begin{Task name specification, name is a constant of the code section}TaskName := 'xychart';RegQueryStringValue(HKLM, 'SOFTWARE\USDATA\FactoryLink\Configuration Explorer\Menus\Node Classes\NC_TASKGROUP', 'Task Group Graphics', DriverList);{create a driver list if there is none}if (DriverList = '') then beginDriverList := 'gedant,graph,web_clnt,windhdr';end;{add our task to the driver list}if (Pos(TaskName, DriverList) = 0) then beginDriverList := DriverList + ',' + TaskName;end;Result := True;end;{Read the FactoryLink directory from the autostart service program location,using the environment variable FLINK will result in a directory withshort names. By using the autostart server the long names are found, andthe setup progam will use these names instead of the notation in short}function GetPrgDir(S: String): String;varMyDir: String;begin{read the autostart service directory, filename and extension}RegQueryStringValue( HKEY_LOCAL_MACHINE, 'System\CurrentControlSet\Services\FactoryLink Autostart Service', 'ImagePath', MyDir);{remove the filename and last '\' character}MyDir := ExtractFileDir( MyDir);{now the bin subdir is removed.....}MyDir := ExtractFileDir( MyDir);{return default in case no directory is found}if (Length( MyDir) <= 0) then beginMyDir := S;end;{return the directory to install the program}Result := MyDir;end;{Get the driver string for modifying the tree view of theConfiguration Explorer}function GetDriverString(DefaultInput: String): String;begin{ Return the driver list }Result := DriverList;end;{Add a AC line for the current task to the titles file, add a lineto the CTlist file. The taskname and ct-line are specified in thefunction-parameter: taskname,ct-line}function AddTitle( MyEntry: String): Boolean;varMyText: TArrayOfString;MyFile: String;MyAC: String;MyCT: String;k: Integer;found: Integer;begin{first file to load is th etitles file in the AC directory}MyFile := GetPrgDir( '') + '\ac\titles';k := LoadStringsFromFile( MyFile, MyText);{AC entry looks like: taskname.ac}k := Pos( ',', MyEntry);if k = 0 then k := Pos( ':', MyEntry);MyAC := Copy( MyEntry, 0, k-1) + '.ac';MyCT := MyEntry;StrSet( ':', k, MyCt);{search for ac entry}found := 0;k := 0;while (k < GetArrayLength(MyText)) and (not found) do beginfound := Pos( MyAC, MyText[ k]);k := k + 1;end;{if the entry is not found, add a line to the titles file}if (found = 0) then beginSetArrayLength(MyText, GetArrayLength(MyText)+1);MyText[ GetArrayLength(MyText)-1] := MyAC;SaveStringsToFile( MyFile, MyText, false);end;{add entry to ctlist file}MyFile := GetPrgDir( '') + '\ctgen\ctlist';k := LoadStringsFromFile( MyFile, MyText);{search for ctgen entry}found := 0;k := 0;while (k < GetArrayLength(MyText)) and (not found) do beginfound := Pos( MyCT, MyText[ k]);k := k + 1;end;{if the entry is not found, add a line to the ctlist file}if (found = 0) then beginSetArrayLength(MyText, GetArrayLength(MyText)+1);MyText[ GetArrayLength(MyText)-1] := MyCT;SaveStringsToFile( MyFile, MyText, false);end;{return always true, ac file must be installed, this functiononly adds a line to the titles file}Result := True;end;{Remove a AC line for the current task in the titles file, and removea line in the CTlist file the entry is specified with the task namein the function-parameter}function RemoveTitle( MyEntry: String): Boolean;varMyText: TArrayOfString;MyFile: String;MyAC: String;MyCT: String;Temp: String;k: Integer;found: Integer;beginMyAC := MyEntry + '.ac';MyCT := MyEntry + ':';{search the task name in the ctlist file}MyFile := GetPrgDir( '') + '\ctgen\ctlist';SetArrayLength( MyText, 0);k := LoadStringsFromFile( MyFile, MyText);{search for the task name}for k:=0 to GetArrayLength(MyText)-1 do beginTemp := MyText[ k];if (found = 0) thenfound := Pos( MyCT, MyText[ k]);{if the entry is found, remove the line from the titles file}if (found) then beginif ((k+1) < GetArrayLength(MyText)) then beginMyText[ k] := MyText[ k+1];end else {begin;}MyText[ k] := '';end;end;if (found) then begin{shorten array with one}SetArrayLength( MyText, GetArrayLength( MyText) - 1);SaveStringsToFile( MyFile, MyText, false);end;{search the task name in the titles file}MyFile := GetPrgDir( '') + '\ac\titles';k := LoadStringsFromFile( MyFile, MyText);found := 0;{search for the task name}for k:=0 to GetArrayLength(MyText)-1 do beginTemp := MyText[ k];if (found = 0) thenfound := Pos( MyAC, MyText[ k]);{if the entry is found, remove the line from the titles file}if (found) then beginif ((k+1) < GetArrayLength(MyText)) then beginMyText[ k] := MyText[ k+1];end else {begin;}MyText[ k] := '';end;end;if (found) then begin{shorten array with one}SetArrayLength( MyText, GetArrayLength( MyText) - 1);SaveStringsToFile( MyFile, MyText, false);end;{return always true, ac file must be removed}Result := True;end;