on 06-16-2010 4:48 PM
Hello,
I want to update all my clients with the SAP INSTALL SERVER.
Patchlevel 17 is integrated and the installation works fine (logonscript which runs the setup)
Before I start the setup I want to check if the client has already the level 17 so the setup will not start.
"everybody" is telling in several forums that there is the tool SAPVER to find after creating an account at SAP homepage.
I hope I am right here - extra for this I created this account.
526199 is the note---where to find? can someone give me a direct link for SAPVER?
thanks a lot,
Christian.
solved by my own
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ok I got SAPVER.exe from my colleagues in Madrid.
But unfortunately this is obsolete. At Win7 it is crashing.
So I made a self made solution with Delphi 7.
Source code (if anyone has the same problem like me 😞
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Function get the version of an exe-file
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function GetFileVersion(const FileName: String): String;
var
VersionInfoSize, VersionInfoValueSize, Zero: DWord;
VersionInfo, VersionInfoValue: Pointer;
begin
{ Ist Datei nicht vorhanden, dann Hinweis und raus aus Funktion ...}
if not FileExists(FileName) then
begin
Result := 'File not found'; { alternativ auch 'File not found' oder sonstwas }
Exit;
end;
{ sonnst weiter. }
Result := '';
VersionInfoSize := GetFileVersionInfoSize(PChar(FileName), Zero);
if VersionInfoSize = 0 then Exit;
{ Bei nicht genug Speicher wird EOutOfMemory-Exception ausgelöst }
GetMem(VersionInfo, VersionInfoSize);
try
if GetFileVersionInfo(PChar(FileName), 0, VersionInfoSize, VersionInfo) and
VerQueryValue(VersionInfo, '' { root block }, VersionInfoValue,
VersionInfoValueSize) and (0 <> LongInt(VersionInfoValueSize)) then
begin
with TVSFixedFileInfo(VersionInfoValue^) do
begin
Result := IntToStr(HiWord(dwFileVersionMS));
Result := Result + '.' + IntToStr(LoWord(dwFileVersionMS));
Result := Result + '.' + IntToStr(HiWord(dwFileVersionLS));
Result := Result + '.' + IntToStr(LoWord(dwFileVersionLS));
end;
end;
finally
FreeMem(VersionInfo);
end;
end;
{$R *.dfm}
// gets the program path (C:Programs, C:programs (x86))
function GetProgramPath: string;
const
CSIDL_PROGRAM_FILES = $26;
var
p: PItemIDLIst;
ShellH: IMalloc;
begin
if SHGetSpecialFolderLocation(Application.Handle, CSIDL_PROGRAM_FILES, p) = NOERROR then
try
if SHGetPathFromIDList(p, Buf) then
Result := Buf;
finally
if SHGetMalloc(ShellH) = NOERROR then
ShellH.Free(P);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var dateiinfos:string; /string for put in the version information
stelle:integer; /only an integer for putting in the position of the patch lever information in u201Cdateiinfou201D - string
begin
if FileExists(GetProgramPath+'SAPFrontEndSAPguiSAPgui.exe')
then
begin
dateiinfos:=GetFileVersion(GetProgramPath+'SAPFrontEndSAPguiSAPgui.exe');
//it is looking for a u201C.u201D
stelle:=pos('.',dateiinfos);
dateiinfos:=copy(dateiinfos,stelle+1,length(dateiinfos));
//it is looking again for a u201E.u201C
stelle:=pos('.',dateiinfos);
if copy(dateiinfos,0,stelle-1)<> '17' then
begin
//if it is not the actual version it starts a batch file on my SAP INSTALL SERVER
ShellExecute(self.handle, 'OPEN', 'test.bat', '', '', SW_ShowNormal);
end;
end
else ShowMessage(GetProgramPath'SAPFrontEndSAPguiSAPgui.exe'' Hier stimmt etwas nicht, bitte bei Christian melden.');
application.Terminate;
end;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.