?
Solved

Got hotfix information in NT

Posted on 2000-03-30
9
Medium Priority
?
187 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
Independent Software Vendors: 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 200 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

Industry Leaders: 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

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
this video summaries big data hadoop online training demo (http://onlineitguru.com/big-data-hadoop-online-training-placement.html) , and covers basics in big data hadoop .
Loops Section Overview
Suggested Courses

839 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