Solved

Got hotfix information in NT

Posted on 2000-03-30
9
181 Views
Last Modified: 2010-04-04

im wondering if i can get all the hotfixes if any in nt into like say, memo

Esk
0
Comment
Question by:esk
  • 4
  • 4
9 Comments
 
LVL 17

Expert Comment

by:inthe
ID: 2670322
er whats a "hotfix" ?
0
 

Author Comment

by:esk
ID: 2672413
that's a little service pack fix, not big one like service pack

Esk
0
 
LVL 4

Expert Comment

by:Radler
ID: 2673049
Hi esk,

To recents HotFix there is a ID. The installed hotfixes can be found at
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\*
Where * is the ID, my only one is Q147222.
More details inside the key.

T++, Radler.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:esk
ID: 2673189
Here is all the hotfixes available from Microsoft

ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40/
0
 

Author Comment

by:esk
ID: 2673202
how is the best way to read from it?
0
 
LVL 4

Accepted Solution

by:
Radler earned 50 total points
ID: 2673312
Really if you uses the native Delphi TRegistry class you'll take an error.
Subclassing TRegistry.OpenKey with this

function TRegistryNT.OpenKey(const Key: string; CanCreate: Boolean): Boolean;
var
      TempKey: HKey;
      S: string;
      Disposition: cardinal;
      Relative: Boolean;
begin
      S := Key;
      Relative := IsRelative(S);
      if not Relative then begin
            Delete(S, 1, 1);
      end;
      TempKey := 0;
      if not CanCreate or (S = EmptyStr) then begin
            Result := RegOpenKeyEx(GetBaseKey(Relative), PChar(S), 0, Self.FAccessMode, TempKey) = ERROR_SUCCESS;
      end else
            Result := RegCreateKeyEx( GetBaseKey(Relative), PChar(S), 0, nil, REG_OPTION_NON_VOLATILE, Self.FAccessMode, nil,
                                                  TempKey, @Disposition) = ERROR_SUCCESS;
      if Result then begin
            if (CurrentKey <> 0) and Relative then begin
                  S := CurrentPath + '\' + S;
            end;
            ChangeKey(TempKey, S);
      end;
end;

Replace Self.FAccessMode by KEY_READ, it's a big class that I have.

T++, Radler.
0
 
LVL 4

Expert Comment

by:Radler
ID: 2673320
A bit more
function TRegistryNT.IsRelative(const Value: string): Boolean;
begin
  Result := not ( (Value <> EmptyStr) and (Value[1] = '\') );
end;
0
 

Author Comment

by:esk
ID: 2673410
It is a binary value?..

how can i read from it, and get the hotfixes that was installed?..
0
 
LVL 4

Expert Comment

by:Radler
ID: 2673605
No, after open the key call the method GetKeyNames to enumerate all subkeys, so compares the values with the desired hotfix id.

T++, Radler.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Intraweb download file link ? 1 167
Working with hours 3 74
Delphi...Split view - idea? 1 117
update joined tables 2 63
This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question