דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
A

AVIVI

@AVIVI
אודות
פוסטים
871
נושאים
152
שיתופים
0
קבוצות
1
עוקבים
1
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • שיתוף | אתר למעקב משלוח הכי טוב שקיים!!!
    A AVIVI

    השונה באתרים אלו מכל האתרים שהם מפרטים היכן נמצא המשלוח ואצל איזו חברה הוא כעת!

    תהנו!!!

    מאושר

    קישור לאתר לחץ כאן

    לאחר בדיקה של האתר שהביא ידידינו @הכל-מלמעלה יש בו מעלות נוספות כגון שליחת עדכון לאימייל וכו' ולכן אצרף גם את האתר הזה לפוסט תודה רבה @הכל-מלמעלה!! ואל תשכחו לעשות לו 👍 👍 👍

    קישור לאתר לחץ כאן

    👍 👍 👍👍 👍 👍👍 👍 👍👍 👍 👍👍 👍 👍👍 👍 👍👍 👍 👍👍 👍 👍

    כללי - עזרה הדדית

  • מדריך | הפקת דוח נתוני סוללה
    A AVIVI

    הפקת דוח נתוני סוללה

    קונים מחשב יד שנייה ואתם לא יודעים איך הסוללה שלו?
    סוללה חדשה מטכנאי או מאלי אקפרס/אמזון וכו'?
    רוצים לדעת מה איכות הסוללה?
    הנה מדריך קל ופשוט למציאת נתוני הסוללה במחשב ומה התפוקה שלה

    קודם כל נפתח cdm(שורת הפקודה) בחיפוש דרך תפריט התחל
    נזין את הפקודה הבאה

    powercfg /batteryreport
    

    לאחר מכן נקבל פלט עם כתובת html כזו
    3985f513-07cd-49fa-a563-d5c8d05f9e80-image.png

    נעתיק את הכתובת לדפדפן
    ויפתח לנו דו"ח נתוני הסוללה

    לעצלנים אני מצרף את ה-bat הבא שעושה את מה שאמרתי עד עכשיו לבד
    מפיק דוח נתוני סוללה.bat

    נגלול קצת ונמצא את השורות הבאות כמו בתמונה
    3747ba35-95ff-4793-bb54-6d63a5d7cf16-image.png

    הערך הראשון הינו קיבולת הסוללה המקורית
    הערך השני הינו קיבולת הסוללה העכשוית

    כדי לקבל תוצאה באחוזים נחלק את קיבולת הסוללה העכשווית בקיבולת הסוללה המלאה
    התוצאה אצלי היא 0.51 כלומר הסוללה עכשיו בתפוקה של 51% שזה בסדר יחסית למחשב קצת ישן
    סוללה פחות מ 30% כבר לא כל כך רלוונטית

    והעיקר שיהיה בהצלחה והרבה סייעתא דישמייא!

    עזרה הדדית - מחשבים וטכנולוגיה

  • מדריך | דרייברים רשמיים לכל המחשבים (מתעדכן)
    A AVIVI

    כידוע לאחר התקנה נקייה של וינדוס הדבר הנכון ביותר הוא להתקין דרייברים רשמיים!!
    בגלל חוסר מידע שיש רציתי לקבץ בפוסט הזה בעז"ה את כל צורות ההתקנה הנכונות
    מפני שאני חובב ולא טכנאי במקצועי אשמח לעזרתכם...


    טוב לאחר ההקדמה בעז"ה נתחיל:
    קודם כל כדי לבדוק אם הבעייה שיש לנו במחשב היא דרייברים לוחצים על הלחצן הימני בעכבר על סמל הוינדוס וברשימה הנפתחת יש לבחור "מנהל ההתקנים" אם יש כמה התקנים המופיעים בחלון הנפתח כסימן שאלה הרי שחסר לנו דרייברים ואנו נדרשים להתקינם

    סדר עדכוני הדרייברים הוא כדלהלן:

    1. תוכנת עדכונים רשמית(במידה ויש)
    2. עדכוני דרייברים דרך האתר הרשמי (בד"כ נכנסים לאתר הרשמי מקלידים את שם המחשב המודבק על המחשב או מורידים באתר תוכנה שמזהה את המחשב ועוברים שם לסריקת דרייברים הורדה והתקנה)
    3. עדכון דרייברים דרך הגדרות>עדכוני וינדוס>אפשרויות מתקדמות>עדכונים אופציונליים>עדכוני מנהל התקן
    4. עדכון ידני הסבר בהמשך
    5. דרך תוכנות עדכון דרייברים הנפוצות בפורום הסבר בהמשך

    Lenovo

    טוב זה המחשב שהיה לי בו את הבעיות ולכן התחלתי בו
    ללונובו יש תוכנת עידכונים רשמית אבל היא לא מוצעת באתר הרשמי כי הם מעדיפים כנראה עדכון דרך האתר שלהם מה שבמקרים רבים יוצר בעיות שלא מתקין את כל הדרייברים הנצרכים
    system_update_5.08.03.59.exe
    ולאחר מכן יש להיכנס לאתר הרשמי בכתובת support.lenovo.com/il/he ולפעול ע"פ ההוראות

    DELL

    תוכנת עדכונים רשמית:
    dell-command-update
    אתר סריקת המחשב dell.com/support/home/en-il?app=drivers

    ASUS

    תוכנת עדכונים רשמית asus.com/il/support/myasus-deeplink
    לא הבנתי אם זה תוכנה לדרייברים או תוכנה כמו dell support (אשמח לעדכון מנסיון)

    HP

    תוכנת עדכונים רשמית support.hp.com/il-he/help/hp-support-assistant


    כמובן שיש עוד חברות אבל אני לא מכיר

    אשמח מאד!! שתוסיפו לי מידע מנסיון!

    עדכון ידני

    במקרה וכל מה שרשמתי לעיל לא הצליח נשארה האופצייה האחרונה לדרייברים רישמיים
    כאן יש מדריך של @יוסי-מחשבים האלוף לעדכון דרייברים ידנית קל ופשוט!

    תוכנות שונות לעדכון אם כל השלבים דלעיל לא הצליחו

    תוכנת DRF כאן יש הדרכה מפורטת מאד של @אלישי המנהל היקר בליווי תמונות ופשוט מאד

    לעומת זאת @יוסי-מחשבים המליץ על תוכנת Snappy Driver כאן

    ויש עוד הרבה תוכנות תמיד תוכלו להתרשם מהסקר כאן ולהוריד מהאינטרנט מה שאתם רוצים


    אולם יש לשים לב!!

    בהתעסקות עם תוכנות עדכון אוטומטיות לפעמים הן מתקינות דרייבירים לא קשורים ועוד מיני ירקות (רקובים) שימו לב מה הן אומרות שהן מתקינות והפעילו את השכל השוכן בין האזניים כי לא כל דבר שקיים בעולם צריך אותו מותקן על המחשב האישי!

    בהצלחה!!

    ושוב אני כותב אשמח לעדכון הפוסט בידע שלכם

    עזרה הדדית - מחשבים וטכנולוגיה

  • ההתחברות וההתנהלות באתר לפעמים איטיים להחריד
    A AVIVI

    אם תוכלו לעשות משהוא בנידון
    ותודה רבה על הכל אתם פשוט מדהימים!!!!!!!!!!!!!
    👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍

    באגים/הצעות ייעול

  • מדריך | מדריך 2# canva pro בחינם
    A AVIVI

    לאחר המדריך המוצלח שהכין @amit5470 כאן ולאחר שנחסמים כל הקישורים ש- @amit5470 טורח להביא כל פעם

    ובמיוחד כדי שלא להטריח את @amit5470...

    מצאתי דרך קלה לעשות את זה לבד...

    אז קודם כל תכנסו לאתר קנבה בקישור הבא https://www.canva.com/
    תפתחו חשבון עם המייל שלכם אני עשיתי עם מייל פקטיבי
    ותגיעו לחלון הבא
    ef2f5d0b-44b4-400c-9a63-ffd7988f74b7-image.png

    תגללו למטה (שימו לב שצוות המונה 500 חברים אין אפשרות כניסה אליו...)
    ותבחרו צוות שימו לב יש צוותים פתוחים להצטרפות וישנם כאלה שצריך לשלוח בקשה כמובן שתתצרפו לפתוחים...
    וכן יש צוותם שמנויים לפרו וישנם כאלה שלא...
    והנה הצטרפתם.....
    e2d1497d-00ba-4653-8c60-2625b3658c07-image.png

    אם במקרה הצטרפתם לצוות של מנוי לפרו
    היכנסו ללשונית הבאה
    8010ee88-f7fe-4399-bd79-697eb0e32b46-image.png
    ותבחרו הצטרף לצוותיםוחפשו שוב עוד צוות

    בהצלחה רבה!!!


    שימו לב שבכל מקרה אתם יכולים להצטרף גם מהחשבון שלכם ל- 30 יום חינם...

    60522a18-df5b-4fb8-b3f0-d9c64ef64f0a-image.png

    עזרה הדדית - מחשבים וטכנולוגיה

  • בקשה | תוכנה לחיבור בין שירים
    A AVIVI

    @bbn שים לב שכשאתה פועל לפי ההסבר של @אבא-תודה תקבל מחרוזת אבל ישמעו את ה'תיק' בין השירים לכן המלצה שלי שכשאתה מאחד את השירים תשתמש בכלי הזה 609c30c5-73ae-493d-a7d1-13c5020c4557-image.png
    ובכל התחלה וסוף של רצועה תעשה ככה
    edf4a7da-48ac-4779-a3ba-3496fd720c3e-image.png
    וכך זה אמור להשתלב לך
    בהצלחה👍 👍 👍 👍 👍 👍
    אתה פשוט מנמיך את סוף הרצועה ואת תחילתה וכך זה נשמע יותר טוב

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | חדש! תוסף שיסייע לכם להפסיק לשוטט...
    A AVIVI

    תמיד חיפשתי להפחית את הזמן ⏳ שאני במסך 💻 כמו עכשיו.
    רציתי תוסף שיזכיר לי כמה זמן ⏱️ אני מבזבז מול המסך.
    ומפני שאין לי ידע בתכנות 🧰 וגם לא AI פתוח 🤖 (מופחת סיכונים ב"ה) 🙏.
    חיכיתי להזדמנות שיגיע לידי כדי לפתח את התוסף הבא 🚀.
    הוא לא מושלם, יש עדיין מה לשפר 🛠️.
    אני אשמח אם מישהו ישפר אותו 🤝.
    הסתפקתי אם לפרסם אבל זה נראה שימושי 🟢 אע״פ שהוא בחיתוליו 👶.
    אז הנה הוא..

    מונה ביזבוז זמן 5.7.zip

    אשמח אם תהנו ותשפרו
    נקודות אפשריות לשיפור

    1. מניית זמן לפי דומיין ולא לפי כתובת
    2. רשימות לבנות ושחורות ובחירה בניהם
    3. קפיצת סיכום יומי בסגירה
    4. אדום מהבהב בסוף
    5. קפיצת התראה לאחר X זמן עם טקסט משכנע להפסיק
    6. יכולת להגדיל ולהקטין את הבאנר

    נלענ"ד לא להוסיף! כפתור X לסגירת הבאנר

    וכו' וכו' כיד הדמיון הטובה
    בהצלחה ומקווה שיהיה לתועלת


    אני יודע שיש עוד תוספים של חסימות
    אבל חיפשתי תוסף קרצייה שיתזכר אותי בנועם ולא שיחסום אותי..

    עזרה הדדית - מחשבים וטכנולוגיה

  • עזרה למחשב lenovo - לא מזהה את המצלמה המובנית במחשב
    A AVIVI

    @edb1997 תעשה סריקה עם דרייבר בוסטר קרדיט ל @bbn
    רבו המחלוקות כמה זה עוזר וכמה זה מכביד אולם נראה לענ"ד שזה מכביד רק אם מתקינים את כל מה שהוא מציע אולם נקודתית לא נראה לי שיעשה לך בעיות
    לי זה עזר מאד בכי האי גוונא עם מצלמה חיצונית

    עזרה הדדית - מחשבים וטכנולוגיה

  • עזרה אחרי עדכוני ווינדוס
    A AVIVI

    @משה-מזרחי קח כוס מים תכין ספר טוב ולנשום עמוק🤣🤣🤣
    זה לוקח חצי שעה בערך

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מצלמות - פעם אחד ולתמיד אני רוצה להבין מה זה מגה פיקסל
    A AVIVI

    @שעטנ-ז-ג-ץ אם אתה רוצה להבין זה מאד פשוט תקח תמונה במחשב ותגדיל אותה עד הסוף עד שתראה הרבה ריבועים שמהם התמונה מורכבת אז ככל שיש יותר ריבועים וככל שהם יותר קטנים התמונה תהיה יותר חדה וגם יותר כבדה

    מוצרי חשמל קטנים

  • בקשה | קבצי gif לגרפיקה
    A AVIVI

    @ntz
    https://www.animatedimages.org/

    כללי - עזרה הדדית

  • הפורום נהיה מהיר באופן מטורףף
    A AVIVI

    @שמואל מדהים מדהים מדהים!!
    תודה רבה
    👍 👍 👍 👍 👍 👍 👍 👍 👍 👍 👍

    באגים/הצעות ייעול

  • האם אפשר להאיץ העלאת קבצים לגוגל דרייב?
    A AVIVI

    ואם כן איך???

    עזרה הדדית - מחשבים וטכנולוגיה

  • להורדה | תוכנה קטנה לשליטה בתוכנות מסך מלא וסגירה בכח
    A AVIVI

    טוב.. מי שלא אוהב תוכנות שנוצרו עם AI נא לדלג לשרשור אחר שכוייח מראש!

    ועכשיו לתוכנה
    דאע"פ דהוי AI הושקעו המון שעות לשפר ולשכלל ולמנוע קריסות ושאר ירקות

    קודם כל כרגיל אין אחריות על כלום!!!

    ועכשיו לאחר שהזהרנו אומר לכם שניסיתי כמה פעמים ולא היתה שום בעייה נתקדם

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

    בקשתי מהגבינה מלאכותית🧀 שתגבן לי איזו תוכנה קטנה ומועילה לסדר לי קצת את החיים

    ואני חושב שלמי שצריך את זה זה יהיה לעזר רב! ומשום כך אני משתף אתכם בע"ה

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

    להורדה - ניהול חלונות.exe כ- 20MB

    צילום מסך והדרכה חביבה שלא נ"ל שכ"כ צריך בספויילר


    נכתב בשביל משתמשי בר אילן שב"ה קצת פחות טכנולוגים
    טוב כשלב ראשון כמובן לוחצים על התוכנה שיורדת
    נפתח המסך הבא
    dfbd9477-41a5-46bc-8ee0-d01ce329cdff-{7DB596BD-442C-409F-92C0-9A820541E0D9}.png
    טוב יש כאן כמה אופציות
    Of course, if you speak English, click the button on the top left.

    1. להוסיף ולהסיר תוכנות
      כרגע בברירת מחדל יש את responsa.exe שזה קובץ ההפעלה של בר אילן אם זה רק מה שאתם צריכים אין לכם מה לעשות עוד והתקדמו לשלב הבא
      במידה שלא ואת רוצים תוכנה אחרת חפשו את קובץ ההפעלה שלה
      לא כ"כ מסובך אתם צריכים לרדת לשורש ולראות מה קובץ ההפעלה
      לחפש נניח את תוכנת וורד בחיפוש>ללחוץ על פתח מיקום קובץ ועל כל דבר שנפתח ללחוץ שוב מקש ימני>פתח מיקום עד שמגיעים לקובץ עם סיומת exe
      לדוגמא קובץ ההפעלה של וורד הוא WINWORD.EXE וכן הלאה
      להכניס לשורה למטה וללחוץ על 'הוסף'

    ועכשיו בפתיחת התוכנה יופיעו הסמלים הבאים

    83fa01cd-3491-4808-9d23-9b35eb8cfd3e-{48BA88C6-0641-430B-B6D4-247BF9721753}.png

    1. וזה דבר חשוב באם אתם לא רוצים שבכל הפעלה של המחשב תאלצו להדליק את התוכנה פשוט לחצו על הכפתור למטה שמדליק את זה באופן אוטומטי בכל הפעלה
      תמיד תוכלו לבטל את זה בלחיצה חוזרת!

    2. באם תרצו לכבות כליל את התוכנה סתאם כי לא בא לכם על התוכנה או כל סיבה אחרת
      היא מסתתרת בצד שמאל למטה
      לחצו כאן
      c814ee4a-9bf1-4ba1-85c8-2107f331069e-image.png
      ואז מקש ימני כאן ויציאה
      c2d05ddf-deeb-4472-a837-01e623d8d87c-{D535266D-2D9F-4D2F-A29D-8B3CC8E94E4B}.png

    שימו לב! שאם אם לוחצים על התוכנה שהיא כבר דלוקה היא נפתחת פעמיים וזה סתם גוזל משאבים תמיד תבדקו בשורת המשימות אם היא פתוחה

    וכמובן כמובן הכל בקוד פתוח למי שרוצה בספויילר ממש כאן
    ומעט פרטים יותר טכניים


    קודם הקוד נו הנחש ההוא פייתון (צריך לכתוב?)

    import tkinter as tk
    from tkinter import messagebox, ttk
    import sys, os, json, threading, time
    
    # הגדרות לפי משתמש
    USER_NAME = os.getlogin()
    TEMP_DIR = os.environ.get('TEMP', os.getcwd())
    CONFIG_FILE = os.path.join(TEMP_DIR, f"win_helper_{USER_NAME}.json")
    
    # תמיכת נתיב נכנס לקבצי משאבים כשהבנייה ב-PyInstaller
    def resource_path(relative_path):
        try:
            base_path = sys._MEIPASS
        except Exception:
            base_path = os.path.abspath(".")
        return os.path.join(base_path, relative_path)
    
    ICON_PATH = resource_path("app_icon.ico")
    
    try:
        import win32gui, win32con, win32api, win32process, winreg
        import psutil
        from PIL import Image, ImageDraw
        import pystray
        from pystray import MenuItem as item
    except ImportError:
        pass
    
    # מילון שפות
    LANGS = {
        "he": {
            "title": "ניהול חלונות (עברית)",
            "p_label": "תוכנות במעקב:",
            "add_btn": "הוסף",
            "rem_btn": "הסר נבחר",
            "help_btn": "הוראות",
            "startup_on": "הפעל אוטומטית עם המחשב",
            "startup_off": "בטל הפעלה אוטומטית",
            "lang_btn": "Switch to English",
            "help_text": "1. גרור את הפס האפור כדי להזיז את הכפתורים.\n2. כפתור ⛶ הופך למסך מלא.\n3. הסמל יעלם כשתהיה במסך מלא ויחזור כשתצא.\n4. ניתן לעבור חופשי בין תוכנות (Alt+Tab).",
            "help_title": "הוראות שימוש",
            "added": "נוסף בהצלחה",
            "process_name": "שם תהליך (EXE)"
        },
        "en": {
            "title": "Window Manager (English)",
            "p_label": "Tracked Applications:",
            "add_btn": "Add",
            "rem_btn": "Remove Selected",
            "help_btn": "Instructions",
            "startup_on": "Run at Startup",
            "startup_off": "Disable Startup",
            "lang_btn": "החלףלעברית",
            "help_text": "1. Drag the gray bar to move buttons.\n2. Use ⛶ for Fullscreen.\n3. Icons hide in Fullscreen and return when window is normal.\n4. Free switching between apps (Alt+Tab).",
            "help_title": "Instructions",
            "added": "Added successfully",
            "process_name": "Process Name (EXE)"
        }
    }
    
    def load_config():
        if os.path.exists(CONFIG_FILE):
            with open(CONFIG_FILE, "r", encoding="utf-8") as f:
                try: return json.load(f)
                except: pass
        return {"apps": ["responsa.exe"], "lang": "he"}
    
    def save_config(config):
        with open(CONFIG_FILE, "w", encoding="utf-8") as f:
            json.dump(config, f)
    
    class FloatingButtons:
        def __init__(self, target_hwnd, manager):
            self.target_hwnd = target_hwnd
            self.manager = manager
            
            self.root = tk.Toplevel()
            self.root.overrideredirect(True)
            self.root.attributes("-topmost", True)
            self.root.attributes("-alpha", 0.75)
            
            # מסגרת
            self.main_frame = tk.Frame(self.root, bg="#1a1a1a", bd=1)
            self.main_frame.pack()
    
            # ידית גרירה
            self.drag_handle = tk.Frame(self.main_frame, bg="#505050", width=12, cursor="fleur")
            self.drag_handle.pack(side="left", fill="y")
            self.drag_handle.bind("<Button-1>", self.start_move)
            self.drag_handle.bind("<B1-Motion>", self.do_move)
    
            self.btn_frame = tk.Frame(self.main_frame, bg="#1a1a1a")
            self.btn_frame.pack(side="left", padx=2, pady=2)
    
            btn_style = {"bg": "#1a1a1a", "fg": "white", "relief": "flat", "font": ("Segoe UI Symbol", 9), "width": 4}
    
            # כפתור מסך מלא
            self.btn_full = tk.Button(self.btn_frame, text="⛶", command=self.toggle_fullscreen, **btn_style)
            self.btn_full.pack(side="left", padx=1)
            
            # כפתור סגירה
            self.btn_close = tk.Button(self.btn_frame, text="✕", command=self.kill_target, **btn_style)
            self.btn_close.configure(fg="#ff5555")
            self.btn_close.pack(side="left", padx=1)
    
            self.fullscreen_data = None
            self.offset_x = 240
            self.offset_y = 10
            
            self.update_position()
    
        def start_move(self, event):
            self._start_x = event.x
            self._start_y = event.y
    
        def do_move(self, event):
            x = self.root.winfo_pointerx() - self._start_x
            y = self.root.winfo_pointery() - self._start_y
            self.root.geometry(f"+{x}+{y}")
            rect = win32gui.GetWindowRect(self.target_hwnd)
            self.offset_x = rect[2] - x
            self.offset_y = y - rect[1]
    
        def is_target_fullscreen(self):
            try:
                rect = win32gui.GetWindowRect(self.target_hwnd)
                screen_w = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
                screen_h = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)
                # אם החלון בגודל המסך בדיוק וחסר לו מסגרת (WS_POPUP)
                style = win32gui.GetWindowLong(self.target_hwnd, win32con.GWL_STYLE)
                return (rect[2]-rect[0] >= screen_w and rect[3]-rect[1] >= screen_h and not (style & win32con.WS_CAPTION))
            except: return False
    
        def update_position(self):
            if not win32gui.IsWindow(self.target_hwnd):
                self.root.destroy()
                return
            
            try:
                fg = win32gui.GetForegroundWindow()
                active = (fg == self.target_hwnd or fg == self.root.winfo_id())
                
                # הסתרה אם התוכנה במסך מלא (שלה או שלנו)
                if self.is_target_fullscreen() or not active:
                    self.root.withdraw()
                else:
                    self.root.deiconify()
                    rect = win32gui.GetWindowRect(self.target_hwnd)
                    x = rect[2] - self.offset_x
                    y = rect[1] + self.offset_y
                    self.root.geometry(f"+{x}+{y}")
            except: pass
            self.root.after(50, self.update_position)
    
        def toggle_fullscreen(self):
            hwnd = self.target_hwnd
            if not self.fullscreen_data:
                style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
                rect = win32gui.GetWindowRect(hwnd)
                self.fullscreen_data = (style, rect)
                win32gui.SetWindowLong(hwnd, win32con.GWL_STYLE, win32con.WS_POPUP | win32con.WS_VISIBLE)
                mon = win32api.GetMonitorInfo(win32api.MonitorFromWindow(hwnd))['Monitor']
                win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, mon[0], mon[1], 
                                     mon[2]-mon[0], mon[3]-mon[1], win32con.SWP_FRAMECHANGED)
                # לצאת ממסך מלא בלחיצת ESC דרך חוט חיצוני
                threading.Thread(target=self.esc_monitor, daemon=True).start()
            else: self.exit_fullscreen()
    
        def esc_monitor(self):
            while self.fullscreen_data:
                if win32api.GetAsyncKeyState(win32con.VK_ESCAPE):
                    self.root.after(0, self.exit_fullscreen)
                    break
                time.sleep(0.1)
    
        def exit_fullscreen(self):
            if self.fullscreen_data:
                style, rect = self.fullscreen_data
                win32gui.SetWindowLong(self.target_hwnd, win32con.GWL_STYLE, style)
                win32gui.SetWindowPos(self.target_hwnd, win32con.HWND_NOTOPMOST, rect[0], rect[1], 
                                     rect[2]-rect[0], rect[3]-rect[1], win32con.SWP_FRAMECHANGED)
                win32gui.ShowWindow(self.target_hwnd, win32con.SW_MAXIMIZE)
                self.fullscreen_data = None
    
        def kill_target(self):
            try:
                _, pid = win32process.GetWindowThreadProcessId(self.target_hwnd)
                handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, False, pid)
                win32api.TerminateProcess(handle, -1)
                win32api.CloseHandle(handle)
            except: pass
    
    class ManagerApp:
        def __init__(self, root):
            self.root = root
            self.config = load_config()
            self.active_overlays = {}
            self.setup_ui()
            
            self.running = True
            threading.Thread(target=self.scan_loop, daemon=True).start()
            threading.Thread(target=self.run_tray, daemon=True).start()
    
        def setup_ui(self):
            l = LANGS[self.config["lang"]]
            is_rtl = (self.config["lang"] == "he")
            
            self.root.title(l["title"])
            self.root.geometry("450x500")
            self.root.protocol('WM_DELETE_WINDOW', self.hide)
            
            # איקון חלון התוכנה (taskbar) - ניסיון ראשון
            try:
                self.root.iconbitmap(ICON_PATH)
            except Exception:
                try:
                    icon = tk.PhotoImage(file=ICON_PATH)
                    self.root.iconphoto(False, icon)
                except Exception:
                    pass
            
            for widget in self.root.winfo_children(): widget.destroy()
            
            main = ttk.Frame(self.root, padding=20)
            main.pack(fill="both", expand=True)
    
            # כותרת ושפה
            top_f = ttk.Frame(main)
            top_f.pack(fill="x")
            ttk.Button(top_f, text=l["lang_btn"], command=self.toggle_lang).pack(side="left")
            tk.Label(main, text=l["p_label"], font=("Segoe UI", 12, "bold")).pack(pady=10)
    
            # רשימה
            self.tree = ttk.Treeview(main, columns=("n"), show="headings", height=8)
            self.tree.heading("n", text=l["process_name"])
            self.tree.pack(fill="both", expand=True)
            self.refresh_tree()
    
            # הוספה
            add_f = ttk.Frame(main)
            add_f.pack(fill="x", pady=10)
            self.new_entry = ttk.Entry(add_f, justify="center")
            self.new_entry.pack(side="right" if is_rtl else "left", fill="x", expand=True, padx=5)
            self.new_entry.insert(0, "responsa.exe")
            ttk.Button(add_f, text=l["add_btn"], command=self.add_item).pack(side="left" if is_rtl else "right")
    
            # כפתורים
            btn_f = ttk.Frame(main)
            btn_f.pack(fill="x")
            ttk.Button(btn_f, text=l["rem_btn"], command=self.remove_item).pack(side="right" if is_rtl else "left", fill="x", expand=True, padx=2)
            ttk.Button(btn_f, text=l["help_btn"], command=self.show_help).pack(side="left" if is_rtl else "right", fill="x", expand=True, padx=2)
    
            self.start_btn = ttk.Button(main, text="...", command=self.toggle_startup)
            self.start_btn.pack(fill="x", pady=10)
            self.update_startup_ui()
    
        def toggle_lang(self):
            self.config["lang"] = "en" if self.config["lang"] == "he" else "he"
            save_config(self.config)
            self.setup_ui()
    
        def show_help(self):
            l = LANGS[self.config["lang"]]
            messagebox.showinfo(l["help_title"], l["help_text"])
    
        def refresh_tree(self):
            for i in self.tree.get_children(): self.tree.delete(i)
            for a in self.config.get("apps", []): self.tree.insert("", "end", values=(a,))
    
        def add_item(self):
            n = self.new_entry.get().lower().strip()
            if n and n not in self.config["apps"]:
                self.config["apps"].append(n)
                save_config(self.config)
                self.refresh_tree()
    
        def remove_item(self):
            sel = self.tree.selection()
            if sel:
                name = self.tree.item(sel[0])['values'][0]
                self.config["apps"].remove(name)
                save_config(self.config)
                self.refresh_tree()
    
        def update_startup_ui(self):
            l = LANGS[self.config["lang"]]
            try:
                key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run", 0, winreg.KEY_READ)
                winreg.QueryValueEx(key, "WindowHelper")
                winreg.CloseKey(key)
                self.start_btn.configure(text=l["startup_off"])
                self.startup_active = True
            except:
                self.start_btn.configure(text=l["startup_on"])
                self.startup_active = False
    
        def toggle_startup(self):
            path = r"Software\Microsoft\Windows\CurrentVersion\Run"
            if not self.startup_active:
                key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0, winreg.KEY_SET_VALUE)
                winreg.SetValueEx(key, "WindowHelper", 0, winreg.REG_SZ, sys.executable)
                winreg.CloseKey(key)
            else:
                key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0, winreg.KEY_SET_VALUE)
                try: winreg.DeleteValue(key, "WindowHelper")
                except: pass
                winreg.CloseKey(key)
            self.update_startup_ui()
    
        def scan_loop(self):
            while self.running:
                def callback(hwnd, _):
                    if win32gui.IsWindowVisible(hwnd):
                        try:
                            _, pid = win32process.GetWindowThreadProcessId(hwnd)
                            name = psutil.Process(pid).name().lower()
                            if name in self.config["apps"] and hwnd not in self.active_overlays and pid != os.getpid():
                                self.root.after(0, lambda: self.active_overlays.update({hwnd: FloatingButtons(hwnd, self)}))
                        except: pass
                win32gui.EnumWindows(callback, None)
                time.sleep(1.0)
    
        def hide(self): self.root.withdraw()
        def show(self): self.root.after(0, self.root.deiconify)
        
        def run_tray(self):
            img = Image.open(ICON_PATH) if os.path.exists(ICON_PATH) else Image.new('RGB', (64, 64), (0, 120, 215))
            icon = pystray.Icon("winhelper", img, "Window Helper", (item('Settings / הגדרות', self.show), item('Exit / יציאה', lambda i: self.stop(i))))
            icon.run()
    
        def stop(self, i):
            self.running = False
            i.stop()
            self.root.after(0, self.root.destroy)
    
    if __name__ == "__main__":
        root = tk.Tk()
        app = ManagerApp(root)
        root.mainloop()
    

    הקובץ apps_config.json להגדרות התוכנה נמצא בתקיית %temp% בכדי לא ללכלך..

    ===

    מאד אשמח שמי שימצא עניין וישתמש בתוכנה נישתית זו יודיעני זה ממש משמח והיה זה שכרי!

    מי שמוצא באג טעות או כל דבר אחר בתוכנה זו מוזמן לתקן בשמחה ואין עיני צרה


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

    טוב אני חושב שכתבתי המון על תוכנה כה קטנה😊
    אז שיהיה בהצלחה והרבה סייעתא דשמייא אמן.

    עדכונים ובאגים

    כ"ח אדר - כרגע יש באגי אנטיוירוס בהורדה ובעליה לאחר איתחול לעת עתה יש להחריג באנטיוירוס

    עזרה הדדית - מחשבים וטכנולוגיה

  • בירור | מה זה מצב בטוח
    A AVIVI

    @יוסי-מיותר יש לך מידע פה

    עזרה הדדית - אנדרואיד

  • ההתחברות וההתנהלות באתר לפעמים איטיים להחריד
    A AVIVI

    @shloimy תסתכל פה
    https://mitmachim.top/topic/5213/הפורום-נהיה-מהיר-באופן-מטורףף
    ותבין ש"אין דבר העומד כנגד הרצון"
    ואם יש רצון טוב כמו למנהלים כאן הכל יכול להיות טוב.......
    וכמובן צריך הרבה סייעתא דשמייא

    באגים/הצעות ייעול

  • עזרה דחופה בוינדוס!!!!
    A AVIVI

    @יוסי-מחשבים יוסי אתה וכולם פה תותחים תודה רבה הכל הסתדר ברוך השם!!!!
    👍 👍 👍 👍 👍 👍 👍 👍
    הבעיה היתה כנראה בקובצי האתחול לכן העלתי התקנה של וינדוס על USB כמו שאמרת ונכנסתי לתיקון המחשב הכנסתי שם את הטקסט שהבאת והכל הסתדר

    עזרה הדדית - מחשבים וטכנולוגיה

  • בקשת מידע | הצלת נפשות ממש! סינון לטלפון בישיבה - מה וכיצד?
    A AVIVI

    @בבא
    קיידרואיד
    https://mitmachim.top/post/718382
    מעט מוגבל (לצרכיך....)


    TripleU MDM
    https://mitmachim.top/post/1019747
    מעט יותר אפשרויות

    עזרה הדדית - אנדרואיד
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר