سلام دوستان
اگر برنامه ما در حال اجرا باشد چطور می توان از اجرای مجدد برنامه جلوگیری کرد.
سلام دوستان
اگر برنامه ما در حال اجرا باشد چطور می توان از اجرای مجدد برنامه جلوگیری کرد.
یه راهش اینه که با استفاده تابع API این کار رو انجام بدین.
با تابع FindWindow میتونید پنجره ی برنامه مورد نظر رو پیدا کنید.
پس باید در ابتدای برنامه چک بکنید که پنجره ی دیگه ای از برنامه تون باز نباشه و اگه باز بود یک پیغام بدهید و برنامه را ببندید.
موفق باشید.
اگه می شه کامل توضیح بدین لطفا
راست میگه منم لازم دارم
سلام
فرض کنید عنوان (Caption) فرم اول برنامه ی شما Form1 باشه.
در ابتدای برنامه شما با تابع FindWindow پنجره ای که این عنوان رو داشته باشه جستجو میکنید.
تابع FindWindow دو پارامتر میگیره. پارامتر اول نام کلاس پنجره ی مورد نظر هست و پارامتر دوم عنوان پنجره.
شما پارامتر اول رو NULL قرار بدین. پارامتر دوم هم که یک رشته هست Form1 باید باشه.
این تابع اگر چنین پنجره ای (پنجره ای با عنوان Form1) پیدا کنه Handle اون پنجره رو برمیگردونه و گرنه NULL رو برمیگردونه.
پس اگه مقدار برگشتی این تابع مخالف NULL بود متوجه می شوید که یک نسخه از برنامه ی شما در حال اجراست. پس اجازه نمی دهید برنامه ی فعلی اجرا بشه.
موفق باشید.
کسی فهمید؟
کجاش رو متوجه نمی شید ؟
فرض کنید برنامه ی شما در حال اجراست پس یک پنجره با عنوان Form1 باز هست.
حالا اگه دوباره روی آیکون برنامه کلیک شد چون یک پنجره با عنوان Form1 وجود داره پس دیگه نباید برنامه اجرا بشه.
همین !
سلام.
این دستور رو تو فرم لود بذار.
ولی اگه از فایل کپی بگیری فایل دوم اجرا میشه.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نوشته شده توسط Payman_62
آقا پیمان دست درد نکنه دنبال همین بودم.متشکرم
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)