Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

จะแสดงป๊อปอัปหรือการแจ้งเตือนเคล็ดลับบอลลูนจาก PowerShell ได้อย่างไร

แม้ว่า PowerShell จะเป็นภาษาคอนโซล แต่บางครั้งก็จำเป็นต้องแจ้งให้ผู้ใช้ทราบจากสคริปต์ PS เกี่ยวกับเหตุการณ์หนึ่งๆ หรือแจ้งให้ผู้ใช้ดำเนินการบางอย่าง ตัวอย่างเช่น คุณสามารถแสดงการแจ้งเตือนแบบผุดขึ้นหรือคำแนะนำแบบบอลลูนเกี่ยวกับการเสร็จสิ้นของสคริปต์ PoSh จำนวนมาก หรือเมื่อมีเหตุการณ์สำคัญเกิดขึ้น

วิธีที่ง่ายที่สุดคือการแสดงหน้าต่างที่มีข้อความโดยใช้ระบบย่อยสคริปต์ Windows (Wscript ) โทรจาก PowerShell

รหัส PowerShell นี้จะแสดงหน้าต่างทั่วไปพร้อมกับข้อความและปุ่มตกลง

$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("The report generation script is successfully completed!")

จะแสดงป๊อปอัปหรือการแจ้งเตือนเคล็ดลับบอลลูนจาก PowerShell ได้อย่างไร

การใช้คุณสมบัติต่างๆ ของ ป๊อปอัป เมธอด คุณสามารถปรับแต่งลักษณะที่ปรากฏของหน้าต่างโมดอลที่มีข้อความของคุณ คุณยังสามารถกลับไปที่สคริปต์คำตอบของผู้ใช้ (ใช่/ไม่ใช่)

จะแสดงป๊อปอัปหรือการแจ้งเตือนเคล็ดลับบอลลูนจาก PowerShell ได้อย่างไร

$Output = $wshell.Popup("The report generation script is successfully completed! Do you want to display a report on the screen?",0,"The report is ready",4+32)

ไวยากรณ์ทั่วไปและพารามิเตอร์ที่ใช้ได้ของเมธอดป๊อปอัป:

Popup(<Text>,<SecondsToWait>,<Title>,<Type>)

พารามิเตอร์:

  • <Text> — ข้อความ (สตริง);
  • <SecondsToWait> — ตัวเลข (ไม่บังคับ) จำนวนวินาทีหลังจากที่หน้าต่างข้อความจะปิดโดยอัตโนมัติ
  • <Title> —สตริง (ไม่บังคับ) ข้อความชื่อเรื่อง (คำอธิบายภาพ) ของหน้าต่างป๊อปอัป
  • <Type> —หมายเลข (ถ้ามี) การรวมค่าสถานะที่กำหนดประเภทของปุ่มและไอคอน

ค่าสถานะประเภทที่เป็นไปได้:

    • 0 — ปุ่มตกลง;
    • 1 — ปุ่มตกลงและยกเลิก
    • 2 — ปุ่มหยุด ลองใหม่ และข้าม
    • 3 — ใช่ ไม่ใช่ และปุ่มยกเลิก
    • 4 — ปุ่มใช่และไม่ใช่
    • 5 — ปุ่มลองอีกครั้งและยกเลิก
    • 16 — ไอคอนหยุด
    • 32 — ไอคอนคำถาม
    • 48 — ไอคอนเครื่องหมายอัศเจรีย์
    • 64 — ไอคอนข้อมูล

ป๊อปอัป วิธีคืนค่าจำนวนเต็มที่ช่วยให้รู้ว่าปุ่มใดที่ผู้ใช้คลิก ค่าที่เป็นไปได้:

  • -1 — หมดเวลา;
  • 1 — ปุ่มตกลง;
  • 2 — ปุ่มยกเลิก
  • 3 — ปุ่มหยุด
  • 4 — ปุ่มลองอีกครั้ง
  • 5 — ปุ่มข้าม
  • 6 — ปุ่มใช่
  • 7 — ไม่มีปุ่ม

ข้อความป๊อปอัปที่น่าสนใจยิ่งขึ้น (เคล็ดลับบอลลูน) อาจแสดงใน Windows 7, 8.1 และ 10 ผ่าน Windows Forms API . รหัส PowerShell ต่อไปนี้จะแสดงข้อความป๊อปอัปถัดจากแถบการแจ้งเตือนของ Windows 10 ที่จะหายไปโดยอัตโนมัติใน 20 วินาที

Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = ‘This is the pop-up message text for the Windows 10 user'
$balmsg.BalloonTipTitle = "Attention $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(20000)

จะแสดงป๊อปอัปหรือการแจ้งเตือนเคล็ดลับบอลลูนจาก PowerShell ได้อย่างไร

หากต้องการสร้างข้อความป๊อปอัปที่มีสีสันใน Windows 10 (PowerShell 5.0+) คุณยังสามารถใช้โมดูล PowerShell แยกต่างหาก BurntToast จากแกลเลอรี PowerShell

โมดูลได้รับการติดตั้งจากที่เก็บออนไลน์โดยใช้ Windows 10 Package Manager:
Install-Module -Name BurntToast

ตัวอย่างเช่น ตอนนี้คุณสามารถเพิ่มการแจ้งเตือนที่มีสีสันให้กับสคริปต์ได้อย่างง่ายดายจากบทความ “วิธีปิดการใช้งาน Wi-Fi โดยอัตโนมัติเมื่อเชื่อมต่อสายอีเทอร์เน็ต”:

New-BurntToastNotification -Text "Disconnecting from Wi-Fi network", "You have been disconnected from your Wi-Fi network since your device was connected to a high-speed Ethernet LAN" -AppLogo C:\PS\changenetwork.png

ดังนั้น คุณจึงทราบวิธีแสดงการแจ้งเตือนไปยังผู้ใช้ด้วย PowerShell หากผู้ใช้มีลำโพง คุณยังสามารถเล่นเพลงโปรดได้:

[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,125)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(440,125)
[console]::beep(523,500)
[console]::beep(440,375)
[console]::beep(523,125)
[console]::beep(659,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,250)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(523,125)
[console]::beep(440,500)
[console]::beep(349,375)
[console]::beep(261,125)
[console]::beep(440,1000)