امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
دو سوال در مورد پروسس و اجرای برنامه
نویسنده پیام
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #1
دو سوال در مورد پروسس و اجرای برنامه
با توجه به اینکه درمورد سوال قبلیم که لینکش در پایین است با دوستان به نتیجه ای نرسیدیم

http://www.iranvig.com/modules.php?name=...pic&t=2626

من برای رفع مشکل برنامم یه فکری به ذهنم رسید که به کمک شما دوستان نیازمندم

سوال اول : چکار کنم که برنامه بیش از یک بار اجرا نشه ؟
سوال دوم : چجوری با توجه به نام یک پروسس بفهمیم که آن پروسس وجود دارد یا نه و یا به عبارت دیگر برنامه با نام مشخص در ليست پروسس در حال اجرا است یا نه ؟
۱۱-دى-۱۳۸۴, ۲۲:۳۵:۱۸
ارسال‌ها
پاسخ
shamsoft آفلاین
كاربر دو ستاره
**

ارسال‌ها: 152
موضوع‌ها: 32
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 0
( 7 تشکر در 6 ارسال )
ارسال: #2
 
دوست عزیز برای سوال اولتون یه راه به ذهنم رسید.شما می تونید توی رجیستری یه کلید ایجاد کنید و مقدار اونو 0 قرار بدید و توی قسمت Form_load دو تا کار زیر رو انجام بدید.
اول اینکه در شروع برنامه یه سر به کلید مورد نظر در رجیستری بزنید و مقدار اونو +1 کنید.
بعد یه شرط بزارید که اگر مقدار کلید، در رجیستری به مقدار مورد نظر شما (که در این سوال 1 هست) رسید برنامه دیگه اجرانشه.(unload me )
سوال دوم رو هم بلد نیستم.
۱۲-دى-۱۳۸۴, ۰۰:۲۴:۴۳
وب سایت ارسال‌ها
پاسخ
vb_m آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 0
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #3
 
App.PrevInstance از این کد استفاده کن و در هنگام اجرای برنامه در if اون رو چک کن
۱۲-دى-۱۳۸۴, ۰۰:۴۸:۰۵
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #4
 
نقل قول: App.PrevInstance از این کد استفاده کن و در هنگام اجرای برنامه در if اون رو چک کن

دمت گرم
اينو چند وقت پيش تو يه سايتي ديده بودم
ولي هر چي فكر كردم چيزي يادم نيومد

ظمنا راه shamsoft جان عملي است ولي وقتي يه
راه ساده تر وجود داره چرا ديگه آدم اين كار كنه
من دنبال اين كد بودم.
از همگي ممنون

حالا سوال دوم موند ؟
۱۲-دى-۱۳۸۴, ۱۵:۲۱:۴۴
ارسال‌ها
پاسخ
shamsoft آفلاین
كاربر دو ستاره
**

ارسال‌ها: 152
موضوع‌ها: 32
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 0
( 7 تشکر در 6 ارسال )
ارسال: #5
 
ببخشيد ديگه من خيلي وي بي كار نكردم و از اين جور تابع ها بلد نيستم.راهي كه به نظر من رسيد بهتون گفتم و از وجود اون تابع اطلاعي نداشتم.
۱۲-دى-۱۳۸۴, ۱۵:۴۸:۰۵
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #6
 
همين كه به فكري ما هستي مهمه و ارزش داره
۱۲-دى-۱۳۸۴, ۱۶:۳۵:۰۴
ارسال‌ها
پاسخ
shamsoft آفلاین
كاربر دو ستاره
**

ارسال‌ها: 152
موضوع‌ها: 32
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 0
( 7 تشکر در 6 ارسال )
ارسال: #7
 
خواهش مي كنم.وظيفه است.مگه يادتون رفته چند رو ز پيش چقدر توي سوالات به من كمك كرديد.(چهار تا سوال ساده) :wink:
۱۲-دى-۱۳۸۴, ۱۶:۵۷:۳۷
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #8
 
جواب سوال دو رو هم پيدا كردم و اين پست با موفقيت به اتمام رسيد
تابع تشخيص وجود يك پروسس رو نوشتم اينم كدش؛ اگه كسي مي خواهد استفاده كنه

کد:
Private Function ExistProcess(ProcessName As String) As Long

Dim HSnapshot As Long
Dim Info As PROCESSENTRY32
Dim FirPro As Long
Dim ExeFile As String
Dim TmpPro As String
    
HSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
Info.dwSize = Len(Info)
FirPro = Process32First(HSnapshot, Info)

While FirPro <> 0
   ExeFile = Info.szExeFile
   TmpPro = TmpPro & " " & ExeFile
   Info.dwSize = Len(Info)
   FirPro = Process32Next(HSnapshot, Info)
Wend

CloseHandle HSnapshot

If InStr(TmpPro, ProcessName) <> 0 Then
ExistProcess = 1
End If

End Function

اينم متعلقاتش

کد:
Private Type PROCESSENTRY32
  dwSize As Long
  cntUsage As Long
  th32ProcessID As Long
  th32DefaultHeapID As Long
  th32ModuleID As Long
  cntThreads As Long
  th32ParentProcessID As Long
  pcPriClassBase As Long
  dwFlags As Long
  szExeFile As String * 260
End Type

Private Const TH32CS_SNAPPROCESS = &H2

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32.dll" (ByVal HSnapshot As Long, Uprocess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32.dll" (ByVal HSnapshot As Long, Uprocess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
۱۲-دى-۱۳۸۴, ۲۳:۳۶:۱۷
ارسال‌ها
پاسخ
User-Name آفلاین
كاربر تک ستاره
*

ارسال‌ها: 39
موضوع‌ها: 7
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #9
RE: دو سوال در مورد پروسس و اجرای برنامه
Iron_Fist :
سوال اول : چکار کنم که برنامه بیش از یک بار اجرا نشه ؟

vb_m :
App.PrevInstance از این کد استفاده کن و در هنگام اجرای برنامه در if اون رو چک کن

-------------
سلام
میشه سورس نمونه یا کد اینجا بزارین ؟
من متوجه نشدم
ممنون
۱۹-اردیبهشت-۱۳۸۵, ۱۴:۰۱:۰۶
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #10
RE: دو سوال در مورد پروسس و اجرای برنامه
دوست عزیز مقدار App.PrevInstance زمانی که یک برنامه قبلا در حال اجرا باشه مقدار True داره در غیر آن صورت مقدارش False هست:

کد زیر رو اولین لاین اجرای برنامت بزار:
If App.PrevInstance then End
به همین سادگی موجب می شید از یک برنامه فقط یکی در حال اجرا باشه !
حواستون باشه باید کامپایل شده برنامرو تست کنید! (چرا؟)
۱۹-اردیبهشت-۱۳۸۵, ۱۴:۲۱:۰۶
وب سایت ارسال‌ها
پاسخ
User-Name آفلاین
كاربر تک ستاره
*

ارسال‌ها: 39
موضوع‌ها: 7
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #11
RE: دو سوال در مورد پروسس و اجرای برنامه
مرسی Biggrin
چون قبل از کامپایل اصلا نمیشه چند بار بازش کرد که تست کرد
-------
این کد در قسمت Form Load باشه ؟!

یا اولین لاین کد کدها ؟!

و یا در بالای بالا
Begin VB.Form Form1
که Caption و غیره مشخص شده ؟!
۱۹-اردیبهشت-۱۳۸۵, ۱۵:۱۱:۲۳
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ذخیره کردن نتیجه اجرای کد به صورت رشته alefpe 1 2,740 ۱۰-خرداد-۱۳۹۴, ۱۰:۲۰:۲۲
آخرین ارسال: lord_viper
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 24,285 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  [سوال] اجرای کد با کلیک روی لینک نوشته در اکسل eppagh 0 2,334 ۰۳-بهمن-۱۳۹۳, ۱۶:۱۹:۰۴
آخرین ارسال: eppagh
Question [سوال] اجرای فرم با button روی شیت اکسل در VBA eppagh 6 10,897 ۰۱-مرداد-۱۳۹۳, ۱۵:۲۴:۳۸
آخرین ارسال: eppagh
  نیاز به دستور برای اجرای چکر برنامه Proxifier از طریق cmd hamidsystem 4 4,085 ۰۸-فروردین-۱۳۹۳, ۱۶:۱۳:۰۱
آخرین ارسال: hamidsystem
  سوال در مورد ماژول وینساک gachboy 5 4,476 ۲۲-بهمن-۱۳۹۲, ۱۷:۴۳:۵۲
آخرین ارسال: gachboy
  دو سوال درمورد برنامه های پرتابل policweb 16 11,532 ۲۸-شهریور-۱۳۹۲, ۱۰:۳۸:۳۹
آخرین ارسال: Ghoghnus
  سوال در مورد بدست آوردن سورس Hacker_2010 7 6,056 ۰۵-مرداد-۱۳۹۲, ۰۰:۵۴:۵۰
آخرین ارسال: babyy
  [سوال] یک سوال در مورد بانک اطلاعاتی ترانسپورتر 10 7,734 ۳۱-تير-۱۳۹۲, ۲۰:۱۲:۰۹
آخرین ارسال: Ghoghnus
  سوال در مورد کنترل Webbrowser Cr4ShD4Y 2 3,011 ۱۶-تير-۱۳۹۲, ۱۱:۴۱:۰۹
آخرین ارسال: kimiafars

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS