PDA

View Full Version : سوال: استفاده فایل exe در فرم های برنامه



کامروا
پنج شنبه 05 آبان 1390, 10:38 صبح
سلام خدمت دوستان عزیز
من میخوام توی اولین فرم برنامه ام از یک فایل Exe استفاده کنم. این فایل exe حاوی یک عکس انیمیت شده است که میخوام به عنوان Splash ازش استفاده کنم.
منظورم اجرای یک برنامه از درون دلفی نیست ها!!! منظورم قرار دادن یک فایل exe در درون فرم دلفی هست. می خوام این فایل در یکی از فرم های برنامم باز شه.مچکرم
با سپاس فراوان از اساتید محترم

Felony
پنج شنبه 05 آبان 1390, 12:33 عصر
تنها راه این هست که فایل exe مورد نظر رو اجرا کنید و توسط تابع FindWindow هندلش رو به دست بیارید و با تابع SetParent مالکش رو به فرم مورد نظر تغییر بدید .

کامروا
پنج شنبه 05 آبان 1390, 13:25 عصر
تنها راه این هست که فایل exe مورد نظر رو اجرا کنید و توسط تابع FindWindow هندلش رو به دست بیارید و با تابع SetParent مالکش رو به فرم مورد نظر تغییر بدید .

لطفا بیشتر راهنمایی کنید. مشکل این کد چی هست؟

procedure TForm1.Button1Click(Sender: TObject);
var
XPos: integer;
YPos: integer;
hWindow: hwnd;
begin
hWindow := FindWindow(nil,PChar('NotePad'));
if hWindow <> 0 then
begin
Form1.ParentWindow := hWindow;
XPos := 0;
YPos := 30;
SetWindowPos(Form1.ParentWindow, 100, XPos, YPos, 100, 40, SWP_SHOWWINDOW);
end
else
ShowMessage('Window not found!');
end;

کامروا
پنج شنبه 05 آبان 1390, 21:23 عصر
کسی جواب منو میده؟
لطفا

Felony
پنج شنبه 05 آبان 1390, 21:56 عصر
var
hWindow: hwnd;
begin
hWindow := FindWindow(PChar('NotePad'), nil);
if hWindow <> 0 then
begin
Windows.SetParent(hWindow, Self.Handle);
SetWindowPos(hWindow, 0, 0, 0, Self.Width, Self.Height, SWP_SHOWWINDOW);
end
else
ShowMessage('Window not found!');
end;

کامروا
پنج شنبه 05 آبان 1390, 22:06 عصر
var
hWindow: hwnd;
begin
hWindow := FindWindow(PChar('NotePad'), nil);
if hWindow <> 0 then
begin
Windows.SetParent(hWindow, Self.Handle);
SetWindowPos(hWindow, 0, 0, 0, Self.Width, Self.Height, SWP_SHOWWINDOW);
end
else
ShowMessage('Window not found!');
end;
نه :گریه: جواب نمیده

سعید صابری
پنج شنبه 05 آبان 1390, 22:46 عصر
کاملا درسته و جواب میده.دقیقا همون چیزیه که شما میخواین

کامروا
جمعه 06 آبان 1390, 10:43 صبح
نه واسه من که جواب نمیده!
ببینید ویندوز من 7 هست. نکنه واسه اینه!!
جای خط دوم میتونم از این استفاده کنم؟

hWindow := FindWindow(PChar('D:\Application_Name.exe'), nil);

دلفــي
جمعه 06 آبان 1390, 15:04 عصر
مراجعه كنيد به : http://barnamenevis.org/showthread.php?213254-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-exe-%D8%A7%D8%B2-%D8%AF%D8%A7%D8%AE%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87