#774

התוכנית דואגת שהעותקים שלה לא יפעלו בו-זמנית ולא יפרקו זה מזה את אותם קבצים. לשם כך נוצר בהפעלה קובץ-מנעול שירותי בתיקייה הזמנית של Windows.

איך זה בנוי

המנעול הוא קובץ טקסט קטן בתיקייה %TEMP%, שבתוכו רשום מספר התהליך. השם תלוי בשם התוכנית ומסתיים ב-_gui.lock, _download.lock או _convert.lock — לפי מצב העבודה:

  • חלון התוכנית — לא יעלה אם פועל חלון אחר או כל אחד משירותי הרקע;
  • שירות ההורדה ושירות ההמרה — לא יעלו אם פתוח חלון התוכנית או שכבר פועל שירות זהה;
  • מצבים חד-פעמיים (מחזור אחד, המרה חד-פעמית) אינם יוצרים מנעול;
  • הניקוי לא יופעל כל עוד פועל חלון התוכנית או כל שירות.

בסיום תקין המנעול נמחק מעצמו.

«התוכנית כבר פועלת», למרות שאין חלון

קודם כול בדקו את מנהל המשימות — החלון יכול היה להתמזער לאזור ההתראות או להישאר תלוי כתהליך. אם התהליך קיים, סגרו אותו כמקובל.

אם אחרי סיום חריג (נותק החשמל, הופסקה המשימה) קובץ המנעול נשאר על הדיסק, התוכנית בדרך כלל מסתדרת בעצמה: היא בודקת אם התהליך הרשום בו חי, ובמידת הצורך כותבת את המנעול מחדש. הבעיה נשארת רק במקרה הנדיר שבו Windows הספיק להקצות את אותו מספר לתהליך אחר — אז יש למחוק את הקובץ ידנית.

איך למחוק את המנעול ידנית

  1. ודאו שהתוכנית באמת אינה פועלת.
  2. פתחו את סייר הקבצים והקלידו בשורת הכתובת %TEMP%.
  3. מצאו את הקבצים שמסתיימים ב-_gui.lock, _download.lock, _convert.lock, ומחקו אותם.
  4. הפעילו את התוכנית.

מה לא צריך לעשות

  • להפעיל שני עותקים של התוכנית «בשביל המהירות» — ההזמנות יורדות ומומרות במקביל בתוך עותק אחד, ולשם כך קיימים פרמטרי ההמרה.
  • להחזיק בו-זמנית את חלון התוכנית ושירות רקע על מחשב אחד — הם מפריעים זה לזה ויחסמו את ההפעלה.