PDA

View Full Version : سوال: نمایش فایل در فرم ( صفحه طراحی شده)



nsco_nsco
دوشنبه 09 آبان 1390, 07:17 صبح
سلام دوستان
من یک سوال دارم می خوام یک فایل فرض کنید html را در یک قسمت از فرمم باز کنم و نمایش بدهم البته می خوام فرضا این رو از ادرسی مثلا درایو سی بخونم و اون رو در فرم بگذارم و این طوری نشون داده بشود ممنون می شوم کمک کنید البته سریع خیلی لازمه :لبخند::قلب:

developing
دوشنبه 09 آبان 1390, 09:16 صبح
با سلام

براي نمايش فايل هاي وب از جمله html بايد از كامپوننت TWebBrowser استفاده كنيد و كافيه از دستور زير استفاده كنيد:

WebBrowser1.Navigate('YOUR WEB FILE');

كه به جاي YOUR WEB FILE آدرس فايل وب خودتون رو مي ديد.

nsco_nsco
سه شنبه 10 آبان 1390, 00:40 صبح
سلام ممنون از پاسختون برای فراخوانی فایل اگزه چه باید کرد؟ دوستان یاری کنید
:قلب:

سعید صابری
سه شنبه 10 آبان 1390, 15:09 عصر
ShellExecute جستجو کنید

nsco_nsco
سه شنبه 10 آبان 1390, 22:38 عصر
سلام ممنون از پاسختون من که نمی خوام فایل اگزه رو اجرا کنم
می خوام تو قسمتی از صفحه نرم افزارم نمایشش بدم تو یه چهار چوب ممنون می شم کمک کنید با تشکر:قلب:

Mahmood_M
سه شنبه 10 آبان 1390, 23:15 عصر
این تاپیک (http://barnamenevis.org/showthread.php?290936-Binding-كردن-فایل-اجرایی) ممکنه مشکلتون رو حل کنه ...

nsco_nsco
سه شنبه 10 آبان 1390, 23:40 عصر
سلام ممنون مطالعه کردم اما نتونستم استفاده کنم ببینید من دنبال شیی هستم که بتون مثلا بگذارمش وسط صفحه فرمم و بعد یک دکمه بگذارم با زدن روی دکمه مثلا نوتپد رو فراخوانی و در این شیی بریزه نه تمام صفحه یا جدا ممنون می شم کمک کنید خیلی لازماته ممنون :قلب:

Mahmood_M
چهارشنبه 11 آبان 1390, 00:35 صبح
شما باید Handle مربوط به Form یا Panel یا ... که میخواید برنامه درون اون نمایش داده بشه رو به عنوان Parent پنجره ی اصلی برنامه ای که می خواد اجرا بشه قرار بدید ، توی همون تاپیک این موضوع توضیح داده شده و کدش قرار داره ، از اون کد استفاده کنید ، اگر مشکلی داشتید بپرسید

موفق باشید ...

nsco_nsco
چهارشنبه 11 آبان 1390, 02:17 صبح
سلام ممنون از پاسختون مشکلی که هست اینه که با دستور زیر




var

H : Cardinal;

begin


ShellExecute(Handle, nil, PChar('\a\a.exe'), nil, nil, SW_HIDE);

H := FindWindow(nil, PChar('? - a'));

Windows.SetParent(H, Panel1.Handle);

ShowWindow(H, SW_SHOWMAXIMIZED);



در بالا جای علامت سوال برای اجرای فایل اگزه چی بنویسم ممنون میشم سریع کمک کنید البته توضیح هم بدید ممنون .:قلب:

nsco_nsco
چهارشنبه 11 آبان 1390, 17:40 عصر
سلام کمک کنید دوستان خیلی لازمه :

این یعنی چی ؟




نکته ای که مهمه اینه که شما باید " عنوان " یا " نام کلاس " پنجره ی برنامه ای که اجرا میکنید رو بدونید ، تا توسط تابع FindWindow اون رو پیدا کنید



فرض کنید من می خوام یک فایل اگزه که با دلفی ساخته شده را در این فرم نشون بدم چی باید بنویسم ممنون :قلب:

loo30fer
چهارشنبه 11 آبان 1390, 18:52 عصر
برای اینکار یک Panel روی فرمتون ایجاد کنید و سپس برای تست از این کد استفاده کنید:
var
H : HWND;
begin
ShellExecute(Handle, nil, PChar('C:\Windows\notepad.exe'), nil, nil, SW_HIDE);
Sleep(100);
H := FindWindow('Notepad', 'Untitled - Notepad');
Windows.SetParent(H, Panel1.Handle);
ShowWindow(H, SW_SHOWMAXIMIZED);
end;
ضمنا برای اجرا شدن کامل برنامه و ایجاد هندل با کمک تابع Sleep در رفتن به خط بعدی وقفه ایجاد کنید چون در صورت پیدا نکردن هندل 0 برگشت داده میشه اون موقع موجب کار نکردن کار شما بشه.
برای بدست آوردن کلاس پنجره دلخواهتون میتونید از این تابع کمک بگیرین.
function GetClassName(Handle: THandle): String;
var
Buffer: array[0..MAX_PATH] of Char;
begin
Windows.GetClassName(Handle, @Buffer, MAX_PATH);
Result := String(Buffer);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ShowMessage(GetClassName(FindWindow(nil,'Form1'))) ;
end;

nsco_nsco
جمعه 13 آبان 1390, 00:10 صبح
سلام ممنون از پاسخت اما مشکلی که هست میشه بگی این تکه برنامه بدست اوردن نام نرم افزار چطور کار می کنه یعنی باید اون نرم افزار رو می خوام پلیش کنم بعد این برنامه رو که بهم بده یا .... ممنون میشم کمک کنید اسلیپ هم کجای برنامه بنویسم ممنون :قلب: فقط سریع خیلی مهمه برام ممنون

nsco_nsco
جمعه 13 آبان 1390, 00:26 صبح
باز سلام هر کاری می کنم جواب نمی گیرم اگر می تونید یکی فایل بگذارید ممنون :قلب:

Mahmood_M
جمعه 13 آبان 1390, 13:43 عصر
یک نمونه ضمیمه کردم

nsco_nsco
جمعه 13 آبان 1390, 20:35 عصر
سلام ممنون از پاسخهاتون
اما من با این کد مشکلی ندارم که نوت پد رو باز میکنه من برای باز کردن نرم افزارهای دیگر استفاده می کنم انجام نمیشه فرض مثال یک اگزه دیگر که با دلفی نوشته شده مشکل من این هست ممنون می شم کمک کنید البته خیلی خیلی سریع :قلب:

Mahmood_M
جمعه 13 آبان 1390, 21:58 عصر
شما به جای NotePad می تونید هر برنامه ی دیگه ای رو نمایش بدید ، فقط باید Handle پنجره اش رو بدست بیارید !
حالا یا با استفاده از عنوانش یا با استفاده از نام کلاس پنجره یا ...
اون فایل Exe رو خودتون نوشتید ؟ فایل اجرایی خاصی هست یا هر فایل Exe ای رو باید در برنامه ی خودتون نمایش بدید ؟
لطفا توضیح کافی در مورد سئوالتون بدید تا بشه راهنمایی درستی کرد ، راه حل کامل براتون گذاشته شده ، اگر کدی که براتون گذاشته شد رو کمی بررسی کنید می بینید که کار سختی نیست


من برای باز کردن نرم افزارهای دیگر استفاده می کنم انجام نمیشه فرض مثال یک اگزه دیگر که با دلفی نوشته شده
نباید هم انجام بشه ! ، اون کد دنبال Handle پنجره ی برنامه ی NotePad می گرده ، شما باید عنوان پنجره یا نام کلاس پنجره ی مورد نظرتون رو بهش بدید ...

کدی که نوشتید و انجام نشد رو اینجا قرار بدید

nsco_nsco
شنبه 14 آبان 1390, 01:46 صبح
سلام بعد از کلی ور رفتن درست شد این کدست :



H : HWND;

begin

ShellExecute(Handle, nil, PChar('C:\Users\n-s\Desktop\Uss.exe'), nil, nil, SW_HIDE);

Sleep(100);
H := FindWindow(nil, PChar('Uss'));


Windows.SetParent(H, Panel1.Handle);

ShowWindow(H, SW_SHOWMAXIMIZED);



اما بیشتر فایل هار ا خارج از فرم باز میکنه ایا راحی برای حل این مشکل هست ممنون می شوم کمک کنید البته سریع مرسی دوستان :قلب:

loo30fer
شنبه 14 آبان 1390, 19:24 عصر
شاید مشکل از اندازه Panel1 باشه که روی فرم ایجاد کردین به جای Panel1 نام فرمتون رو بدین یا خاصیت SW_SHOWMAXIMIZED رو به SW_SHOWNORMAL و SW_NORMAL رو هم تغییر بدین ببینید این مشکلتون رفع میشه یا نه.

nsco_nsco
یک شنبه 15 آبان 1390, 17:45 عصر
سلام حتی با دادن این ها و حتی دادن اجرا شدن در فرم میاد جدا باز می کنه فایل را ممنون می شوم کمک کنید ممنون .:قلب:

nsco_nsco
دوشنبه 16 آبان 1390, 20:58 عصر
سلام دوستان این برام خیلی مهمه لطفا کمک کنید ممنون .:قلب:

nsco_nsco
پنج شنبه 19 آبان 1390, 06:49 صبح
سلام دوستان یعنی هیچ کدومتون تا حالا نخواستید چنین کاری کنید این خیلی مهمه که چرا هیچ کس چیزی نمیگه ؟ ممنون میشوم یاری کنید ممنون:افسرده::قلب: