PDA

View Full Version : اجرای دوباره برنامه



madmax
یک شنبه 23 شهریور 1382, 21:14 عصر
سلام خسته نباشید
سئوال قبلی رو که کسی جواب نداد
( انگار کسی بلد نبود ) :( "Lock Workstation in XP or 2k"


امیدوارم اینو جواب بدین
من یک برنامه نوشتم که بعد از اجرا minimize میشه توی Systry
حالا می خواهم که دفعه بعد که اجرا میشه show بشه
چه جوری میشه فهمید برنامه قبلا اجرا شده و تو حافظه وجود داره
من وقتی برای باره دوم اجراش میکنم Error mide
موفق باشین

jannati
دوشنبه 24 شهریور 1382, 13:05 عصر
دوست عزیز سلام
فکر میکنم راه حل مسئله شما این باشه که یک متغییر globalتعریف کنید .هر بارکه برنامه اجرا میشه این متغییر چک بشه .ابتدای اجرای برنامه اونو یک کنید و موقع خروج اونو صفر کنید.حالا هر بار که برنامه را اجرا میکنید یکبار در برنامه چک بشه که این متغییر صفره یا یک.اگه صفر بود اونو یک کنید و برنامه اجرا بشه و اگر یک بود از اجرای برنامه خارج بشید.(البته یه اشکالی داره که ممکنه وقتی متغییر 1شد دستگاه هنگ کنه یا برق بره و برنامه اجرا نشه تا در موقع خروج متغییر صفر بشه .پس متغییر همیشه یک میمونه.البته به نظرم درصدش زیاد نیست.)
در هر صورت ما همینو بلد بودیم.امیدوارم مشکلتون هرچه زودتر حل بشه.... :lol:

S.Azish
دوشنبه 24 شهریور 1382, 13:33 عصر
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_RESTORE = 9


Public Sub Main()
'
Dim lHwnd As Long
Dim strTemp As String

If App.PrevInstance Then
strTemp = Form1.Caption
Unload Form1
lHwnd = FindWindow(vbNullString, strTemp)
If lHwnd Then
Call ShowWindow(lHwnd, SW_RESTORE)
End If
Else
Form1.Show
End If
'
End Sub

madmax
چهارشنبه 26 شهریور 1382, 15:03 عصر
مرسی
راه حل MR Azish جواب داد
خیلی ممنون از لطفشون

ایران ویج
شنبه 19 مهر 1382, 14:53 عصر
با اینکه میدونم این تاپیک به جواب رسیده ولی چون یه راه دیگه هم هست گفتم حیفه گفته نشه بازهم ببخشید
App.PrevInstance اگه مقدار true داشته باشه یعنی برنامه مجدد داره اجرا میشه
کافیه توی فرم لود اینو بزارین

If App.PrevInstance = True Then
End
End If

همین



ایرا ویج