{ HTA2SCR 2.00, 2004-09-14, Freeware, written in Delphi by Philipp Winterberg} { HTA2SCR infos are available at http://www.philipp-winterberg.de/software/hta2scr.php} program hta2scr; uses Windows, SysUtils, WinTypes, WinProcs; {$E .scr} {$R *.res} const MSGTITLE = 'HTA2SCR 2.00 [Freeware, © 2003-2004 Philipp Winterberg, pwpw.de]'; var SCRMode, CmdLine: String; dummy, code: integer; CursorPos: TPoint; // HTA Exists? function HTAFile: String; var Param0: String; begin Param0:= ParamStr(0); Delete(Param0, length(Param0) - 2, 3); Param0:= Param0 + 'HTA'; if FileAge(Param0) <> -1 then result:= Param0 else if MessageBox(0, pchar('HTA missing: ' + Param0), pchar(MSGTITLE), 64) = 1 then halt; end; // Execute HTA... procedure HTAAndWait(const CmdLine: string); var SUInfo: TStartupInfo; ProcInfo: TProcessInformation; begin FillChar(SUInfo, SizeOf(SUInfo), #0); with SUInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_MAXIMIZE; end; if CreateProcess(NIL, PChar(CmdLine), NIL, NIL, FALSE, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, NIL, NIL, SUInfo, ProcInfo) then WaitForSingleObject(ProcInfo.hProcess, INFINITE); end; begin SCRMode:= UpperCase(ParamStr(1)); CmdLine:= '"mshta.exe" "' + HTAFile + '"'; if (ParamCount = 0) then // Dialog Bildschirmschonereigenschaften HTAAndWait(CmdLine + ' /c') else begin {$R-} val(SCRMode, dummy, code); {$R+} if code = 0 then // PreviewMode, not available halt; while ((SCRMode[1] = ' ') or (SCRMode[1] = '/') or (SCRMode[1] = '-')) do Delete(SCRMode, 1, 1); // SCR Mode? case SCRMode[1] of 'C' : // Dialog Bildschirmschonereigenschaften HTAAndWait(CmdLine + ' /c'); 'S' : // Vollbildmodus begin // Mauscursor aus dem Weg GetCursorPos(CursorPos); SetCursorPos(3000, 3000); // Meldung ans System: SCR läuft SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(TRUE), @dummy, 0); // HTA starten HTAAndWait(CmdLine); // Meldung ans System: SCR beendet SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(FALSE), @dummy, 0); // Mauscursor zurück SetCursorPos(CursorPos.x, CursorPos.y); end; 'P', 'L' : // Vorschaumodus, not available ; 'A' : // Dialog 'Passwort setzen', not available MessageBox(0, pchar('Feature not available!'), pchar(MSGTITLE), 64); end; end; end.