【PowerShell】メッセージボックスを指定時間で消す

パソコン関係

覚書き
これは13秒で閉じるメッセージボックス。
スクリプトの中にタイマーを作成しています。

目立つように「黄色の背景」に「赤い文字」です。

絶対さわるんじゃないよ!

という気持ちが伝わるといいなぁ。
コメントを多く入れているので叩き台に使ってください。

Add-Type -AssemblyName System.Windows.Forms

$form = New-Object System.Windows.Forms.Form
$form.Visible = $false  # ウィンドウを非表示にする
$form.Text = "OBS起動中"
$form.Size = New-Object System.Drawing.Size(600, 270) # メッセージボックスのカスタムのサイズを設定
$form.BackColor = [System.Drawing.Color]::Yellow  # フォームの背景色を黄色に変更

# フォームの最小化、最大化、閉じるボタンを非表示にする
$form.MaximizeBox = $false
$form.MinimizeBox = $false
$form.ControlBox = $false

# フォームを常に前面に表示
$form.TopMost = $true

# 画面の中央に表示するための計算
$screen = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea
$x = ($screen.Width - $form.Width) / 2
$y = ($screen.Height - $form.Height) / 2
$form.StartPosition = 'Manual'
$form.Location = New-Object System.Drawing.Point($x, $y)

# ラベル
$label = New-Object System.Windows.Forms.Label
$label.Text = "
マウスから手を放して待つ(約1分)

OBSが一度最大化してから半分の大きさになります。"
$label.Font = New-Object System.Drawing.Font("Arial", 16)
$label.AutoSize = $false  # サイズを自動調整しないように設定
$label.ForeColor = [System.Drawing.Color]::Red  # ラベルのフォント色を赤に変更
$label.Size = New-Object System.Drawing.Size(550, 170)  # 文字エリアのカスタムのサイズを設定
$label.Location = New-Object System.Drawing.Point(20, 20)
$form.Controls.Add($label)

# タイマーを作成し、13秒後にフォームを閉じる
$timer = New-Object System.Windows.Forms.Timer
$timer.Interval = 13000  # 10秒をミリ秒単位で指定
$timer.Add_Tick({
    $form.Close()
    $timer.Stop()
})

# フォームを表示
[Windows.Forms.Application]::Run($form)
$timer.Start()
にほんブログ村 にほんブログ村へ
ランキング参加中!「いいね」で応援お願いします(^^)/
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
サイト内 他の記事を検索
タイトルとURLをコピーしました