PDA

View Full Version : دسترسی از DLL به فرم موجود در EXE



Touska
یک شنبه 18 مرداد 1383, 11:31 صبح
آقا چطوری میشه از یک فابل DLL به ابزار یک فرم برنامه exe دسترسی پیدا کرد

یک مثال بگذارید خیلی ممنون :?:

Mbr
یک شنبه 18 مرداد 1383, 12:25 عصر
با سلام
شما می توانید بوسیله یک برنامه که در زیر آورده شده است ابتدا باید تمام توابع موجود در فایل DLL را از آن خارج کنید و سپس از آن در برنامه Exe خود استفاده کنید . دستورات آن بترتیب زیر است :



uses ImageHlp;
procedure ListDLLFunctions(DLLName: string; List: TStrings);

type
chararr = array[0..$FFFFFF] of char;
var
h: THandle;
i, fc: integer;
st: string;
arr: pointer;
ImageDebugInformation: PImageDebugInformation;
begin
List.Clear;
DLLName := ExpandFileName(DLLName);
if FileExists(DLLName) then
begin
h := CreateFile(PChar(DLLName),
GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if h <> INVALID_HANDLE_VALUE then
try
ImageDebugInformation :=
MapDebugInformation(h, PChar(DLLName), nil, 0);
if ImageDebugInformation <> nil then
try
arr := ImageDebugInformation^.ExportedNames;
fc := 0;
for i := 0 to ImageDebugInformation^.ExportedNamesSize-1 do
if chararr(arr^)[i] = #0 then
begin
st := PChar(@chararr(arr^)[fc]);
if length(st)>0 then List.Add(st);
if (i>0) and (chararr(arr^)[i-1]=#0) then Break;
fc := i+1;
end;
finally
UnmapDebugInformation(ImageDebugInformation);
end;
finally
CloseHandle(h);
end;
end;
end;

Delphi-Clinic
یک شنبه 18 مرداد 1383, 13:00 عصر
دوست عزیزم آقای Touska لطف کن عناوین پستهات رو درست انتخاب کن.

Touska
یک شنبه 18 مرداد 1383, 15:08 عصر
خیلی ممنونم آقای MBR اما منظور من این نبود منظورم این است که متن داخل یک Edit را که در فایل DLL است را تغییر دهم به وسیله فایل Exe برنامه که فایل Dll را صدا زنده بود نه استفاده از توابع آن


دوست عزیزم آقای Touska لطف کن عناوین پستهات رو درست انتخاب کن.

چشم حتما