איך לגרום לתכנה שלא מגיבה לקרוס באופן אוטומטי
-
שלום
יש לי תכנה שנמצאת במחשב ציבורי הבעיה היא שפעמים רבות התכנה מגיעה למצב של 'לא מגיב' והיא לא יודעת לסגור את עצמה (ולא ניתן לסגור אותה רק דרך מנהל המשימות מה שמשתמש פשוט לא יודע)
האם יש דרך ליצור תזמון שאם תכנה נמצאת X זמן במצב 'לא מגיב' היא תקרוס מעצמה? -
@AVI12 השורה הבאה ב-CMD ([מקור](CMD ((https://stackoverflow.com/q/53938743))) יבדוק אם תוכנה מגיב, ואם לא יהרוג את התהליך ויתחיל אותו שוב:
taskkill /im "exeName.exe" /fi "STATUS eq NOT RESPONDING" /f >nul && start "" "pathToExe"
כמובן, צריך להחליף את הערך
exeName.exe
עם שם התוכנה והערךpathToExe
עם הנתיב של קובץ התוכנה. -
@yossiz אוקיי, תודה
רק איך אני גורם לפקודה לרוץ כל הזמן לבדוק את המצב -
@AVI12 דרך מתזמן המשימות, שיריץ את הפקודה כל כמה דקות שתרצה.
-
@AVI12 הנה קובץ BAT שלם שמריץ את התוכנה (צריך להכניס את שם התוכנה בשורה השלישית במקום
c:\the path\to\the program.exe
) ובודק כל 5 שניות אם התהליך מגיב. במקרה שלא, זה הורג את התהליך ומריץ אותו שוב.@echo off REM בשורה הבאה תחליף את הנתיב בנתיב האמית לקובץ של התוכנה set PROG=c:\the path\to\the program.exe For %%A in ("%PROG%") do ( Set IMAGENAME=%%~nxA ) start "" "%PROG%" :loop taskkill.exe /F /IM "%IMAGENAME%" /FI "STATUS eq NOT RESPONDING" |findstr SUCCESS && start "" "%PROG%" timeout /T 5 cls goto loop
@רחמים אני חושב שהרצת סקריפט ב-loop יותר טוב ממתזמן המשימות עבור מקרים כמו אלו
-
@yossiz אמר באיך לגרום לתכנה שלא מגיבה לקרוס באופן אוטומטי:
אני חושב שהרצת סקריפט ב-loop יותר טוב ממתזמן המשימות עבור מקרים כמו אלו
למה?
-
@רחמים סתם הרגשה.
מתזמן המשימות מרגיש קצת כמו overkill לדבר כזה.
גם בסקריפט יש יותר גמישות ושליטה.
מותר לחלוק -
@yossiz הבעיה שזה במבוסס על חלון שיהיה פתוח כל הזמן וכיון שזה
תכנה שנמצאת במחשב ציבורי
עלי לסמוך על חכמתם של הציבור שלא יסגרו את החלון ......🥱
השאלה אם יש דרך שיפעל ברקע או שאין ברירה אלא במתזמן משימות -
@AVI12 יש לזה כמה פתרונות. יש אחד שהוא איזה שורה שכותבים בתחילת הקובץ, אני צריך לחפש אותו
-
@yossiz אמר באיך לגרום לתכנה שלא מגיבה לקרוס באופן אוטומטי:
@AVI12 יש לזה כמה פתרונות. יש אחד שהוא איזה שורה שכותבים בתחילת הקובץ, אני צריך לחפש אותו
אולי זה יעזור...
-
@AVI12 אני משתמש באותו רעיון של הרצה של פקודה בלופ וכדי שזה לא יראה הופכים את הקובץ של השורת פקודה ליישום exe וכך זה רץ ברקע את ההפעלה הראשונית בכל כניסה למחשב אני עושה ע"י מתזמן המשימות
-
-
@AVI12 קח את זה יש בזה עברית זה תוכנה להמרת bat ל exe עם אופציה להרצה ברקע
Bat_To_Exe_Converter_(Installer).exe