سلام
دوستان راهنمايي بفرماين چطور يه دي ال ال رو با كد برنامه در سيستم كاربر رجيستر كنم
ممنون و منتظرم
سلام
دوستان راهنمايي بفرماين چطور يه دي ال ال رو با كد برنامه در سيستم كاربر رجيستر كنم
ممنون و منتظرم
سلام. يك يونيت جديد بساز و اين كدها رو داخلش وارد كنunit axutils;
interface
uses
Windows, SysUtils;
type
TDllRegisterServer = function: HResult; stdcall;
TDllUnregisterServer = function: HResult; stdcall;
const
LIB_REGISTER = 'DllRegisterServer';
LIB_UNREGISTER = 'DllUnregisterServer';
function IsHandle(Handle: THandle): Boolean;
function RegisterLibrary(szLibrary: String): Integer;
function UnRegisterLibrary(szLibrary: String): Integer;
implementation
function IsHandle(Handle: THandle): Boolean;
begin
// Determine if a valid handle
result:=(Handle <> 0);
end;
function RegisterLibrary(szLibrary: String): Integer;
var hLib: THandle;
drs: TDllRegisterServer;
begin
// Attempt to load the library
hLib:=LoadLibrary(PChar(szLibrary));
// Handle check
if IsHandle(hLib) then
begin
// Get the register function
@drs:=GetProcAddress(hLib, LIB_REGISTER);
if Assigned(@drs) then
// Make the function call
result:=drs
else
// Return last error
result:=GetLastError;
// Unload the library
FreeLibrary(hLib);
end
else
// Return last error
result:=GetLastError;
end;
function UnRegisterLibrary(szLibrary: String): Integer;
var hLib: THandle;
dus: TDllUnregisterServer;
begin
// Attempt to load the library
hLib:=LoadLibrary(PChar(szLibrary));
// Handle check
if IsHandle(hLib) then
begin
// Get the unregister function
@dus:=GetProcAddress(hLib, LIB_UNREGISTER);
if Assigned(@dus) then
// Make the function call
result:=dus
else
// Return last error
result:=GetLastError;
// Unload the library
FreeLibrary(hLib);
end
else
// Return last error
result:=GetLastError;
end;
end.
--اين هم كد نمونه ---unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, axutils;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
if RegisterLibrary('c:\windows\system32\venc.ocx') = 0 then
ShowMessage('Registered');
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if UnregisterLibrary('c:\windows\system32\venc.ocx') = 0 then
ShowMessage('Unregistered');
end;
end.
Last edited by Irdg; 14-08-2006 at 01:22.
اوووووه يه راه ساده با استفاده از shellexecute ميشه همين كار رو انجام داد
يعني بنويسي
يه چيز تو اين مايه ها اگه درست نوشته باشمکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سوييچ I براي install سوييچ U براي unistall بكار ميره
سلام
irdg عزيز دستتون درد نكنه
delphi.net عزيز دست شما هم درد نكنه .
هر دوتا كد رو امتحان مي كنم و خبرشو مي دم
فقط دلفي دات نت عزيز اگه يه كد هم مي نوشتي كه قبلش تست كنيم ايا فايل دي ال ال رجيستر شده يا نه خيلي خوب ميشد
بازم ممنون
يا حق
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)