Skip to content

Repository files navigation

בין הזמנים — ניהול זמן גישה למחשב (Windows)

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

נוצר באהבה על ידי לב טוב דיגיטלdigital.levtov.ukmytovmail@gmail.com

תכונות

  • לוח זמנים שבועי — לכל יום בשבוע מגדירים חלונות זמן (מותר/חסום), עם שעון 24 שעות שמראה את כל שעות היממה
  • שתי שיטות ברורות — "המחשב פתוח תמיד (חוץ ממה שחסום)" או "המחשב חסום תמיד (חוץ ממה שמותר)"
  • אכיפה אמיתית — בשעות החסומות מופיע מסך חסימה במסך מלא
  • ריבוי מסכים — חלון חסימה נפרד על כל מסך מחובר
  • מניעת עקיפה — חסימת Alt+Tab, Win, Ctrl+Esc, Alt+F4 וקיצורים נוספים בזמן חסימה; איבוד מיקוד מחזיר את מסך החסימה
  • שומר-שער (הגנה מפני מנהל המשימות) — שני תהליכים משגיחים זה על זה: אם הורגים את האפליקציה ממנהל המשימות, שומר-השער מקפיץ אותה מחדש תוך שניות, ולהיפך
  • שעון מהימן — החסימה נמדדת לפי שעון מונוטוני, כך ששינוי שעון המערכת לא עוקף את החסימה
  • אזהרה לפני חסימה — הודעה עם ספירה לאחור כמה דקות לפני שהמחשב נחסם (ברירת מחדל: 5 דקות), שמזהירה לשמור קבצים ולסיים את העבודה; מוצגת כבאנר חי בממשק וכהתראת ווינדוס
  • נעילה ידנית מלאה — כפתור "נעל עכשיו" מפעיל את מסך החסימה המלא של בין הזמנים, והפתיחה מתבצעת עם סיסמה
  • סיסמה — כניסה לניהול ההגדרות, שינויים, מסך החסימה ויציאה מהתוכנה — כולם דורשים סיסמה; אימות מתבצע בתהליך הראשי (לא בממשק), עם נעילה זמנית אחרי 5 ניסיונות שגויים למניעת ניחוש (ברוט-פורס)
  • יציאה מוגנת בסיסמה — "יציאה" מתפריט המגש דורשת סיסמת הורה; כך אי אפשר לעקוף את החסימה פשוט בלחיצה על יציאה
  • סיסמה מוצפנת בדיסק — הסיסמה נשמרת מוצפנת עם DPAPI של Windows (safeStorage) לשחזור למייל בלבד; לא מועברת לממשק ולא נכתבת כטקסט מלא
  • שחזור סיסמה למייל — כל הבקשות נשלחות לשרת השחזור של בין הזמנים בלבד (Google Apps Script + Google Sheets של המפתח)
  • אופליין מלא — כל פעולות התוכנה עובדות ללא אינטרנט; רק שחזור הסיסמה ובדיקת עדכונים דורשים רשת
  • עדכונים — התוכנה בודקת עדכון מרקע ומציגה הודעה בתוך התוכנה + התראת ווינדוס
  • חלונות שחוצים חצות — למשל 22:00–06:00 (הסוף הוא למחרת בבוקר)
  • מגש מערכת — רצה ברקע, מצב נוכחי + נעילה מהירה
  • אימות סיסמה כפול — הקלדה חוזרת בעת הגדרה או החלפת סיסמה
  • הפעלה עם Windows (תמיד פעילה, ללא אפשרות לכיבוי) — עולה אוטומטית בכל כניסה למחשב, גם עבור כל המשתמשים (Registry של המשתמש + של המחשב + משימה מתוזמנת בהרשאות גבוהות); האופציה אינה מוצגת בממשק
  • עדכון חי — כרטיס מצב עם ספירה לאחור למעבר הבא
  • מצב בהיר/כהה/מערכת — ערכת נושא הניתנת לבחירה, כולל מעקב אוטומטי אחרי הגדרת Windows בזמן אמת
  • יומן פעילות + דשבורד סטטיסטיקות — כמה שעות נחסם המחשב היום והשבוע, ניסיונות פתיחה שגויים, מתי נפתח/נחסם
  • חריגים חד-פעמיים — למשל "להרשות את כל יום שבת" לחופשה/חג, בלי לשנות את הלוח הקבוע (מצוין גם על שעון היום)
  • הודעה אישית במסך החסימה — מסר מהורה לילד, למשל "נלמד בשקט 🐣"
  • מסך "מצב ההגנה" — בדיקת תקינות אחת שמראה להורה שכל ההגנות פעילות (הפעלה עם Windows, משימה מתוזמנת, הגדרות משותפות, סיסמה, חיבור מייל שחזור)
  • גיבוי ושחזור הגדרות — הורדת קובץ גיבוי JSON ושחזור מלא, כולל חריגים והודעות — הסיסמה לעולם אינה מועתקת לגיבוי

דרישות

  • Windows 10/11
  • Node.js 20+ (להרצה מהקוד)
  • לחסימה יעילה נגד שינוי שעון — מומלץ להשאיר "הגדרת שעה אוטומטית" פעילה בווינדוס

הרצה

npm install
npm start

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

בדיקות

npm test

בניית קובץ התקנה (EXE)

npm install --save-dev electron-builder
npm run dist

הקובץ ייווצר בתיקיית dist/ (מתקין NSIS).

תכונות חדשות: יומן פעילות, חריגים, מצב הגנה וגיבוי

יומן פעילות וסטטיסטיקות (הלשונית "סטטיסטיקות")

  • שעות חסימה היום והשבוע, כמות הפעלות ונעילות, וניסיונות פתיחה שגויים (כולל נעילות זמניות).
  • רשימת אירועים אחרונים (פתיחה/חסימה/ניסיון שגוי) עם תאריך ושעה.
  • היומן נשמר בקובץ activity.log בתיקיית הנתונים (עד 1000 אירועים אחרונים, כדי לא לתפוח).

חריגים חד-פעמיים (הגדרות → חריגים)

  • מאפשרים לעקוף את הלוח הקבוע ליום מסוים בלבד — למשל "אפשר את כל יום שישי".
  • כל חריג הוא רשומה עם תאריך וסוג (מותר/חסום), וניתן למחוק אותו בקלות.
  • החריג מוצג כפס על שעון היום המתאים בלוח השבוע.
  • לחריג שחסום — סיסמת מנהל אינה פותחת אותו; הפתיחה מתבצעת רק מהממשק (בדומה למנעול הידני).

הודעה אישית במסך החסימה (הגדרות → מסך חסימה)

  • הודעה קצרה (עד 120 תווים) שתופיע במסך החסימה מעל שדה הסיסמה, למשל "נלמד בשקט".
  • מוצגת גם במנעול ידני ובחסימה רגילה — בכל מסך.

מצב ההגנה (הגדרות → בדיקת תקינות)

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

גיבוי ושחזור (הגדרות → גיבוי)

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

שחזור סיסמה למייל (שרת השחזור של בין הזמנים)

כל בקשת שחזור סיסמה נשלחת תמיד לשרת השחזור של בין הזמנים בלבד.

מה להגדיר בתוכנה (הגדרות → אבטחה ושחזור סיסמה)

  1. כתובת מייל לשחזור — המייל אליו תישלח הסיסמה כששוכחים אותה.

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

איך זה עובד

  1. לוח הזמנים נשמר כקובץ settings.json (למשתמש או משותף — ראו לעיל).

  2. תהליך רקע בודק את הזמן כל 5 שניות, לפי שעון מונוטוני שאינו מושפע משינוי שעת המערכת.

  3. כשמגיעים לשעת חסימה: מסך חסימה במסך מלא על כל מסך מחובר (ללא כפתורי סגירה) וקיצורי מערכת נחסמים.

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

  4. סיסמה שנזנה במסך החסימה נבדקת בתהליך הראשי (לא בממשק), ונעולה זמנית ל-60 שניות אחרי 5 ניסיונות שגויים. הצלחה פותחת את המחשב עד המעבר הבא בלוח הזמנים (ואז נחסם שוב).

  5. גם אם סוגרים את חלון ההגדרות — התוכנה נשארת פעילה במגש ואוכפת את הלוח.

  6. שומר-שער: האפליקציה מפעילה תהליך שמירה נפרד שמנטר אותה. אם התהליך הראשי נסגר ממנהל המשימות — השומר מקפיץ אותו מחדש תוך שניות (לפי קבצי heartbeat בתיקיית הנתונים). גם אם הורגים את השומר — התהליך הראשי מקפיץ אותו מחדש. לסגירה מלאה יש להשתמש ב"יציאה" מתפריט המגש — והיא דורשת סיסמת הורה (כדי שלא יהיה אפשר לעקוף את החסימה בלחיצה).

הערה: אם שכחתם את הסיסמה ואין מייל מוגדר — מחקו את הקובץ settings.json מהתיקייה %APPDATA%\בין הזמנים - ניהול זמן מחשב (או מהתיקייה %ProgramData%\BenHazmanim אם הרצתם כמנהל), או התקינו מחדש. שימו לב שמחיקת הקובץ מאפסת גם את לוח הזמנים.

מבנה הקבצים

main.js                    — תהליך ראשי: אכיפה, שעון מהימן, חסימת קיצורים, שחזור, עדכונים
preload.js                 — גשר מאובטח בין הממשק לתהליך הראשי
scheduler.js               — מנוע חישוב לוח הזמנים (משותף)
renderer/index.html        — ממשק ההגדרות (עברית, RTL, מסך כניסה)
renderer/block.html        — מסך החסימה (כל המסכים)
renderer/styles.css        — עיצוב
renderer/app.js            — לוגיקת הממשק
gas/PasswordRecovery.gs    — סקריפט שחזור הסיסמה (Google Apps Script)
test/scheduler.test.js     — בדיקות יחידה
scripts/generate-icon.js   — מחולל אייקונים (ללא תלות חיצונית)
scripts/build-preview.js   — בונה preview.html עצמאי לתצוגה בדפדפן
version.json               — מקור עדכונים לדוגמה (לפרסום ב-GitHub)

תצוגת ממשק בדפדפן (ללא הרצת Electron)

npm run preview

מייצר קובץ preview.html עצמאי שאפשר לפתוח בדפדפן. ההגדרות נשמרות ב-localStorage.

מגבלות ידועות

  • האכיפה ברמת שולחן העבודה. משתמש בעל הרשאות מנהל שיודע להרוג תהליכים או לערוך קבצים יכול לעקוף אותה.
  • Ctrl+Alt+Del הוא קיצור מערכת מוגן של ווינדוס שאי אפשר לחסום מתוכנה רגילה.

About

בין הזמנים - תוכנה לניהול זמן מחשב

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages