覚書き
これは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()