'Eintragen einiger Punkte in FockeTools/Startup.ini Option Explicit Dim wshshell,fso,i,Fnct Dim strPath,strSystemFolder,strWinFolder,strTempFolder '----------------------------- Objekte erzeugen -------------------------------- Set wshshell = CreateObjectSafely("WScript.Shell") Set fso = CreateObjectSafely("Scripting.FileSystemObject") Set Fnct = CreateObjectSafely("Install.Functions") '--------------------------- Standardpfade ------------------------------------- strPath = GetCurrentPath() strSystemFolder = fso.GetSpecialFolder(1) & "\" strWinFolder = fso.GetSpecialFolder(0) & "\" strTempFolder = fso.GetSpecialFolder(2) & "\" '------------------------------ Main ------------------------------------------- WriteToLog("Start") 'Dateinamen festlegen Dim cstrStartupIni cstrStartupIni = ExpandPath("%FOCKETOOLSDIR%","c:\FockeTools") cstrStartupIni = cstrStartupIni & "\Startup.ini" 'Gibt es schon einen Eintrag? ' Wenn nicht, dann eintragen Dim nIndex If Not IniEntryExists("Change Access for pqi-Files") Then WriteToLog("Change Access for pqi-Files") nIndex = GetNextFreeIndex() Call Fnct.SetIniString("Setup","Prg" & nIndex,"wscript.exe c:\FockeTools\PqiAccess.vbs",cstrStartupIni) Call Fnct.SetIniString("Setup","Txt" & nIndex,"Change Access for pqi-Files",cstrStartupIni) Call Fnct.SetIniString("Setup","Style" & nIndex,"6",cstrStartupIni) Call Fnct.SetIniString("Setup","Delay" & nIndex,"65",cstrStartupIni) End If If Not IniEntryExists("Check Administrator logon") Then WriteToLog("Check Administrator logon") nIndex = GetNextFreeIndex() Call Fnct.SetIniString("Setup","Prg" & nIndex,"wscript.exe c:\FockeTools\WarningAdmin.vbs",cstrStartupIni) Call Fnct.SetIniString("Setup","Txt" & nIndex,"Check Administrator logon",cstrStartupIni) Call Fnct.SetIniString("Setup","Style" & nIndex,"6",cstrStartupIni) Call Fnct.SetIniString("Setup","Delay" & nIndex,"65",cstrStartupIni) End If If Not IniEntryExists("Delete temporary files") Then WriteToLog("Delete temporary files") nIndex = GetNextFreeIndex() Call Fnct.SetIniString("Setup","Prg" & nIndex,"wscript.exe c:\FockeTools\DelTmpFiles.vbs",cstrStartupIni) Call Fnct.SetIniString("Setup","Txt" & nIndex,"Delete temporary files",cstrStartupIni) Call Fnct.SetIniString("Setup","Style" & nIndex,"6",cstrStartupIni) Call Fnct.SetIniString("Setup","Delay" & nIndex,"65",cstrStartupIni) End If WriteToLog("End") '------------------------------- Funktionen ------------------------------------ Function GetCurrentPath() Dim l_strScriptName Dim l_strTemp l_strScriptName = WScript.ScriptFullName l_strTemp = WScript.ScriptName GetCurrentPath = Left(l_strScriptName, Len(l_strScriptName) - Len(l_strTemp)) End Function Function ExpandPath(p_strEnvironment,p_strDefault) Dim l_strTemp l_strTemp = wshshell.ExpandEnvironmentStrings(p_strEnvironment) If l_strTemp = p_strEnvironment Then l_strTemp = p_strDefault End If ExpandPath = l_strTemp End Function 'Hilfsfunktion zum Erzeugen von Objekten 'Ist die Erzeugung nicht möglich, wird das Skript beendet Function CreateObjectSafely(p_strObject) Dim i i = 0 On Error Resume Next Do err.Clear i = i+1 Set CreateObjectSafely = CreateObject(p_strObject) WScript.Sleep 1000 Loop Until Err.Number = 0 OR i > 30 If Err.Number <> 0 Then MsgBox "Unable to Create Object: " & p_strObject WScript.Quit End If On Error Goto 0 End Function 'Wird der Eintrag in der StartupIni gefunden? ' Verglichen werden die Anzeigetexte Function IniEntryExists(p_strEntry) Dim strCurrentText Dim bEntryFound If p_strEntry = "" Then bEntryFound = False Else Dim i i = 0 do i = i+1 strCurrentText = Fnct.GetIniString("Setup","Txt" & i,cstrStartupIni) if strCurrentText = p_strEntry Then bEntryFound = true End If 'MsgBox strCurrentText loop Until strCurrentText = "" Or bEntryFound End If IniEntryExists = bEntryFound End Function 'Sucht den nächsten freien Index für einen Neueintrag Function GetNextFreeIndex Dim strCurrentText Dim i i = 0 do i = i+1 strCurrentText = Fnct.GetIniString("Setup","Txt" & i,cstrStartupIni) loop Until strCurrentText = "" GetNextFreeIndex = i End Function '------------------------------ Sub ------------------------------------------- Sub WriteToLog(p_strMessage) Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim strLineToWrite strLineToWrite = WScript.ScriptName & " -- " & p_strMessage Dim strLogFile strLogFile = ExpandPath("%SERVICEPACK_LOG%","c:\fockeservicepack.log") ' msgbox sLine & LogFile Dim FileObject if fso.FileExists(strLogFile) then set FileObject = fso.OpenTextFile( strLogFile,ForAppending,false,0) else set FileObject = fso.OpenTextFile( strLogFile,ForWriting, true,0) end if FileObject.WriteLine(strLineToWrite) FileObject.Close set FileObject=nothing End Sub