خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نحوه ایجاد Pop-Up یا Balloon Tip Notification با استفاده از اسکریپت های Powershell
اگر چه PowerShell یک زبان کنسول است، گاهی اوقات لازم است که یک کاربر از یک اسکریپت PS درباره یک رویداد خاص اطلاع بدهد یا از آنها بخواهد کاری انجام دهند. به عنوان مثال، شما می توانید یک اطلاع رسانی پاپ آپ یا balloon tip در مورد تکمیل یک اسکریپت سنگین پاورشل و یا هنگامی که یک رویداد مهم در سیستم رخ می دهد را نشان دهد.
ساده ترین مثالی که در این خصوص می توانیم بیان کنیم این است که یک پیغامی یا یک متن ساده که در اسکریپت Powershell قرار دارد را نمایش دهیم. با اجرای اسکریپت زیر، پیغام نمایش داده شده را مشاهده خواهید کرد:
اجرای اسکریپت فوق یک پنجره پیغام را نشان می دهد که با ok کردن، پیغام بسته خواهد شد.
با استفاده از properties های مختلف متد Popup، پیغامی که می خواهید نمایش داده شود را سفارشی یا customize کنید.
مثلا شما می توانید به جای ok، دکمه های Yes/No را قرار دهید.
Syntax کلی برای نگارش پیغام مذکور، به شکل زیر است:
مثلا در پیغام فوق دکمه های yes و No در کادر وجود داشتند. حالا به دستور زیر دقت کنید.
همانطور که مشاهده می کنید با تغییر Type، دکمه های Abort، Retry، Ignore در کادر پیغام قرار می گیرد.
متد Popup می تواند یک مقدار عددی را برگرداند که مشخص کند کاربر چه دکمه ای را کلیک کرده است. مقادیر ممکن:
پنجره های popup جذاب تر ممکن است در ویندوز 7، 8.1 و 10 از طریق API Forms Windows نمایش داده شود. کد PowerShell زیر یک پیام پاپ آپ در کنار notification Area ویندوز نمایش می دهد که پس از 20 ثانیه بطور خودکار این پنجره ناپدید می شود.
ساده ترین مثالی که در این خصوص می توانیم بیان کنیم این است که یک پیغامی یا یک متن ساده که در اسکریپت Powershell قرار دارد را نمایش دهیم. با اجرای اسکریپت زیر، پیغام نمایش داده شده را مشاهده خواهید کرد:
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("The report generation script is successfully completed!")
اجرای اسکریپت فوق یک پنجره پیغام را نشان می دهد که با ok کردن، پیغام بسته خواهد شد.
با استفاده از properties های مختلف متد Popup، پیغامی که می خواهید نمایش داده شود را سفارشی یا customize کنید.
مثلا شما می توانید به جای ok، دکمه های Yes/No را قرار دهید.
$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)
Syntax کلی برای نگارش پیغام مذکور، به شکل زیر است:
Popup(Text,SecondsToWait,Title,Type)
Text
در واقع متن پیغام است.SecondsToWait
این مقدار اختیاری است که بر حسب عدد است. این عدد در واقع مدت زمانی است که پنجره پس از طی شدن آن بسته خواهد شد.Title
این مقدار هم اختیاری است و شما کی توانید برای پیغام نمایش داده شده، یک عنوان دلخواه هم قرار دهید.Type
این مقدار هم عددی است که دکمه های نمایش داده شده در پیغام را نشان می دهد.مثلا در پیغام فوق دکمه های yes و No در کادر وجود داشتند. حالا به دستور زیر دقت کنید.
$Output = $wshell.Popup("The report generation script is successfully completed! Do you want to display a report on the screen?",0,"KHOSHAMOZ",4+30)
همانطور که مشاهده می کنید با تغییر Type، دکمه های Abort، Retry، Ignore در کادر پیغام قرار می گیرد.
0 - OK button;
1 - OK and Cancel buttons;
2 - Stop, Retry and Skip buttons;
3 - Yes, No and Cancel buttons;
4 - Yes and No buttons;
5 - Retry and Cancel buttons;
16 - Stop icon;
32 - Question icon;
48 - Exclamation icon;
64 - Information icon
.
متد Popup می تواند یک مقدار عددی را برگرداند که مشخص کند کاربر چه دکمه ای را کلیک کرده است. مقادیر ممکن:
-1 - timeout;
1 - OK button;
2 - Cancel button;
3 - Stop button;
4 - Retry button;
5 - Skip button;
6 - Yes button;
7 - No button.
پنجره های popup جذاب تر ممکن است در ویندوز 7، 8.1 و 10 از طریق API Forms Windows نمایش داده شود. کد PowerShell زیر یک پیام پاپ آپ در کنار notification Area ویندوز نمایش می دهد که پس از 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)
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: