/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Project1.dof |
---|
0,0 → 1,83 |
[FileVersion] |
Version=6.0 |
[Compiler] |
A=8 |
B=0 |
C=1 |
D=1 |
E=0 |
F=0 |
G=1 |
H=1 |
I=1 |
J=0 |
K=0 |
L=1 |
M=0 |
N=1 |
O=1 |
P=1 |
Q=0 |
R=0 |
S=0 |
T=0 |
U=0 |
V=1 |
W=0 |
X=1 |
Y=1 |
Z=1 |
ShowHints=1 |
ShowWarnings=1 |
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
[Linker] |
MapFile=0 |
OutputObjs=0 |
ConsoleApp=1 |
DebugInfo=0 |
RemoteSymbols=0 |
MinStackSize=16384 |
MaxStackSize=1048576 |
ImageBase=4194304 |
ExeDescription= |
[Directories] |
OutputDir= |
UnitOutputDir= |
PackageDLLOutputDir= |
PackageDCPOutputDir= |
SearchPath= |
Packages= |
Conditionals= |
DebugSourceDirs= |
UsePackages=0 |
[Parameters] |
RunParams= |
HostApplication= |
Launcher= |
UseLauncher=0 |
DebugCWD= |
[Version Info] |
IncludeVerInfo=0 |
AutoIncBuild=0 |
MajorVer=1 |
MinorVer=0 |
Release=0 |
Build=0 |
Debug=0 |
PreRelease=0 |
Special=0 |
Private=0 |
DLL=0 |
Locale=1031 |
CodePage=1252 |
[Version Info Keys] |
CompanyName= |
FileDescription= |
FileVersion=1.0.0.0 |
InternalName= |
LegalCopyright= |
LegalTrademarks= |
OriginalFilename= |
ProductName= |
ProductVersion=1.0.0.0 |
Comments= |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/BitBucketReader.exe |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Unit1.pas |
---|
0,0 → 1,80 |
unit Unit1; |
interface |
uses |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
Dialogs, StdCtrls, registry, ExtCtrls; |
type |
TForm1 = class(TForm) |
Memo1: TMemo; |
Timer1: TTimer; |
Memo2: TMemo; |
Splitter1: TSplitter; |
procedure Timer1Timer(Sender: TObject); |
private |
procedure GetDump; |
end; |
var |
Form1: TForm1; |
implementation |
{$R *.dfm} |
uses |
Functions; |
procedure TForm1.GetDump; |
var |
reg: tregistry; |
i: integer; |
oldr, r: string; |
lw: char; |
begin |
reg := tregistry.create; |
try |
reg.RootKey := HKEY_LOCAL_MACHINE; |
if reg.OpenKeyReadOnly('SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\BitBucket') then |
begin |
oldr := memo1.text; |
if reg.ValueExists('PurgeInfo') then |
r := 'PurgeInfo = ' + BinaryStringToHexDump(RegistryReadDump(reg, 'PurgeInfo')) |
else |
r := 'No PurgeInfo'; |
for lw := 'A' to 'Z' do |
begin |
if reg.ValueExists(lw) then |
begin |
r := r + #13#10#13#10 + lw + ' = ' + BinaryStringToHexDump(RegistryReadDump(reg, lw)); |
end; |
end; |
if oldr <> '' then |
begin |
for i := 1 to length(oldr) do |
begin |
if oldr[i] <> r[i] then |
memo2.Lines.Add(inttostr(i)+': '+oldr[i]+' -> '+r[i]); |
end; |
end; |
memo1.Text := r; |
reg.CloseKey; |
end; |
finally |
reg.free; |
end; |
end; |
procedure TForm1.Timer1Timer(Sender: TObject); |
begin |
GetDump; |
end; |
end. |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/BitBucketReader.dpr |
---|
0,0 → 1,14 |
program BitBucketReader; |
uses |
Forms, |
Unit1 in 'Unit1.pas' {Form1}, |
Functions in 'Functions.pas'; |
{$R *.res} |
begin |
Application.Initialize; |
Application.CreateForm(TForm1, Form1); |
Application.Run; |
end. |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Project1.cfg |
---|
0,0 → 1,35 |
-$A8 |
-$B- |
-$C+ |
-$D+ |
-$E- |
-$F- |
-$G+ |
-$H+ |
-$I+ |
-$J- |
-$K- |
-$L+ |
-$M- |
-$N+ |
-$O+ |
-$P+ |
-$Q- |
-$R- |
-$S- |
-$T- |
-$U- |
-$V+ |
-$W- |
-$X+ |
-$YD |
-$Z1 |
-cg |
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; |
-H+ |
-W+ |
-M |
-$M16384,1048576 |
-K$00400000 |
-LE"c:\programme\borland\delphi6\Projects\Bpl" |
-LN"c:\programme\borland\delphi6\Projects\Bpl" |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Unit1.dfm |
---|
0,0 → 1,56 |
object Form1: TForm1 |
Left = 204 |
Top = 143 |
Width = 659 |
Height = 485 |
Caption = 'BitBucket Reader' |
Color = clBtnFace |
Font.Charset = DEFAULT_CHARSET |
Font.Color = clWindowText |
Font.Height = -14 |
Font.Name = 'MS Sans Serif' |
Font.Style = [] |
OldCreateOrder = False |
PixelsPerInch = 120 |
TextHeight = 16 |
object Splitter1: TSplitter |
Left = 0 |
Top = 193 |
Width = 651 |
Height = 5 |
Cursor = crVSplit |
Align = alBottom |
end |
object Memo1: TMemo |
Left = 0 |
Top = 0 |
Width = 651 |
Height = 193 |
Align = alClient |
Font.Charset = ANSI_CHARSET |
Font.Color = clWindowText |
Font.Height = -25 |
Font.Name = 'Courier' |
Font.Style = [] |
ParentFont = False |
ReadOnly = True |
ScrollBars = ssVertical |
TabOrder = 0 |
end |
object Memo2: TMemo |
Left = 0 |
Top = 198 |
Width = 651 |
Height = 248 |
Align = alBottom |
ReadOnly = True |
ScrollBars = ssVertical |
TabOrder = 1 |
end |
object Timer1: TTimer |
Interval = 300 |
OnTimer = Timer1Timer |
Left = 16 |
Top = 16 |
end |
end |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Unit1.ddp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/BitBucketReader.res |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/trunk/Recycle Bin Unit/Windows 95 Bit Bucket Reader/Functions.pas |
---|
0,0 → 1,89 |
unit Functions; |
(* |
Some Delphi Functions |
by Daniel Marschall |
*) |
interface |
uses |
SysUtils, Registry; |
function RegistryReadDump(AReg: TRegistry; AName: string): string; |
function BinaryStringToHexDump(ABinaryString: string): string; |
type |
TNibble = $0..$F; |
function LowerNibble(B: Byte): TNibble; |
function UpperNibble(B: Byte): TNibble; |
function MakeByte(UpperNibble, LowerNibble: TNibble): Byte; |
type |
TBitPos = 0..7; |
function GetBit(B: Byte; BitPos: TBitPos): boolean; overload; |
function GetBit(B: Char; BitPos: TBitPos): boolean; overload; |
implementation |
function RegistryReadDump(AReg: TRegistry; AName: string): string; |
const |
// Win2000 RegEdit has set the max input length of a REG_BINARY to $3FFF. |
// Probably its the longest possible binary string and not just a GUI limit. |
BufMax = $3FFF; |
var |
buf: array[0..BufMax] of byte; |
i: integer; |
realsize: integer; |
begin |
realsize := AReg.ReadBinaryData(AName, buf, SizeOf(buf)); |
for i := 0 to realsize-1 do |
begin |
result := result + chr(buf[i]); |
end; |
end; |
function BinaryStringToHexDump(ABinaryString: string): string; |
var |
i: integer; |
begin |
for i := 1 to Length(ABinaryString) do |
begin |
result := result + IntToHex(Ord(ABinaryString[i]), 2); |
if i <> Length(ABinaryString) then |
result := result + ' '; |
end; |
end; |
function LowerNibble(B: Byte): TNibble; |
begin |
result := B and 15 {00001111}; |
end; |
function UpperNibble(B: Byte): TNibble; |
begin |
result := B and 240 {11110000}; |
end; |
function MakeByte(UpperNibble, LowerNibble: TNibble): Byte; |
begin |
result := LowerNibble + UpperNibble * $10; |
end; |
function GetBit(B: Byte; BitPos: TBitPos): boolean; |
var |
p: byte; |
begin |
p := 1 shl BitPos; // 2 ^ BitPos |
result := B and p = p; |
end; |
function GetBit(B: Char; BitPos: TBitPos): boolean; |
begin |
result := GetBit(Ord(B), BitPos); |
end; |
end. |