סקריפט מעבר למסך בודד בעת הפעלת תכנית

סקריפט מעבר למסך בודד בעת הפעלת תכנית

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

לפעמים נרצה להפעיל נטפליקס על מסך אחד, ולא נרצה שהאחר ישאר דולק.

לפעמים נרצה להפעיל משחק על מסך מלא, אבל לפעמים העכבר בורח מהמסך המלא למסך השכן.

לבעיה זו אתן פתרון בן שני שלבים:

  1. סקריפט קצרצר שמעביר לתצוגה של מסך אחד, ואז מפעיל בעצמו את התכנית. כאשר התכנית נסגרת, המחשב חוזר לתצוגה מרובת מסכים.
  2. במקום להפעיל את התכנית ישירות, מפעילים אותה באמצעות קיצור דרך שמגיע לסקריפט.
ראשית, הסקריפט:
displayswitch.exe /internal
#displayswitch.exe /external
Start-Sleep -Seconds 10
Start-Process "D:\path\to\program\exec-file.exe"
$running = $true

while ($running) {
    Start-Sleep -Seconds 5
    $program = Get-Process | ?{$_.Name -match 'program-process-name'}
    if ($program -eq $null) {$running = $false}
}

displayswitch.exe /extend 
#displayswitch.exe /clone
הסקריפט בן 14 שורות, וכך הוא פועל:
  1. בהתחלה (שורות 1-2) מעבירים את המחשב לתצוגת מסך אחד. צריך לראות לאיזה מסך רוצים לצמצם את התצוגה, ולפי זה להחליט אם לסמן בסולמית את שורה 1 או 2. כרגע שורה 2 מסומנת, מה שאומר שהתצוגה תצטמצם למסך שכרגע מוגדר כמסך העיקרי. אם נסמן את שורה 1 ונשאיר את השורה השניה לא מסומנת, תהיה תצוגה רק על המסך שמוגדר כמסך מס' 2.
  2. לאחר מכן (שורה 3) ישנה המתנה בת 10 שניות, על מנת לוודא ששום דבר לא מתחיל לפני שהמחשב עובר לתצוגת מסך בודד.
  3. אז (שורה 4) הסקריפט מפעיל את התוכנה הרצויה באמצעות קריאה לקובץ ההפעלה שלה.
  4. לאחר הפעלת התוכנה מוגדרת לולאה (שורות 5-11). הלולאה בודקת כל 5 שניות אם אותה התכנית עדיין רצה. אם התכנית כבר לא רצה, פעולת הלולאה מפסיקה.
  5. הפעלת תצוגה מורחבת/משוכפלת (שורות 13-14). מסמנים בסולמית את השורה שלא רוצים שתרוץ.
אם כן, כשאנחנו באים להתאים את הסקריפט לתוכנה שלנו, נצטרך להתאים 4 דברים:
  1. שורות 1-2 – להחליט על איזה מסך אנחנו רוצים שתפעל התצוגה.
  2. שורה 4 – לשים את הנתיב לקובץ ההפעלה של התוכנה.
  3. שורה 9 – בתוך הלולאה, לתת את שם התהליך (Process) שהתוכנה מריצה.
  4. שורות 13-14 – להשאיר בלתי מסומנת את השורה עם הגדרת התצוגה שאליה נרצה להחזיר את המחשב לאחר סיום ריצת התכנית.

אז שומרים את הסקריפט, ויוצרים קיצור דרך שמפנה אליו.

נכנסים למאפיינים של קיצור הדרך, עוברים ללשונית קיצור דרך, ושם בשדה "יעד", מכניסים את השורה הבאה:

powershell.exe -WindowStyle Hidden -file "D:\path\to\script\script-file.ps1"

כאשר בסוף, כמובן משנים לנתיב שבו יושב קובץ הסקריפט.

סמל התכנית:

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

יפתח חלון של סייר קבצים כדי למצוא את האייקון. שם צריך למצוא את הנתיב של קובץ ההרצה של התכנית. אצלו או בתיקיה שבה הוא יושב, אפשר למצוא את האייקון שלו.

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

כתיבת תגובה