PDA

View Full Version : تشخیص فایلی که با دابل کلیک روی آن برنامه ما اجرا شده



Delphi XE2
یک شنبه 29 آذر 1394, 11:02 صبح
سلام
من با استفاده از یک تابع فرمت جدیدی را برای برنامه خودم در رجیستری ثبت میکنم
که با دابل کلیک روی آن فایل ها برنامه من اجرا میشود
حالا وقتی برنامه من اجرا شد چگونه آدرس فایلی که موجب باز شدن برنامه من شده را بدست بیاوریم
با تشکر

Mask
یک شنبه 29 آذر 1394, 13:51 عصر
تو همون کلید رجیستری باید با 1% مسیر رو در ParamStr برنامتون دریافت کنید.

Delphi XE2
دوشنبه 30 آذر 1394, 14:09 عصر
تو همون کلید رجیستری باید با 1% مسیر رو در ParamStr برنامتون دریافت کنید.

درست متوجه منظور شما نشدم
یعنی باید یک کلید رجیستری رو برای خوندن مسیر باز کنم
-------------
اما از ParamStr استفاده کردم که یه مشکلی داره
اگه در مسیر فایل مربوطه فاصله وجود داشته باشه دچار مشکل میشه
مثلا مسیر C:\Users\Documents\My Games\file.s
رو به شکل C:\Users\Documents\My نشون میده

Mask
سه شنبه 01 دی 1394, 17:37 عصر
رو به شکل C:\Users\Documents\My نشون میده
از " استفاده کنید.

Delphi XE2
چهارشنبه 02 دی 1394, 18:13 عصر
از " استفاده کنید.

ای که گفتی یعنیییییییی چه!!!

rahnema1
پنج شنبه 03 دی 1394, 13:05 عصر
سلام
شما از تابع GetCommandLine مربوط به API ویندوز استفاده کنید که هم نام فایل اجرایی و هم نام فایلی که باهاش برنامه اجرا شده را بر می گردونه
موفق باشید

Delphi XE2
پنج شنبه 03 دی 1394, 18:48 عصر
سلام
شما از تابع GetCommandLine مربوط به API ویندوز استفاده کنید که هم نام فایل اجرایی و هم نام فایلی که باهاش برنامه اجرا شده را بر می گردونه
موفق باشید

سلام ممنونم جواب دادید
چیکار کنم فقط قسمت دوم یعنی
نام فایلی که باهاش برنامه اجرا شده رو به تنهایی نشون بده
و قسمت اول که اسم برنامه است حذف شه

rahnema1
جمعه 04 دی 1394, 22:39 عصر
با ParamStr راحت تره
من توی لازاروس از ExtractDelimited استفاده می کنم شما از SplitString استفاده کنید

ShowMessage(ParamStr(1)) ;
ShowMessage(StrUtils.ExtractDelimited(2, GetCommandLine(), [' ']));

می تونید اینها را مطالعه کنید:
runwithparams (http://delphi.about.com/od/beginners/a/runwithparams.htm)
SplitString (http://docwiki.embarcadero.com/Libraries/Seattle/en/System.StrUtils.SplitString)
google (http://www.google.com)