Jump to content

The File-Checker (HFSLIPFC) for HFSLIP


Mim0

Recommended Posts


Thanks for clarifying this, Mimo and Parseus !

If I remember right, the most prefer to use WindowsXP-KB982381-x86-XXX.exe, because it's easier to handle.

So i'll use this method in my next " try".

Note: Just for fun i've made a quick script (autoit) for comparing filever & filecopy....


_Extract()
_FileVer()
_Makecab()
_CleanTemp()
Exit

Func _Extract()
If FileExists(@ScriptDir & "\HF\WindowsXP-KB982381-*.exe") Then
RunWait(@ComSpec & " /c " & @ScriptDir & "\HF\WindowsXP-KB982381-x86-FRA.exe" & " " & "/extract:" & @ScriptDir & "\Tmp-KB982381" & " /passive","",@SW_HIDE)
Sleep(250)
Else
; if the hotfix WindowsXP-KB982381 is not present in \HF, then we abort here !
MsgBox(0,"Error","Unable to find the source file: " & @ScriptDir & "\HF\WindowsXP-KB982381-*.exe" & @CRLF & _
"Please check if " & @ScriptDir & "\HF\WindowsXP-KB982381-*.exe" & " is in HF Folder !",5)
Exit
EndIf
EndFunc

Func _FileVer()
If FileExists(@ScriptDir & "\REPLACE\I386\SHDOCVW.DL_") Then
; if an old file exist we unpack it and compare filever
RunWait('expand ' & @ScriptDir & "\REPLACE\I386\SHDOCVW.DL_" & " " & @ScriptDir & "\REPLACE\I386\SHDOCVW.DLL","",@SW_HIDE)
Local $newver = FileGetVersion(@ScriptDir & "\Tmp-KB982381\SP3GDR\shdocvw.dll")
Local $oldver = FileGetVersion(@ScriptDir & "\REPLACE\I386\shdocvw.dll")
Sleep(150)
If $oldver = $newver Then
; if fileversion are the same then we abort
MsgBox(0,"File Version of: shdocvw.dll", "File version in: 'REPLACE\I386\SHDOCVW.DL_': " & $oldver & @CRLF & _
"File version in: '\Tmp-KB982381\SP3GDR\shdocvw.dll': " & $newver & @CRLF & @CRLF & _
"Note: both files are same version !" & @CRLF & @CRLF & _
"Copy aborted !")
DirRemove(@ScriptDir & "\Tmp-KB982381",1)
FileDelete(@ScriptDir & "\REPLACE\I386\shdocvw.dll")
Exit
ElseIf $oldver > $newver Then
; if HF\WindowsXP-KB982381 is older (!) then we abort
MsgBox(0,"File Version of: shdocvw.dll", "File version in: 'REPLACE\I386\SHDOCVW.DL_': " & $oldver & @CRLF & _
"File version in: '\Tmp-KB982381\SP3GDR\shdocvw.dll': " & $newver & @CRLF & @CRLF & _
"Note: file in 'REPLACE\I386' is newer than the files in '\Tmp-KB982381\SP3GDR\shdocvw.dll'" & @CRLF & @CRLF & _
"Copy aborted !")
DirRemove(@ScriptDir & "\Tmp-KB982381",1)
FileDelete(@ScriptDir & "\REPLACE\I386\shdocvw.dll")
Exit
ElseIf $oldver < $newver Then
; we delete old files then _makecab() will be execute
FileDelete(@ScriptDir & "\REPLACE\I386\shdocvw.dll")
FileDelete(@ScriptDir & "\REPLACE\I386\shdocvw.dl_")
EndIf
Else
; if there is not shdocvw.dl_ in \Replace\I386 then _makecab() will be execute
EndIf
EndFunc

Func _Makecab()
; makecab and copy to Replace\I386\SHDOCVW.DL_
If FileExists(@ScriptDir & "\Tmp-KB982381\SP3GDR\shdocvw.dll") Then
RunWait(@ComSpec & " /c makecab " & @ScriptDir & "\Tmp-KB982381\SP3GDR\shdocvw.dll","",@SW_HIDE)
Sleep(50)
FileMove(@ScriptDir & "\shdocvw.dl_",@ScriptDir & "\REPLACE\I386\",1)
Sleep(50)
; changing filecase here only
FileMove(@ScriptDir & "\REPLACE\I386\shdocvw.dl_",@ScriptDir & "\REPLACE\I386\SHDOCVW.DL_",1)
MsgBox(0,"Info","The file 'shdocvw.dl_' has been correctly copied in: " & @CRLF & @ScriptDir & "\REPLACE\I386\shdocvw.dl_",5)
Else
MsgBox(0,"Error","Unable to find the source file: " & @ScriptDir & "\Tmp-KB982381\SP3GDR\shdocvw.dll",5)
EndIf
EndFunc

Func _CleanTemp()
; Deletion of TempDir from previously extracted KB982381
If FileExists(@ScriptDir & "\Tmp-KB982381") Then
DirRemove(@ScriptDir & "\Tmp-KB982381",1)
Sleep(250)
Else
MsgBox(0,"Error","Temp folder is missing or already deleted: " & @ScriptDir & "\Tmp-KB982381",5)
EndIf
EndFunc

Of course everybody can use it, i don't know if this can be usefull for you Mimo ?

Filesize of compiled exe is ~630kb.... so it's certainly not so usefull as my first though :lol:

Link to comment
Share on other sites

Mim0, I found this in your XP extension:

SET xDxFile=HFCABS\Feb2010_XAudio_x86.cab

I think it should be Jun2010_XAudio_x86.cab set instead, shouldn't it?

Of course, you're right! I fix it. Thx for reporting this!!!

...

Of course everybody can use it, i don't know if this can be usefull for you Mimo ?

...

Thx for this, but I'm thinking about another way:

1. Remove the hint with the shdocvw.dl_ from the list

2. Use the filever.exe (if available in HFTOOLS or in SOURCE\SUPPORT\TOOLS\SUPPORT.CAB) for checking the version of a file (Flash Player, Roots Certificates).

Link to comment
Share on other sites

I've made a batch (same purpose than my previous autoit script) a few days ago (sorry I forgot to post it here: ooops !)

Using sigcheck.exe from sysinternals (has to be put in HFTOOLS\sigcheck.exe) here's my batch: Shdocvw.cmd

(put this batch in hfslip root dir)


@ECHO OFF
FOR %%I IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%I:\HFSLIP SET HFSLIP=%%I:\HFSLIP\
:CheckHfSlipDirName
IF EXIST "%HFSLIP%" (
GOTO CheckFile
) ELSE (
GOTO MsgNoHfSlipDir
)

:CheckFile
IF EXIST "%HFSLIP%HFTOOLS\sigcheck.exe" (
GOTO ExtractKB
) ELSE (
GOTO MsgNoSig
)

:ExtractKB
CLS
IF EXIST "%HFSLIP%HF\WindowsXP-KB982381-*.exe" FOR /F %%I IN ('DIR /B %HFSLIP%HF\WindowsXP-KB982381-*.exe') DO (
START /WAIT HF\%%I /extract:\HFSLIP\Tmp-KB982381 /PASSIVE
GOTO UnPack
) ELSE (
GOTO MsgNoKB
)

:UnPack
CLS
IF EXIST "%HFSLIP%REPLACE\I386\SHDOCVW.DL_" (
EXPAND -R "%HFSLIP%REPLACE\I386\SHDOCVW.DL_" "%HFSLIP%REPLACE\I386"
GOTO FileVer
) ELSE (
MAKECAB "%HFSLIP%Tmp-KB982381\SP3QFE\shdocvw.dll"
COPY "%HFSLIP%shdocvw.dl_" "%HFSLIP%REPLACE\I386"
REN "%HFSLIP%REPLACE\I386\shdocvw.dl_" "SHDOCVW.DL_"
DEL "%HFSLIP%shdocvw.dl_"
GOTO DelTemp
)

:FileVer
CLS
IF EXIST "%HFSLIP%Tmp-KB982381\SP3QFE\shdocvw.dll" (
FOR /F "TOKENS=3" %%v IN ('%HFSLIP%HFTOOLS\sigcheck.exe "%HFSLIP%Tmp-KB982381\SP3QFE\shdocvw.dll"^|FIND /i "version"') DO SET newVer=%%v
)
IF EXIST "%HFSLIP%REPLACE\I386\shdocvw.dll" (
FOR /F "TOKENS=3" %%v IN ('%HFSLIP%HFTOOLS\sigcheck.exe "%HFSLIP%REPLACE\I386\shdocvw.dll"^|FIND /i "version"') DO SET oldVer=%%v
)
CLS
IF %newVer% EQU %oldVer% (
GOTO :MsgSameVersion
)
IF %newVer% LSS %oldVer% (
GOTO :MsgOldVersion
)
IF %newVer% GTR %oldVer% (
CLS
ECHO New version is: %newVer%
ECHO Old version is: %oldVer%
PAUSE
CLS
DEL "%HFSLIP%REPLACE\I386\shdocvw.dl_"
START /WAIT MAKECAB "%HFSLIP%Tmp-KB982381\SP3QFE\shdocvw.dll"
COPY /Y "%HFSLIP%shdocvw.dl_" "%HFSLIP%REPLACE\I386"
DEL "%HFSLIP%shdocvw.dl_"
REN "%HFSLIP%REPLACE\I386\shdocvw.dl_" "SHDOCVW.DL_"
GOTO :DelTemp
)

:MsgNoHfSlipDir
CLS
ECHO Error: This file must be put in HfSlip root dir
ECHO.
ECHO Example path: X:\HFSLIP\thisbatch.cmd
ECHO.
ECHO And try again...
PAUSE
EXIT

:MsgNoSig
CLS
ECHO Error: sigcheck.exe not found in: HFTOOLS\sigcheck.exe
ECHO.
ECHO Download and put sigcheck.exe in HFSLIP\HFTOOLS
ECHO And try again...
PAUSE
EXIT

:MsgNoKB
CLS
ECHO Error: no hotfix found in: HF\WindowsXP-KB982381-*.exe
ECHO.
ECHO Download and put WindowsXP-KB982381-*.exe in HFSLIP\HF
ECHO And try again...
PAUSE
EXIT

:MsgSameVersion
CLS
ECHO Error: both files had the same file version !
ECHO.
ECHO New shdocvw.dll version is: %newVer%
ECHO Old shdocvw.dll version is: %oldVer%
ECHO.
ECHO Aborting Copy: Temp files has been deleted...
PAUSE
GOTO DelTemp
EXIT

:MsgOldVersion
CLS
ECHO Error: new file from 'HF\WindowsXP-KB982381-*.exe' is older!
ECHO.
ECHO New shdocvw.dll version is: %newVer%
ECHO Old shdocvw.dll version is: %oldVer%
ECHO.
ECHO Aborting Copy: Temp files has been deleted...
PAUSE
GOTO DelTemp
EXIT

:DelTemp
CLS
IF EXIST "%HFSLIP%Tmp-KB982381" (
RD /S /Q "%HFSLIP%Tmp-KB982381"
)
IF EXIST "%HFSLIP%REPLACE\I386\shdocvw.dll" (
DEL "%HFSLIP%REPLACE\I386\shdocvw.dll"
)

Hope you can do something with this piece of code ?

ps: of course there's a lot of "usefull" line into this source (error message and so on...)

Link to comment
Share on other sites

  • 2 weeks later...

Hi, Mimo!

I have some interesting new info.

There is a newer version of the WMP11 installer, digitally signed on FEB 05 2009 (about a year newer than the previous one).

The thing is that when using this new installer, the following updates are NOT required (I tested it, some of them even refuse to install, saying that the version of WMP installed already includes the fixes and other are just not wanted by MU/WU and though they won't refuse to install, they don't update any files):

-WindowsMedia11-KB939683-x86-ESN

-WindowsMedia11-KB954154-x86-ESN

(those are the ones that refuse to install)

And

-WindowsXP-KB941569-x86-ESN

-WindowsXP-WindowsMedia-KB952069-v2-x86-ESN

Of course, replace ESN with whatever language you're using.

Now, As I see it, there are to ways of dealing with this:

One would be to make hfslipc aware of the new installer and report missing/needed updates accordingly.

Or

(a better one IMO) just remove support for the older installer, advise everyone to switch to the new one and flag those updates as unneeded.

I hope you can do s/thing with this info.

bye!

Edited by jvidal
Link to comment
Share on other sites

Hi, Mimo!

I have some interesting new info.

There is a newer version of the WMP11 installer...

...

Hey jvidal,

that's nice that you found out that! I've noticed the new WMP11 and I had it on my todo-list to check the changes. Thx for doing this!!!

Propably the hotfixes are also obsolete...

...

(a better one IMO) just remove support for the older installer, advise everyone to switch to the new one and flag those updates as unneeded.

...

Yes, I think also it's better to switch completely to the new version! :)

CU, Mimo

Edited by Mim0
Link to comment
Share on other sites

Nice, I hope you can release a new version by next week's round of updates (or even better, sooner than that :) )...

bye!

Edited by jvidal
Link to comment
Share on other sites

I have some interesting new info.

There is a newer version of the WMP11 installer, digitally signed on FEB 05 2009 (about a year newer than the previous one).

Sorry i know this isn't the correct place to ask this, but i was unable to find this version you were talking about, there to many related things that even google couldn't give me a correct path to this!

Thanks

By the way, good job Mimo, your work continues good as always.

Link to comment
Share on other sites

There is a newer version of the WMP11 installer, digitally signed on FEB 05 2009 (about a year newer than the previous one).

I found ever newer version: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=1d224714-e238-4e45-8668-5166114010ca. It's from 22nd, June 2010!

This is the same version.

It's strange why this download from 22nd, June 2010 was digitally signed on FEB 05 2009 :wacko:

btw...

I've checked all WMP11-Updates. With the new WMP11-Installer 14 Updates are obsolete. Only these two still remain:

KB973442 and KB974905

But I have a question:

Is KB941569 (MS07-068) still necessary when using WMP9? I found a hint that this is obsolete because XPSP3 have already newer files for WMP9.

Edited by Mim0
Link to comment
Share on other sites

But I have a question:

Is KB941569 (MS07-068) still necessary when using WMP9? I found a hint that this is obsolete because XPSP3 have already newer files for WMP9.

I've just made a quick comparision - files from XP SP3 are indeed newer. It's look like with that newer installer for WMP11 KB941569 is no longer needed.

Link to comment
Share on other sites

I've just made a quick comparision - files from XP SP3 are indeed newer. It's look like with that newer installer for WMP11 KB941569 is no longer needed.

Thanls, Parseus! :)

New file-checker

2010-07-07
- Added: Real check of file-version using filever.exe in HFTOOLS
(if filever.exe is not found, the file-checker tries to
expand it from SOURCE\SUPPORT\TOOLS\SUPPORT.CAB, when using
Windows XP)

new file-checker-extension for XP

2010-07-07
- Added: Version-number to the WMP11-installer (from 22.Jun.2010)
- Updated: KB952069-v2 is now only for WMP9
- Removed: KB941569 (SP3 already contains a newer version of these DLLs)
- Removed: KB954154 (MS08-054: Media Player 11)
- Removed: KB928788 (Fix: Streaming Windows Media format video content)
- Removed: KB933547 (Fix: Crash if you plug in certain flash memory devices)
- Removed: KB929773 (Fix: Noise/problem when playing WMA-file on certain devices)
- Removed: KB939683 (Shortcuts (Pinned Menu) Update)
- Removed: KB935551 (Fix: Device disconnected when synchronizing many files)
- Removed: KB939209 (Fix: Application may fail when playing DRM-protected video)
- Removed: KB944882 (Fix: Memory increases for each media file transfer)
- Removed: KB929399-v2 (Subscription Update)
- Removed: KB932390 (Fix: Cannot use Windows Media Audio 9 Voice codec)
- Removed: KB935552 (Fix: Stop responding when canceling media transfer)
- Removed: KB954069 (Fix: Media Encoder 9 crashes in specific cases)
- Fixed: Extracted directX-check uses now Jun2010_XAudio_x86.cab

Edited by Mim0
Link to comment
Share on other sites

Wow, very nice man!

BTW, I only had 4 updates unneeded with the new installer (the ones I mentioned), the other ten had already been removed ages ago...

thx!

Link to comment
Share on other sites

Found unexpected version of Windows Media Player 11 (HF\wmp11-windowsxp-x86-HU-HU.exe): expected 11.0.5721.5262, found 11.0.5721.5145
Cannot check version of Windows Media Player 11 (HF\wmp11-windowsxp-x86-HU-HU.exe): expected 11.0.5721.5262

After I updated wmp11, the log still says the second line. I have filever.exe in hftools and running the hfslipfc.cmd as admin (win7). Am I doing something wrong, or this error message is normal?

Link to comment
Share on other sites

After I updated wmp11, the log still says the second line. I have filever.exe in hftools and running the hfslipfc.cmd as admin (win7). Am I doing something wrong, or this error message is normal?

No, it's not normal. I'll check it...
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...