●Winコマンドを沢山登録したら「検索」が必要(簡単に追加)
この「GUI窓PSHアプリ」は、簡単に機能追加可能です。このアプリは基本機能部分を最小行数にして追加機能は別ファイルで組込みます。(基本部コピペで他のアプリへ展開)追加方法は、[起動ファイル名_add.ps1]ファイルを作成し、機能追加PSH文を登録して実現します。そのため初心者には難しいですが、中級/上級者の方は、色んな場面での応用利用も可能になると思います。
<戻る 進む>
●今回の追加機能「検索」「元に戻す」「追加機能編集」
今回は[winCmd201.bat]に上記3つの機能を追加します。(約300件登録のファイルに追加)
- <Step1> [wGuiPsh]フォルダ内に下記[List1.3.1]を使い[winCmd201_add.ps1]ファイルを作成する。(ファイル作成手順は「導入編[1.1]」を参照ください。)これで「追加機能」の組込み完了です。
- <Step2> [winCmd201.bat]をダブルクリックし起動する。起動画面で[マウス右釦]押下で、メニューに機能追加され、各機能([検索]/[元に戻す]/[追加機能編集])が動作することを確認する。
●補足 この機能追加で導入編は終了です。他方、このアプリは色んな利用方法があるので、次の記事にカスタマイズ方法、デバッグ(DBG)方法について紹介します。このアプリ利用とカスタマイズアプリ利用でパソコン利用が2倍くらい快適になると思います。
次回は基本編(GUIパワーシェルを簡単便利に使う)を記載予定です。
●コピペ[List1.3.1] [winCmd201_add.ps1]
..[GUI-PSH窓処理の機能追加add.ps1]
##Ver1.01 by ryu ----
##★★コマンド追加 by ryu
##
(ssSetRbtMenu "元に戻す" ).add_Click({ $tBox.Undo(); });
(ssSetRbtMenu "[検索窓]" ).add_Click({ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$tBox.SelectionStart; $szSchForm.Show(); });
(ssSetRbtMenu "追加機能編集").add_Click({ notepad $fladd; });
##★文字検索DLG窓
$szSchFont=New-Object System.Drawing.Font("メイリオ",12); $global:szfindPos=0;
$global:szSchForm=New-Object Form -Pro @{ Text="【検索Box】"; Size="520,108"; MaximizeBox =$False; MinimizeBox=$false; AutoSizeMode="GrowAndShrink";
Topmost=$True; StartPosition="CenterScreen"; }; $szSchForm.Add_Closing({ $_.Cancel =$True; $szSchForm.Visible =$false; });
##★入力BOX ##★釦0 ##★釦1
$global:szSchBox1=New-Object TextBox -Pro @{ Font=$szSchFont; Location="10,2" ; Size="400,16";};
function ssSchBtn($pm0,$pm1,$pm2){ $zob=New-Object Button -Pro @{ Text=$pm0; Location=$pm1; Size=$pm2; Font=$szSchFont; }; return $zob; };
( $szSchBtn0 =ssSchBtn "【Top】" "420,2" "80,30" ).Add_Click({ $aa=ssSchFind(0)});
( $szSchBtn1 =ssSchBtn "【検索】" "420,34" "80,30" ).Add_Click({ $aa=ssSchFind(1)});
$szSchForm.Controls.AddRange(@($szSchBox1, $szSchBtn0, $szSchBtn1));
$szSchForm.Add_Click({ $tBox.Focus() });
##★検索go ##0:Top ##1:継続
function global:ssSchFind($zcmd){ $zcc=$szSchBox1.Text; $global:szSetChaText=$zcc; if($zcmd -eq 0){ $global:szfindPos=0; };
$zPos =($tBox.Text).indexof($zcc,$szfindPos); if($zPos -ge 0 ){;}else{ $tBox.Focus(); return 1; };
$tBox.Select($zPos, $zcc.length); $tBox.ScrollToCaret(); $tBox.Focus(); $global:szfindPos=$zPos+1;
## $tBox.Select($zPos, $zcc.length); $tBox.Focus(); $global:szfindPos=$zPos+1; $tBox.ScrollToCaret();
return 0;
};
$tBox.Add_Click({;});
[winCmd201_add.ps1]