PDA

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



amirtofighi
چهارشنبه 31 شهریور 1389, 07:41 صبح
با سلام
میشه یه راهنمایی به من کنید که باچه کدی میشه برنامه رو ریست کرد؟
یعنی کلا برنامه بسته بشه(application.terminate) وبعد بدون اینکه کاربر کاری بکنه برنامه دوباره اجرا بشه
مرسی

Pascal
چهارشنبه 31 شهریور 1389, 08:32 صبح
با سلام
میشه یه راهنمایی به من کنید که باچه کدی میشه برنامه رو ریست کرد؟
یعنی کلا برنامه بسته بشه(application.terminate) وبعد بدون اینکه کاربر کاری بکنه برنامه دوباره اجرا بشه
مرسی
در رويداد Destroy فرم اصلي برنامه خود بنويسيد

Winexec('Project1.exe',SW_SHOWNORMAL);

Felony
چهارشنبه 31 شهریور 1389, 11:08 صبح
WinExec یک تابع منسوخ شده هست به جاش از ShellExecute استفاده کنید .

amirtofighi
چهارشنبه 31 شهریور 1389, 19:12 عصر
منظورتون از Shell execute اینه که تو کد
Winexec('Project1.exe',SW_SHOWNORMAL);
جای winexec بذاارمش
اگه نه لطفا راهنمایی کنین روشش چطوریه

AbiriAmir
چهارشنبه 31 شهریور 1389, 20:26 عصر
ShellExecute(handle, 'open', 'project1.exe', 0, 0, sw_shownormal);(

Pascal
چهارشنبه 31 شهریور 1389, 22:13 عصر
منظورتون از Shell execute اینه که تو کد
Winexec('Project1.exe',SW_SHOWNORMAL);
جای winexec بذاارمش
اگه نه لطفا راهنمایی کنین روشش چطوریه

اگر قصد داريد از Shell execute استفاده كنيد بايد در قسمت uses نام يونيت Shellapi را اضافه كنيد

amirtofighi
یک شنبه 04 مهر 1389, 20:42 عصر
یه مشکلی پیش اومده و اون اینکه تو دستور:

ShellExecute(handle, 'open', 'project1.exe', 0, 0, sw_shownormal
وقتی به جای 'project1' یه متغییر رشته ای میذارم که آدرس فایل exe برنامه رو به اون دادم مثلا:
s:=ExtractFilePath(Application.ExeName)+'\gprogram .exe'
و مینویسم
ShellExecute(handle, 'open',s, 0, 0, sw_shownormal
قبول نمیکنه وباید آدرس رو به صورت کامل بنویسم مثل
ShellExecute(handle, 'open','c:\program.exe', 0, 0, sw_shownormal
تا قیول کنه
میشه راهنماییم کنید

amirtofighi
یک شنبه 04 مهر 1389, 21:59 عصر
پیدا کردم
باید از widechar استفاده میکردم
کد تبدیل string به wide char رو که فکر کنم به درد بخوره مینویسم:


var
path:string;
filename:pwidechar;
begin
pas:=ExtractFilePath(Application.ExeName)+'program .exe';
GetMem(filename, sizeof(WideChar) * Succ(Length(path)));
StringToWideChar(path, filename, Succ(Length(path)));
FreeMem(filename);
ShellExecute(handle, 'open',filename, 0, 0, sw_shownormal);
end;

vcldeveloper
دوشنبه 05 مهر 1389, 00:34 صبح
باید از widechar استفاده میکردم
کد تبدیل string به wide char رو که فکر کنم به درد بخوره مینویسم:
نیازی به همچین کدی نبود، کافی بود رشته مربوطه typecast بشه به نوع داده PChar:


ShellExecute(handle, 'open', PChar(s), 0, 0, sw_shownormal);