problem med dll

Tags:    delphi

User
Bruger #353 @ 10.07.04 11:49
Jeg sidder og øver mig lidt i brug af DLL filer.
Jeg ville lave en dll fil der kan deaktivere ctrl alt del (har koden fra en anden tråd her i forum)

koden i dll filen ser således ud:

library CtrlAltDel;

uses
SysUtils,
Classes,
Windows,
Registry,
testFrm in 'Test\\testFrm.pas' {Form1};

procedure DisableTaskMgr(bTF: Boolean); stdcall; export;
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;

reg.OpenKey('Software', True);
reg.OpenKey('Microsoft', True);
reg.OpenKey('Windows', True);
reg.OpenKey('CurrentVersion', True);
reg.OpenKey('Policies', True);
reg.OpenKey('System', True);

if bTF = True then
begin
reg.WriteString('DisableTaskMgr', '1');
end
else if bTF = False then
begin
reg.DeleteValue('DisableTaskMgr');
end;
reg.CloseKey;
end;

begin
end.
//--------------------------------------------------------


og koden i formen ser sådan ud

implementation

procedure DisableTaskMgr(bTF: Boolean); stdcall; external 'CtrlAltDel.dll'

procedure TForm1.Button1Click(Sender: TObject);
begin
DisableTaskMgr(True);
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
DisableTaskMgr(False);
end;
//------------------------------------------------------------

dll filen ligger i samme mappe som selve programmet.

Jeg får denne besked når jeg prøver at køre testen:
"Det lykkedes ikke at initialisere programmet korrekt (0Xc000007b). Klik OK for at afslutte programmet


hvad gør jeg galt?
Hvis jeg fjerner handlingen ved knapperne, så kommer fejlen ikke.





2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
User
Bruger #353 @ 10.07.04 12:08
Jeg sidder og øver mig lidt i brug af DLL filer.
Jeg ville lave en dll fil der kan deaktivere ctrl alt del (har koden fra en anden tråd her i forum)

koden i dll filen ser således ud:

library CtrlAltDel;

uses
SysUtils,
Classes,
Windows,
Registry,
testFrm in 'Test\\testFrm.pas' {Form1};

procedure DisableTaskMgr(bTF: Boolean); stdcall; export;
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;

reg.OpenKey('Software', True);
reg.OpenKey('Microsoft', True);
reg.OpenKey('Windows', True);
reg.OpenKey('CurrentVersion', True);
reg.OpenKey('Policies', True);
reg.OpenKey('System', True);

if bTF = True then
begin
reg.WriteString('DisableTaskMgr', '1');
end
else if bTF = False then
begin
reg.DeleteValue('DisableTaskMgr');
end;
reg.CloseKey;
end;

begin
end.
//--------------------------------------------------------


og koden i formen ser sådan ud

implementation

procedure DisableTaskMgr(bTF: Boolean); stdcall; external 'CtrlAltDel.dll'

procedure TForm1.Button1Click(Sender: TObject);
begin
DisableTaskMgr(True);
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
DisableTaskMgr(False);
end;
//------------------------------------------------------------

dll filen ligger i samme mappe som selve programmet.

Jeg får denne besked når jeg prøver at køre testen:
"Det lykkedes ikke at initialisere programmet korrekt (0Xc000007b). Klik OK for at afslutte programmet


hvad gør jeg galt?
Hvis jeg fjerner handlingen ved knapperne, så kommer fejlen ikke.



Nå tror selv jeg fandt fejlen. Jeg har jo glemt at eksporte proceduren.




Du kan sagtens lave dll-filen, men du kan ikke deaktivere ctrl+alt+delete i win 2k og xp. Du kan deaktivere joblisten via regedit, og du kan også deaktivere (opsnappe) alle andre tastetryk før windows undtagen windows-tasterne (måske også andre, har bare ikke prøvet).

n i f e
115 105 102 105
6E 69 66 69



t