PowerShellでクリップボード履歴管理ツールのランチャーを作ってみた。
クリップボード履歴管理ツールとして人気の御三方を 手軽に切り替えられるスクリプトです。
# Loading Assembly Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing $CLCL = "C:\Program Files (x86)\CLCL\CLCL.exe" $ClipHst = "C:\Users\Ueokaj\Downloads\FreeSoft\ClipboardHistory\ClipboardHistory_x64.exe" $Clibor = "C:\Users\Ueokaj\Downloads\FreeSoft\clibor\Clibor.exe" # Making Form $Form = New-Object System.Windows.Forms.Form $Form.Size = New-Object System.Drawing.Size(350,260) $Form.Text = "ClipBoard History Management" $Form.StartPosition = "CenterScreen" # クリップボード履歴ツールの選択グループ $MyGroupBox = New-Object System.Windows.Forms.GroupBox $MyGroupBox.Location = New-Object System.Drawing.Point(10,10) $MyGroupBox.size = New-Object System.Drawing.Size(310,150) $MyGroupBox.text = "クリップボード履歴管理ツールを選択してください。" # Making Radio button $RadioCLCL = New-Object System.Windows.Forms.RadioButton $RadioCLCL.Location = New-Object System.Drawing.Point(20,20) $RadioCLCL.size = New-Object System.Drawing.Size(280,30) $RadioCLCL.Checked = $True $RadioCLCL.Text = "CLCL(ファイル、画像の管理もサポート)" $RadioClipHst = New-Object System.Windows.Forms.RadioButton $RadioClipHst.Location = New-Object System.Drawing.Point(20,60) $RadioClipHst.size = New-Object System.Drawing.Size(280,30) $RadioClipHst.Text = "ClipBoard History(ダイレクトペーストが可能)" $RadioClibor = New-Object System.Windows.Forms.RadioButton $RadioClibor.Location = New-Object System.Drawing.Point(20,100) $RadioClibor.size = New-Object System.Drawing.Size(280,30) $RadioClibor.Text = "Clibor(FIFOに加えLIFOモードもサポート)" # Making OK button $OKButton = new-object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Point(85,170) $OKButton.Size = New-Object System.Drawing.Size(80,40) $OKButton.Text = "OK" $OKButton.DialogResult = "OK" # Making cancel button $CancelButton = new-object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Point(175,170) $CancelButton.Size = New-Object System.Drawing.Size(80,40) $CancelButton.Text = "キャンセル" $CancelButton.DialogResult = "Cancel" # final operation $MyGroupBox.Controls.AddRange(@($RadioCLCL,$RadioClipHst,$RadioClibor)) $Form.Controls.AddRange(@($MyGroupBox,$OKButton,$CancelButton)) $Form.AcceptButton = $OKButton $Form.CancelButton = $CancelButton $Form.MaximizeBox = $False $Form.TopMost = $True $dialogResult = $Form.ShowDialog() Get-Process | ? {$_.ProcessName -in "CLCL", "ClipboardHistory_x64", "Clibor"} ` | % {Stop-Process -name $_.ProcessName} if ($dialogResult -eq "OK"){ if ($RadioCLCL.Checked){ Start-Process $CLCL $Result = "CLCL" } elseif ($RadioClipHst.Checked){ Start-Process $ClipHst $Result = "ClipBoard History" } elseif ($RadioClibor.Checked){ Start-Process $Clibor $Result = "Clibor" } }else{ exit } [System.Windows.Forms.MessageBox]::Show($Result + "をアクティブ履歴ツールに適用しました。")