כתבתי תוכנה (VB) שהפעלה בו-זמנית היא קריטית בשבילה איך אני מונע את זה? (מישהו זרק לי את המילה MUTEX אבל בינתים זה לא עזר לי) תודה
אתה בודק האם רצה התוכנית בזיכרון...
איך בודקים אם התוכנית רצה? אני יודע שיש איזה שהוא מקום בזכרון שמכונה MUTEX ושם יש אפשרות לבדוק אם התוכנית רצה איך אני ניגש לשם מתוך הקוד ?
אכן MUTEX הוא שטח גלובאלי/סטטי בזכרון שמאפשר שיתוף נתונים בתוך האפליקציה בין Threads שונים. בשביל לאפשר רק Instance אחד של האפליקציה שלך, אינני מכיר בVB דרך טובה יותר מלבדוק האם קיים כבר Process רץ של האפליקציה שלך, ואם כן - לצאת.
דורון
אפשר לחפש את החלון של התוכנית בעזרת FindWindow ב API של חלונות. יש גם את הפוקנציה עם הגבלת זמן לחיפוש (timout) למה לפעמים זה יכול להתקע...
Error: Keyboard not found Press F1 to continue
אני מצאתי לך משהוא יותר קל, ויותר אמין מ-API. תשים את זה למשל ב-Form_Load קוד: If App.PrevInstance = True Then MsgBox "The application is runing!" End End If
If App.PrevInstance = True Then MsgBox "The application is runing!" End End If
אינני מכיר VB (מסתבר), אבל הפתרון שלך נראה טוב. אני רק אציין שבC++ דווקא כן הייתי משתמש בMutex..
למה להישתמש במשהוא חיצוני, אם יש את זה כבר מובנה?
דורון אני כבר השתמשתי בקוד של רמי שהוא באמת פשוט וקצר אבל לצרכים עתידיים,(אני מתחיל לכתוב קצת ב C#) אשמח לדעת איך אני בודק מתוך הקוד אם ה process שלי רץ תודה