سلام من يه برنامه نوشتم اتوران ميسازه اما وقتي رو درايو كليك ميكني درايو باز نميشه باز برنامه با همون اسم تو پروسه سيستم بارگذاري ميشه ميخوام كاري كنم كه فقط واسه يك بار برنامه اجرا بشه نه واسه چند بار
ممنون ميشم راهنمايي كنيد
میتونین از createmutex برای جلوگیری از ساخته شدن چند بار برنامه استفاده کنین
سلام ميشه يه كم بيشتر توضيح بديد
سلام
یکم خوب متوجه نشدم منظورتون رو .
ولی اگه میخوایین برنامه یکبار اجرا بشه ، میتونید از کد زیر استفاده کنید
کد:
If App.PrevInstance = True Then MsgBox "s"
سلام.
این کد جلوی اجرا مجدد برنامه رو نمیگیره. فقط پس از اجرای مجدد برنامه ما متوجه میشیم که قبلا 1 بار اجرا شده و برنامه رو میبندیم و باز درایو باز نمیشه. این به تنظیمات ویندوز ربط داره. وقتی درایوی اتوران داشته باشه فکر این مشکل رو هم داره.
خوب این واسه اجرا بود
اگه هدف باز کردنه درایور باشه ، برنامه خودش این کارو بکنه ! فکر کنم میشه ،، یا باید اتوران پاک بشه که بعد از پاک شدن معمولا ارور میده ، تا ریست نشه دستگاه ؛ یا همون برنامه بازش کنه !

سلام
خوب هستين
ممنون كه راهنمايي كردين با اين كد كه دوستمون داد ديگه برنامه واسه چند باز باز نميشه
[code]
If App.PrevInstance = True Then End
[code]
اما حالا ديگه درايو باز نميشه فكر كنم يه راه باشه تست ميكنم خبرشو ميدم
منم ازین کد استفاده کردم عالیه
[code]
Private Sub Form_Initialize()
If App.PrevInstance = True Then
MsgBox "Alreay Runing"
Unload Me
End
End If
End Sub
اما یه مشکل دارم میخوام بعد از جلوگیری از اجرای مجدد برنامه ، برنامه منو که در حال اجراست رو نشون بده و اونو اکتیو و فوکوس کنه من خیلی از برنامه هارو دیدم که این جوری بودن.
با تشکر.
سلام
نقل قول: اما حالا ديگه درايو باز نميشه فكر كنم يه راه باشه تست ميكنم خبرشو ميدم
با خود برنامه بازش کن ! مثل ویروس new folder !!!
نقل قول: ما یه مشکل دارم میخوام بعد از جلوگیری از اجرای مجدد برنامه ، برنامه منو که در حال اجراست رو نشون بده و اونو اکتیو و فوکوس کنه من خیلی از برنامه هارو دیدم که این جوری بودن.
برنامه در حال اجرا باید با برنامه دوم که باز میشه در ارتباط باشه !
میتونید از یه فایل استفاده کنید که برنامه اولیه ثانیه به ثانیه چک بکنه که فکر نکنم طرح خوبی باشه
یا از سوکت استفاده کنید
دیگه روش دیگه ایی نمیدونم

نقل قول: با خود برنامه بازش کن ! مثل ویروس new folder !!!
میشه از این کد استفاده کرد
کد:
Shell "Explorer.exe " & Left(App.Path, 2), vbMaximizedFocus
ولی خیلی ضایعه چون اولا تو پنجره جدید باز میشه
دوما ممکنه طرف پنجره هاش ماکسیمایز نباشن و وقتی درایو تو حالت ماکسیمایز باز بشه طرف شک میکنه
نقل قول: اما یه مشکل دارم میخوام بعد از جلوگیری از اجرای مجدد برنامه ، برنامه منو که در حال اجراست رو نشون بده و اونو اکتیو و فوکوس کنه من خیلی از برنامه هارو دیدم که این جوری بودن.
اگه در حد ابتدایی میخوای میتونی هندل برنامه خودت رو از روی Caption پیدا کنی و با ShowWindow اونو بالا بیاری و فوکوس بدی ولی اگه در حد حرفه ای میخوای من هم خودم محتاج پاسخم.
ای خدا کی بشه ما هم ترفندهای معمول مورد استفاده در نرم افزارهای رایج رو یاد بگیریم.

نقل قول: ميخوام كاري كنم كه فقط واسه يك بار برنامه اجرا بشه نه واسه چند بار
فرض کنید این مسئله به بهترین روش حل شد (یکی از روش های ذکر شده) ولی تا وقتی که درایو به حالت عادی باز نشه فایده نداره.
شاید بشه با همون دستوراتی که تو فایل Autorun.inf می نویسیم یه کاریش کرد، همونطور که میشه گزینه های Open, AutoPlay, Search, Explore رو به دلخواه خودمون تغییر بدیم...
سلام دوستان عزیز
نقل قول: كمك براي اجرا شدن برنامه فقط براي يك بار
دوست عزیز از این کد استفاده کن
این جوری برنامت بیشتر از یک بار اجرا نمیشه !
کد:
Private Sub Form_Load()
If Val(GetSetting(App.EXEName, "Settings", "chekonerun", 0)) = 0 Then
SaveSetting App.EXEName, "Settings", "chekonerun", 1
Else
End
End If
End Sub
موفق باشی
نقل قول: شاید بشه با همون دستوراتی که تو فایل Autorun.inf می نویسیم یه کاریش کرد، همونطور که میشه گزینه های Open, AutoPlay, Search, Explore رو به دلخواه خودمون تغییر بدیم...
mojtabamalaekeh عزیز میشه این رو به ما هم یاد بدی ؟؟؟

[/quote]