ورود

View Full Version : تشخیص نوع اجرا



lord_viper
شنبه 10 اسفند 1387, 09:00 صبح
با سلام
من یه برنامه ای دارم که حتما باید در استارت اپ قرار بگیره و موقع شروع ویندوز یه سری کارها رو انجام بده چطور میتونم تشخیص بدم زمانی که برنامه اجرا شده کاربر برنامه رو اجرا کرده یا از طریق startup اجرا شده؟
با تشکر

hojjatcroos
شنبه 10 اسفند 1387, 09:28 صبح
مسیر برنامه خودتون رو در ریجستری وارد کنید و اون رو در Startup قرار ندین.فایل را در یک جای پرت بریزید تا کاربر به اون دسترسی نداشته باشه (البته به برنامه شما هم بستگی داره که چه قدر رعایت این نکته مهم است).

lord_viper
شنبه 10 اسفند 1387, 15:23 عصر
ممنون از جوابتون کاربر باید به برنامه دسترسی داشته باشه تا تنظیماتشو پیاده سازی کنه
فقط میخواهم تشخیص بدم الان که برنامه اجرا شده کاربر اونو اجرا کرده یا توسط سیستم عامل اجرا شده
مدت زمانی که شما سیستم رو روشن میکنین فکر کنم تو رجیستری ثبت میشه کسی ادرسشو داره؟
(منظورم مدت زمان استفاده از ویندوز از زمان نصب نیستا)

hojjatcroos
شنبه 10 اسفند 1387, 16:12 عصر
سلام کد زیر این کار رو انجام می دهد.

Procedure TForm1.Button1Click(Sender: TObject);

Var NDay:Double;

Tick:Longint;

BTime:TDateTime;

S:String;

Begin

Tick:=GetTickCount;

NDay:=tick/86400000;

BTime:=Now-NDay;

S:='"Windows started on" dddd,mmmm d,yyyy,'+'"at" hh:nn:ss AM/PM';

ShowMessage( FormatDateTime(S,BTime)+#10#13+

'It been up for '+IntToStr(TRUNC(nday))+' Days,'+

FormatDateTime(' h "Houre," n "minutes," s "seconds"',nday));

End;


خوب شما مسیراجرای فایلتون رو چک کن ببین از توی Startup هست یا نه.

vcldeveloper
شنبه 10 اسفند 1387, 19:37 عصر
چطور میتونم تشخیص بدم زمانی که برنامه اجرا شده کاربر برنامه رو اجرا کرده یا از طریق startup اجرا شده؟
یک Commandline سوئیچ برای برنامه تعریف کنید، که هر وقت وجود داشت، یعنی برنامه از طریق startup اجرا شده. در مسیری هم که از برنامه در رجیستری ذخیره می کنید، سویئچ را هم ذخیره کنید. مثلا:
MyApp.exe /startup

برای کار با سوئیچ Commandline هم می تونید از توابع paramCount و ParamStr استفاده کنید.

AliReza Vafakhah
شنبه 10 اسفند 1387, 19:58 عصر
آقای کشاورز میشه یه مثال بنویسید

ممنون

vcldeveloper
یک شنبه 11 اسفند 1387, 00:49 صبح
if ParamCount > 1 then
if SameText(ParamStr(1),'/startup') then
// program is started with startup swith