PDA

View Full Version : خاتمه فایل



رهنورد2
سه شنبه 30 آبان 1385, 11:27 صبح
من قبل از اجرای برنامه ام یک فایل فلش را به اجرا در می اورم اما دومشکل داره

این فایل در رویدادonshowفرم قراردادم اما وقتی فایل اجرا میشه فرم من هم روی فایل میاید
چطور میشه فایل رااجرا کرد وفرم مخفی باشه وقتی فایل تمام شد فرم برنامه ظاهر بشه وبرنامه شوع به کار کنه

sarvestan
سه شنبه 30 آبان 1385, 11:42 صبح
چرا فلش را در برنامه خود نمایش نمی دهید؟

رهنورد2
سه شنبه 30 آبان 1385, 11:56 صبح
چرا فلش را در برنامه خود نمایش نمی دهید؟

چون یک exeاست

dkhatibi
سه شنبه 30 آبان 1385, 12:28 عصر
یک راه تئوریک اینه کخ مئت زمان فایل فلاش را در نظر را محاسبه کنی.
اگر فقط یک فرم داری در فایل پروژه Applicatin.Showmainform:=False قرار دهی.
زمان را هرجور دوست داری چک کنی (مثلا با قرار دادن تایمر و چک کردن آن در رویداد تایمر زمان ) و بعد از اون مدت زمان فرم را نشان بدی.
اگر فایل Exe هم به طور حوذکار بسته نمی شه!!! با دستور KillProcess که در این فروم بحث شده اونو متوقف کنی!

sarvestan
سه شنبه 30 آبان 1385, 12:37 عصر
در لینک زیر تابعی میبینید که نیاز دارید:
توقف اجرای برنامه تا پایان اجرای برنامه دیگر (http://barnamenevis.org/forum/showpost.php?p=242491&postcount=2)

با تشکر از جناب جهرمی

MNosouhi
سه شنبه 30 آبان 1385, 12:38 عصر
شما احتیاج به این تابع دارید :

function MFWinExecAndWait32(FileName:String; Visibility : integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);

StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := -1 { pointer to PROCESS_INF }

else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE) ;
//GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;

شما فایل exe رو با این تابع صدا بزنید ، برنامه وقتی که به این خط برسه صبر میکنه تا فایل exe شما بسته بشه ، بعد ادامه دستورات رو اجرا میکنه.

رهنورد2
پنج شنبه 02 آذر 1385, 11:54 صبح
درست شد ولی اگر بخواهم پس از اجرای برنامه اول به جای اینکه روی برنامه ام در نوار تسک بار کلیک کنم تا فعال شود وبالا بیاید به طور خودکار فعال شود چه باید کرد

sarvestan
شنبه 04 آذر 1385, 08:12 صبح
SendMessage(Application.MainForm.Handle,WM_SYSCOMM AND,SC_RESTORE,0);

رهنورد2
شنبه 04 آذر 1385, 09:09 صبح
عجیب است که بازهم پنجره همان پایین می ماند

رهنورد2
شنبه 04 آذر 1385, 10:22 صبح
درست اجرا میشه ولی در صورتی که نوار task barبه حالت autohideنباشه.

پس بایدنوار task barبالا بیاید.چطوری این کارمیشه

sarvestan
شنبه 04 آذر 1385, 11:05 صبح
گلکم 100تا سوال را تو یک تاپیک مطرح نمیکنند!

دوما قبلا در سایت بحث شده است!

رهنورد2
شنبه 04 آذر 1385, 11:30 صبح
به هر حال ممنون