●コピペリスト一覧の記載(最新)
◎導入編...
---
◎基本編...
---
◎基本編/応用編...PSHメモ帳関連
[PSHメモ帳:TopPage起動bat] wPshMemo301.bat [Ver2.01]
◎[TopPage]編集で更新
◎[TopPage]編集で更新
@echo off &rem if not "%~0"=="%~dp0.\%~nx0" (start /min cmd /c,"%~dp0.\%~nx0" %* &exit) &rem ★DOS窓mini化
powershell -ExecutionPolicy RemoteSigned "$fln=(echo %0); .\sys\wndPshPrg201.ps1 $fln"
rem pause
exit;
<##Ver2.10--[TopPage] @BakColor:#fff2e4 @FntSize:14 @WndSize:1080,780 @WndRtan:1
##
##●●[PSHめも帳]●●
## [&][>][!]行をダブルクリック[WC]
## 1) [&]起動 [&&]窓無し起動 [&&&]継続起動 [;]行連結 [##★]次の行処理
## 2) [&FSet&]:txt/rtfファイルの表示/編集/保存。[&FSet]:別窓でtxt/rtfファイルを開く。
## 3) [&FS& コメント; ファイル名] [&FS コメント; ファイル名]: 説明文先行型で2)に同じ。
## 4) D&Dropで、ファイル表示。Ps1ファイル起動。フォルダ管理(readMe)。Bakファイル保存。
## 5) 複数窓表示、Web表示、[>][>>]DosCmd、MsgBox、検索窓、Font設定、dbg、dbcなど。
##---------------------------------------------------------------------------------
&FS ★[27] wGuiPsh2フォルダ管理 ;$HOME\Desktop\wGuiPsh2
&FS ★[36] Web表示マネージャ ;dat\wPshWebMng101.txt
&FS ★[38] PSH文法マネージャ ;dat\wPshDocRule101.txt
&FS ★[38] Mail履歴マネージャ ;dat\wPshMailLog101.txt
&FS& ★[27] PSH登録の簡単な例 ;dat\wndPshTxt201.txt
&FS& ★[27] PSH短文アプリ ;dat\wndPshTxtShort201.txt
&FS& ★[31] 式表計算+α ;dat\wPshKeisan101.txt
&FS& ★[32] 自動キー入力 ;dat\wPshKeyAuto101.txt
&FS& ★[37] QRマネージャ ;dat\wPshQRCode101.txt
&FS& ★[33] グラフ(おもしろ+実用編) ;grf\wPshGraf101.txt
&FS& ★[34] グラフ(折れ線/曲線/散布/面など) ;grf\wPshGraf201.txt
&FS& ★[35] グラフ(縦棒/横棒/複合/円/他) ;grf\wPshGraf301.txt
##スーパWeb検索
&KKK コピペ gui
&KK5 ファンヒータ ダイニチ
&KBN 8233 8848 6526 7003 6753 ##日経チャート
##---------------------------------------------------------------------------------
##★PSHファイル(.ps1)の[ドット+SPC]で起動
& . .\sys\tst_Butn_Mouse01.ps1 ##★[2.7]釦/マウス利用DBG:Dir相対指定
& Dir C:\ ##★[1.1]Dir起動
&& mspaint ##★[1.1]窓無し起動
&&& $global:aaa=10; dbg $aaa; ##★Step1:継続:global変数に代入
&&& $global:aaa+=3; MsgBox "$aaa です"; ##★Step2:MsgBox表示
##------------------------------------------------------------------------------------
![WC]日めくりカレンダ; https://www.himekuricalendar.com/ ##[WC]
> Dir c:\ ##★Dir起動[>]Dos窓あり
> Ver & Date /t ##★Verとdateの起動
>> calc ##★電卓[>>]Dos窓無し
>> ms-settings: ##★設定のDlg窓
[PSHメモ帳:本体アプリ] sys\wndPshPrg201.ps1 [Ver2.053D]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
##Ver2.053D wndPshPrg201.ps1 by ryu 2024/1006 #####################################
##STT: ●●「Pshめも帳」(Gui窓PSH処理統合アプリ) by ryu
##ACT: wndPshPrg201.ps1 [TopPageFile] [[file/Dir]]
using namespace System.Windows.Forms; Add-Type -AssemblyName System.Windows.Forms,System.Drawing; ##★GUI
function dbg($cc){[MessageBox]::Show($cc)}; function dbc($zcc){Write-Host $zcc;}; function dbt($cc){ $mMain.Text="[V2.053D]"+$cc;};##★DBG
function ssMsgYesNo($cc0,$cc1,$cc2){ if($cc2-eq $null){$cc2="YesNo"}; return [MessageBox]::Show($cc1,$cc0,$cc2); };##★YesNo
$global:szEditor="C:\winfree\Sakura\sakura.exe"; if(Test-Path $szEditor){;}else{ $global:szEditor="notepad.exe"; };
##★初期設定データ ★DirTree/wRtfMemoの登録 ##★Apl ★TopPageFile
$szTool=$MyInvocation.MyCommand.Path; $szToolDir=Split-Path $szTool -Parent; $fln=$args[0]; if( ($fln-eq $null)-or($fln-eq "") ){ $fln="dmy"; };
$szDirTree="$szToolDir\wPshDirTree201.ps1"; $szRtfMemo="$szToolDir\wPshRtfMemo501.ps1";##★DirTree.ps1 ★wRtfMemo.ps1
$szBkColor="#e0ffc1"; $szFont="BIZ UDゴシック"; $global:szFntSize=13; $szWSize="1080,720"; $global:szFile=$global:szFlBk1="";
$global:szFntKind=@("BIZ UDゴシック","BIZ UDPゴシック","MS ゴシック","Meiryo UI","HGゴシックE","HGPゴシックE","HG創英角ゴシックUB","HG創英角ポップ体"); ##No1~8
function ssTopView($zfg){ if( Test-Path $fln ){;}else{return;}; $szMenu3.ForeColor=$szMenu6.ForeColor="Black"; $global:szFile="";
if(($zfg -eq 0)-and($szTPage.length -ge 10) ){ $tBox.Text=$szTPage; }else{ $bb=(Cat $fln -Raw); $global:szTPage=$tBox.Text=$bb.substring( $bb.indexof("`n<"+"##" )+1); };
ssViewColor; $tBox.SelectionStart=0; dbt(" 【TopPage】 "+$fln); cd (Split-Path $fln -Parent); }; ##★表示
##★メイン窓/編集窓の生成 ★窓寸法(WW,HH) ★文字種類/寸法 ★背景色 ★DLG登録
$mMain =New-Object Form -Pro @{ Size="$szWSize"; }; $tBox =New-Object TextBox -Pro @{ Font="$szFont,13"; BackColor=$szBkColor; Dock="Fill";
Multiline=$true; AcceptsTab=$true; AcceptsReturn=$true; AllowDrop=$true; ScrollBars=[ScrollBars]::Both; }; $mMain.Controls.Add($tBox);
$mMain.Add_Closing({ if( ($tBox.Modified)-and ((ssMsgYesNo "【保存(Y/N)?】" "$szFile")-eq "Yes") ){ ssFileSave 0 $szFile ; return;};
$tBox.Modified=$false; $_.Cancel=$True; $mMain.Visible=$false; });
$dReadBox =New-Object OpenFileDialog -Pro @{ Title="【読取】ファイル選択"; Filter='ファイル|*.txt;*.rtf;*.ps1|全て(*.*)|*.*'; InitialDirectory=(pwd);};
$dSaveBox =New-Object SaveFileDialog -Pro @{ Title="【保存】ファイル設定"; Filter='ファイル|*.txt;*.rtf;*.ps1|全て(*.*)|*.*'; InitialDirectory=(pwd);};
$dFderBox =New-Object FolderBrowserDialog -Pro @{ ShowNewFolderButton = $false; };
##★窓メニュ生成 ★メニュ生成関数 ★メニュ登録(ファイル/TopPage/編集等) ★複数画面 ★DirTree対応 ★各編集機能
$dListMenu =New-Object MenuStrip -Pro @{ Font="$szFont,12"; }; $mMain.MainMenuStrip =$dListMenu; $mMain.Controls.Add($dListMenu);
function ssDMnMenu($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $dListMenu.Items.AddRange($zmm); $global:szMnBas=$zmm; return $zmm;}
function ssDMnMSet($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $szMnBas.DropDownItems.AddRange($zmm); $global:szMnBas2=$zmm; return $zmm;}
$szMenu1=ssDMnMenu "ファイル"; (ssDMnMSet "[TopPage]反映").add_Click({ ssTopPageSav }); $aa=(ssDMnMSet "----");
($szMenu1A=ssDMnMSet "[前File戻り]").add_Click({ $zcm=$szFlBk1.split(";"); if( $zcm[1]-ne $null ){ cd $zcm[1]; }; ssFileSet $zcm[0]; });
(ssDMnMSet "[File再読取]").add_Click({ ssFileSet $szFile }); (ssDMnMSet "[保存]" ).add_Click({ ssFileSave 0 $szFile });
(ssDMnMSet "File読取[窓]").add_Click({ if( $dReadBox.ShowDialog() -eq "OK" ){ ssFileSet($dReadBox.FileName) }; });
(ssDMnMSet "File保存[窓]").add_Click({ ssFileSave 1 $szFile }); $aa=(ssDMnMSet "----"); (ssDMnMSet "[TopPage]再読取").add_Click({ ssTopView 1 });
(ssDMnMSet "[TopPage]編集").add_Click({ Iex("$szEditor $fln") }); (ssDMnMSet "[<Psh編集>]" ).add_Click({ Iex("$szEditor $szTool") });
$szMenu8=ssDMnMenu "フォルダ"; (ssDMnMSet "[複数窓の表示]" ).add_Click({ ssPshAct 1 "$szTool $fln" });
(ssDMnMSet "[Winフォルダ窓表示]").add_Click({ if( $dFderBox.ShowDialog() -eq [DialogResult]::OK ){ ssFileSet $dFderBox.SelectedPath }; });
if(Test-Path $szDirTree ){ (ssDMnMSet "[DirTree(root)]").add_Click({ . $szDirTree "root" });
(ssDMnMSet "[DirTree(現在)]").add_Click({ . $szDirTree (Convert-Path .) }); (ssDMnMSet "[<Tree編集>]").add_Click({ Iex("$szEditor $szDirTree") }); };
(ssDMnMenu "[TopPage]").add_Click({ if($szFile -ne ""){ $global:szFlBk1=$szFile+";"+([String](pwd)); (ssTopView 0);}; });
(ssDMnMenu "[explorer]").add_Click({ explorer (pwd) });
($szMenu3=ssDMnMenu "[保存]").add_Click({ ssFileSave 0 $szFile });
$szMenu4=ssDMnMenu "編集"; (ssDMnMSet "[元に戻す]").add_Click({$tBox.Undo() }); (ssDMnMSet "[切り取り]").add_Click({$tBox.Cut()});
(ssDMnMSet "[コピー]").add_Click({$tBox.Copy()}); (ssDMnMSet "[貼付け]").add_Click({$tBox.Paste()}); (ssDMnMSet "[検索窓]").add_Click({ssSchBoxSet $tBox});
($szMenu6=ssDMnMenu "[Fileメモ帳]" ).add_Click({ if(($szFile -ne "") -and (Test-Path $szFile)){ notepad.exe $szFile }; });
($szMenu7=ssDMnMenu "[rdMeRet]" ).add_Click({ ssFileSet $szFlBk0 });
##★右釦メニュ ★編集 ★再表示 ★各クリップ処理等 ★各ツール等
$tBox.ContextMenuStrip =$global:conMenu =New-object ContextMenuStrip -Pro @{ Font="$szFont,12"; };
function ssRbtMenu($zcha){ $aa=$conMenu.Items.Add(($ccc=New-Object ToolStripMenuItem)); $ccc.Text=$zcha; $global:zzSrp=$ccc; return $ccc; };
function ssRbtSMnu($zcc ){ $aa=$zzSrp.DropDownItems.Add( ($ccc =New-Object ToolStripMenuItem) ); $ccc.Text=$zcc; return $ccc;};
(ssRbtMenu "[TopPage]").add_Click({ ssTopView 0 }); (ssRbtMenu "[元に戻す]").add_Click({$tBox.Undo()}); (ssRbtMenu "[切り取り]").add_Click({$tBox.Cut()});
(ssRbtMenu "[コピー]").add_Click({$tBox.Copy()}); (ssRbtMenu "[貼付け]").add_Click({$tBox.Paste()}); (ssRbtMenu "[全選択]").add_Click({$tBox.SelectAll()});
(ssRbtMenu "右端折返し切替").add_Click({ if( $tBox.WordWrap ){$tBox.WordWrap=$false;}else{$tBox.WordWrap=$true;}; });
(ssRbtMenu "[Top移動]").add_Click({ $tBox.SelectionStart=0; $tBox.ScrollToCaret() });
$zzSrp0=ssRBtMenu "[ツール]";
(ssRBtSMnu "yyyy/MM/dd取得").add_Click({ $tBox.SelectedText=Get-date -Format "yyyy/MM/dd(ddd)"; });
(ssRBtSMnu "年月日時取得" ).add_Click({ $tBox.SelectedText=Get-date -format "yyyy年MM月d日(ddd) HH:mm:ss"; });
(ssRBtSMnu "Dir/File取得" ).add_Click({ $tBox.SelectedText=((dir -name)-join "`r`n")+"`r`n" });
(ssRBtSMnu "Dir/File取得:再帰").add_Click({ $tBox.SelectedText=((dir -name -Rec)-join "`r`n")+"`r`n" });
(ssRBtSMnu "[@FntNo:]一覧" ).add_Click({ $ii=1; $zcc="@FontNo:N`n`n"; foreach( $cc in $szFntKind ){ $zcc+=""+($ii++)+": $cc`n"; }; dbg $zcc; });
##★マウス[WC]/[Ctl+n]操作 ★[>][>>]DOS処理 ★[!][http]Web ★[Dir/File] ★[&]行連結 ★[&&&] ★[&FSet&] ★[&] ★[&&] ★機能追加File
$tBox.Add_DoubleClick({ssWCAct 0 }); $tBox.Add_KeyDown({ if($_.Control){;}else{return;}; switch($_.KeyCode){ "n" { ssWCAct 1;} }; });
function ssWCAct($zcmd){ $ln=((($tBox.Text).substring(0,$tBox.SelectionStart)).split("`n")).count-1; $zcc=$tBox.Lines[$ln];
if( $zcc.startsWith("##★") ){ $ln++; $zcc=$tBox.Lines[$ln]; }; $zcc=(($zcc-split"##")[0]).trim()+" "; if( $zcc.length -le 2){ return; };
if( $zcc.startsWith("> ") ){ $zcc=$zcc.substring(1); if($zcc.contains(" cd ") ){ Iex($zcc) }; Start Cmd -Arg "/k $zcc";return; };
if( $zcc.startsWith(">> ")){ $zcc=$zcc.substring(2); if($zcc.contains("explorer ")){;}
else{ $zcc=($zcc.replace(" shell:","explorer shell:")).replace(" ms-","explorer ms-"); }; Start -NoN Cmd -Arg "/c $zcc";return; };
if( $zcc.startsWith("&") ){;}else{ if( Test-Path $zcc -PathType Container ){ explorer $zcc; return; };
if( ($zcc.startsWith("http"))-or ($zcc.startsWith("!") -and $zcc.contains("http")) ){
if($zcc.startsWith("!")){ $zcc=($zcc.split(";"))[1]; }; $zcc=($zcc.replace("`'","")).trim(); Iex("Start `'$zcc`'"); return; };
if( Test-Path $zcc ){ if($zcc.endswith('.rtf') ){ ssRtfMemo $zcc }else{ Start -NoN Cmd -Arg "/c `"$zcc`""; }; return; }; return; };
for( $ii=1; $ii -lt 300; $ii++ ){ $cc=$tBox.Lines[$ln+$ii]; if($cc -eq $null){ break; };
if( $cc.startsWith(";") ){ $zcc+="`n"+($cc.substring(1)).trim(); }else{ if( $cc.startsWith("#") ){ continue;}; break; }; };
if( $zcc.startsWith("&&& ")){ $zcc=$zcc.substring(3); $tBox.SelectionStart+=4; Iex($zcc); return; };
if( $zcc.startsWith("&FSet&")){ $zcc=$zcc.substring(6).trim(); Iex("ssFileSet `"$zcc`""); return; };
if( $zcc.startsWith("&FSet ")){ $zcc=$zcc.substring(6).trim(); $zcc=Iex("`"$zcc`""); if( $zcc.endswith('.rtf') ){ ssRtfMemo $zcc; return;};##▲
if( $zcc.endswith('.txt')-or $zcc.endswith('.ps1')-or $zcc.endswith('.bat')-or (Test-Path $zcc) ){ ssPshAct 1 "$szTool $fln $zcc" ;return; };##▲
};
if( $zcc.startsWith("& ") ){ ssPshAct 0 ($zcc.substring(1).trim()); return; };
if( $zcc.startsWith("&& ") ){ ssPshAct 1 ($zcc.substring(2).trim()); return; }; (ssWClkCmd $ln $zcc); ##★ssWC追加対応
};
##★PSH短文起動(0:窓あり/1:無し) ★ssWC追加対応 ★add機能追加 ★Rtfメモ帳対応 ★ドラッグ&ドロップ登録
function ssPshAct($zcmd,$zcc){ $zcc=$zcc.replace('"','\"');
if($zcmd-eq 0){ Start powershell -Arg "-noe $zcc";}else{ Start -NoN powershell -Arg "$zcc"; }; };
##$zdir=[String](pwd)
## if($zcmd-eq 0){ Start powershell -Wor $zdir -Arg "-noe $zcc";}else{ Start -Wor $zdir -NoN powershell -Arg "$zcc"; }; };
function global:ssWClkCmd($ln,$zcc){;}; $fladd=$szTool.replace(".ps1","_add.ps1"); if( Test-Path $fladd ){ . $fladd; };
function global:ssRtfMemo($zfl){ if(Test-Path $szRtfMemo){ Start -NoN powershell -Arg "-noe $szRtfMemo `'$zfl`'"; }; };
$tBox.Add_DragEnter({$_.Effect ="All";}); $tBox.Add_DragDrop({ $zcc=@(([DataObject]$_.Data).GetData("FileDrop")); if(Test-Path $zcc ){;}else{ return; };
if($zcc.endsWith(".ps1") ){ Start powershell -Arg "-noe $zcc"; }else{ ssFileSet $zcc; }; });
##★ファイル取得&表示 ★新規File ★Dir_!ReadMe.txt対応 ★Rtf_FIle対応 ★cd Dir移動
function ssFileSet($zfl){ if(($zfl -eq "")-or($zfl -eq $null)){return;}; if(Test-Path $zfl -PathType Container){ $zfl="$zfl\!readMe.txt"; };
if( $zfl.endswith('.txt')-or $zfl.endswith('.ps1')-or $zfl.endswith('.bat')){;}
else{ if( $zfl.endswith('.rtf') ){ ssRtfMemo $zfl ; return; }; dbg "[ERROR]`n>>> No File.txt/rtf/ps1`n$zfl"; return; };
if($szFile -eq ""){ $global:szTPage=$tBox.Text; }else{ if( $szFile -ne $zfl ){$global:szFlBk1=$szFile;}; }; ##TopPage退避(szTPage)
$szMenu3.ForeColor=$szMenu6.ForeColor="Blue";
if(Test-Path $zfl){ $tBox.Text=Cat $zfl -Raw; $zcc0="▲File読取▲$zfl"; }
else{ $tBox.Text="#![管理] @BakColor:$szBkColor @FntSize:13 @WndSize:$szWSize`r`n"; $zcc0="【新規】$zfl"; };
if( $zfl.Contains("!readMe.txt") ){ $global:szFlBk1+=";"+([String](pwd));
cd (Split-Path $zfl -Parent); $zfl=([String](pwd))+"\!readMe.txt"; $global:szFlBk0=$zfl; $szMenu7.ForeColor="Blue";
if(Test-Path $zfl){;}else{ $tBox.Text +=(((pwd)-join "`r`n")+"`r`n`r`n`r`n"+((dir -name)-join "`r`n")+"`r`n"); }; };
$global:szFile=$zfl; $tBox.SelectionStart=0; $zcc=[String](pwd); ssViewColor; dbt("[$zcc] $zcc0");
};
##★File保存(bak保存選択) ##★TopPage保存
function ssFileSave($zcmd,$zfl){ if( $zfl -eq ""){ ssTopPageSav; return; };
if( $zcmd -eq 1 ){ $dSaveBox.InitialDirectory=(Split-Path $zfl -Parent); $dSaveBox.FileName=(Split-Path $zfl -Leaf);
if( $dSaveBox.ShowDialog() -ne "OK" ){ return; }; $zfl=$dSaveBox.FileName; if($zfl -eq ""){ return;}; }
else{ if( ($zfl -eq "")-or(($cc=ssMsgYesNo "[上書き保存 (BackUP:Y/N)] or [キャンセル]" $zfl "YesNoCancel" ) -eq "Cancel" ) ){ return; }; };
if( ($cc -eq "Yes")-and (Test-Path $zfl) ){ if(Test-Path "bak" -PathType Container){;}else{ New-Item "bak" -ItemType Directory };
$zfl2="bak_"+(Split-Path $zfl -Leaf); Copy-Item $zfl "bak\$zfl2" -Force; };
$global:szFile=$zfl; SC $zfl ($tBox.Text); $tBox.Modified=$false; $zcc=[String](pwd); ssViewColor; dbt("[$zcc] ▼File保存▼$zfl");
};
function ssTopPageSav(){ if( ($szFile -eq "")-and ((ssMsgYesNo "[TopPage]をFileへ反映保存(Y/N)" $fln) -eq "Yes") ){;}else{ return; };
$zcc=Cat $fln -Raw; SC ($fln+".bak") $zcc -Force; SC $fln ($zcc.substring(0,$zcc.indexof('<#'+'#'))+$tBox.Text) -Force; ssViewColor; $tBox.Modified=$false; };
##★背景色 ★FNT寸法 ★Wnd寸法 ★Wnd右端
function ssViewColor(){ $zcc=$tBox.Lines[0]; if($zcc-eq $null){ return;}; $zcm=$zcc.replace(" ","").split("@?:");
for( $ii=0; $ii -lt $zcm.count; $ii++ ){ $cc=$zcm[$ii]; $cc1=$zcm[$ii+1]; if($cc.StartsWith("BakColor") ){ $tBox.BackColor=$cc1; };
if($cc.StartsWith("FntSize") ){ $global:szFntSize=$cc1; $tBox.Font="$szFont,$cc1"; }; if($cc.StartsWith("WndSize") ){ $mMain.Size=$cc1; };
if($cc.StartsWith("FntNo") ){ $tBox.Font=(""+$szFntKind[$cc1-1]+",$szFntSize"); };
if($cc.StartsWith("WndRtan")){ $tBox.SelectionStart=0; if($cc1-eq 1){ $tBox.WordWrap=$false }else{$tBox.WordWrap=$true}; }; };
};
##★文字検索DLG窓
$global:szfindPos=0; $global:szShBox=$tBox;
$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="$szFont,12"; Location="10,2" ; Size="400,16"; };
function ssSetBtn($pm0,$pm1,$pm2){ $zob=New-Object Button -Pro @{ Text=$pm0; Location=$pm1; Size=$pm2; Font="$szFont,12"; }; return $zob; };
( $szSchBtn0=ssSetBtn "【Top】" "420,2" "80,30" ).Add_Click({ $global:szSetChaText=$szSchBox1.Text; $aa=ssSchFind 0 $szShBox });
( $szSchBtn1=ssSetBtn "【検索】" "420,34" "80,30" ).Add_Click({ $global:szSetChaText=$szSchBox1.Text; $aa=ssSchFind 1 $szShBox });
$szSchForm.Controls.AddRange(@($szSchBox1, $szSchBtn0, $szSchBtn1)); $szSchForm.Add_Click({ $tBox.Focus() });
## ★検索go(zwBox null時 tBox) ##0:Top ##1:継続
function ssSchBoxSet($zwBox){ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$zwBox.SelectionStart; $global:szShBox=$zwBox; $szSchForm.Show(); }
function ssSchFind($zcmd,$zwBox,$zcc){ if($zcc -eq $null){ $zcc=$szSchBox1.Text; }; if($zcmd -eq 0){ $global:szfindPos=0; };
if( $zwBox -eq $null ){ $zwBox=$tBox; }; $zPos =($zwBox.Text).indexof($zcc,$szfindPos); if($zPos -ge 0 ){;}else{ $zwBox.Focus(); return 1; };
$zwBox.Select($zPos, $zcc.length); $zwBox.ScrollToCaret(); $zwBox.Focus(); $global:szfindPos=$zPos+1; };
##★MSG表示Call関数 ★DLG窓の生成 ★MSG窓の文字BOX
function MsgBox($cc,$ww,$ms){ if($ww-eq $null){$ww="720,400";}; if($ms-eq $null){$ms="【MSG】";}; $fmMBox=New-Object Form -Pro @{ Size=$ww;Text=$ms; };
$global:mBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
$fmMBox.Controls.Add($mBox); $mBox.Text=($cc.replace("`n","`r`n")); $mBox.SelectionStart=0; $fmMBox.Show(); };
##★基本窓表示[TopPage]
$zcc=$args[1]; if( $zcc -eq $null ){ ssTopView 1 }else{ ssFileSet $zcc }; $mMain.ShowDialog();
[機能追加add] sys\wndPshPrg201_add.ps1 [Ver1.332]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
##Ver1.332 wndPshPrg201_add.ps1 by ryu 2024/1130 ###############################
##●●[PSHメモ帳]拡張機能ファイル(応用編[42])
##★[ファイル]釦:szMenu1:メニューに追加
$global:szMnBas=$szMenu1; (ssDMnMSet "[<Add編集>]" ).add_Click({ & $szEditor $fladd }); $aa=(ssDMnMSet "----");
(ssDMnMSet "電源OFF" ).Add_Click({ Stop-Computer -Force });
(ssDMnMSet "スリープ" ).Add_Click({ [Application]::SetSuspendState(0, $false, $false) });
##★[フォルダ]釦:szMenu8:メニューに追加
$global:szMnBas=$szMenu8; $aa=(ssDMnMSet "----" );
(ssDMnMSet "[現在フォルダ表示]").add_Click({ ssViewDir });
$global:szMnBas=$szMnBas2;(ssDMnMSet "[explorerで]").add_Click({ explorer (pwd) }); $global:szMnBas=$szMenu8;
(ssDMnMSet "[デスクトップDir]").add_Click({ ssViewDir 0 $home\Desktop });
$global:szMnBas=$szMnBas2;(ssDMnMSet "[explorerで]").add_Click({ explorer $home\Desktop }); $global:szMnBas=$szMenu8;
(ssDMnMSet "[ダウンロードDir]").add_Click({ explorer $home\Downloads });
(ssDMnMSet "[BakUPフォルダ]" ).add_Click({ $zcc=(pwd); explorer "$zcc\bak" });
(ssDMnMSet "[Windows設定]").add_Click({ explorer ms-settings: });
(ssDMnMSet "[アプリ一覧Dir]").add_Click({ explorer shell:AppsFolder });
(ssDMnMSet "[ゴミ箱]" ).add_Click({ explorer shell:RecycleBinFolder });
##★[編集]釦:szMenu4
$global:szMnBas=$szMenu4; (ssDMnMSet "Top移動[TagRet]").add_Click({ $tBox.SelectionStart=0; $tBox.ScrollToCaret() });
(ssDMnMSet "Bottom移動").add_Click({ $tBox.SelectionStart=$tBox.Text.Length; $tBox.ScrollToCaret() });
(ssDMnMSet "右端折返し切替" ).add_Click({ if( $tBox.WordWrap ){$tBox.WordWrap=$false;}else{$tBox.WordWrap=$true;}; }); $aa=(ssDMnMSet "----");
(ssDMnMSet "TList[##★]取得").add_Click({ ssTagListGet "720,600" });
(ssDMnMSet "TList[]前後表示").add_Click({ $fmTgBox.TopMost=$false });
##★[ツール1]釦:Menu9
$global:szMenu9=(ssDMnMenu "ツール1" );
(ssDMnMSet "[現在フォルダ表示]").add_Click({ ssViewDir });
(ssDMnMSet "[現在フォルダ再帰表示]").add_Click({ ssViewDir 1 });
(ssDMnMSet "[Dir容量表示]" ).add_Click({ ssToolAct !DirV 1 });
(ssDMnMSet "[DirのTree表示]").add_Click({ ssToolAct !DirV 0 }); $aa=(ssDMnMSet "----");
(ssDMnMSet "[大きいカレンダ]" ).add_Click({ ssToolAct !BCal });
(ssDMnMSet "[マクロ一覧]" ).add_Click({ MsgBox ($szLstMacro.replace(","," ")) "960,520"; $mBox.BackColor="#E8FFD0";});
(ssDMnMSet "[PSH高速化(ngen)]").add_Click({ ssToolAct !Ngen });
(ssDMnMSet "[UTF8->ANSI変換]" ).add_Click({ ssToolAct !ANSI }); $aa=(ssDMnMSet "----");
(ssDMnMSet "[アプリ変数表示]" ).add_Click({ ssToolAct !AplD });
(ssDMnMSet "[画面クリア]" ).add_Click({ ssToolAct !DClr 0 });
(ssDMnMSet "[画面クリア->クリップ取得]" ).add_Click({ ssToolAct !DClr 1 });
(ssDMnMSet "[HTML特殊文字変換]").add_Click({ ssToolAct !HtmC });
##★[ツール2]釦:Menu10
$global:szMenu10=(ssDMnMenu "ツール2" );
(ssDMnMSet "[サイズ色設定BOX]").add_Click({ ssSizeColor });$aa=(ssDMnMSet "----");
(ssDMnMSet "[電卓]").add_Click({ calc.exe });
(ssDMnMSet "[画面コピー]").add_Click({ SnippingTool.exe });
(ssDMnMSet "[Win設定]" ).add_Click({ start ms-settings: });
(ssDMnMSet "[コントロールパネル]").add_Click({ control.exe }); $aa=(ssDMnMSet "----");
(ssDMnMSet "[PSH窓]").add_Click({ Start powershell });
(ssDMnMSet "[PSH管理者]").add_Click({ Start -Verb runas powershell });
(ssDMnMSet "[ps1アプリ更新]" ).add_Click({ ssToolAct !VrUp });
##★[ツール3]釦:Menu11
$global:szMenu11=(ssDMnMenu "ツール3" ); ##(ssDMnMSet "----").add_Click({;});
##★[ツール4]釦:Menu12
($global:szMenu12=ssDMnMenu "ツール4" ).add_Click({ if( Test-Path $fladd3 ){ . $fladd3; }; });
##★[Help]釦:Menu19
$global:szMenu19=(ssDMnMenu "Help" );
(ssDMnMSet "[背景色サイト]" ).add_Click({ start "https://ryupapa008.blogspot.com/p/blog-page_6.html" });
(ssDMnMSet "[HELP操作説明]" ).add_Click({ ssHelpView 0 0 });
(ssDMnMSet "[日めくりカレンダ]").add_Click({ start "https://www.himekuricalendar.com/" }); $aa=(ssDMnMSet "----");
(ssDMnMSet "[Web:Psh入門]").add_Click({ start "https://step-learn.com/article/powershell/index.html" });
(ssDMnMSet "[Web:PSHサイト]" ).add_Click({ start "https://forsenergy.com/ja-jp/windowspowershellhelp/html/7908faf0-0e08-443d-8060-aac911e5a7e0.htm" });
(ssDMnMSet "[Psh短縮Cmd]" ).add_Click({ start "https://mseeeen.msen.jp/research-powershell-command-alias" }); $aa=(ssDMnMSet "----");
##(ssDMnMSet "[<Help編集>]" ).add_Click({ if( Test-Path $szHelpDoc ){ $zcc=$szHelpDoc }else{ $zcc=$fladd }; & $szEditor $zcc });
##★ユーザ拡張(usr)登録 ★ツール拡張(etc)登録
function global:ssWClkUsrCmd($ln,$zcc){ return 0;};
$global:fladd2=$szTool.replace(".ps1","_usr.ps1"); if( Test-Path $fladd2 ){ (ssDMnMSet "[<usr編集>]" ).add_Click({ & $szEditor $fladd2 }); };
$global:fladd3=$szTool.replace(".ps1","_etc.ps1"); if( Test-Path $fladd3 ){ (ssDMnMSet "[<etc編集>]" ).add_Click({ & $szEditor $fladd3 }); };
##★マウス右釦メニュに追加
(ssRbtMenu "[検索窓]").add_Click({ssSchBoxSet $tBox});
(ssRbtMenu "クリップ1行取得").add_Click({ $ln=((($tBox.Text).substring(0,$tBox.SelectionStart)).split("`n")).count-1;
$zcc=($tBox.Lines[$ln]).trim(); Set-Clipboard $zcc; });
##★サイズ/背景色/フォント設定BOX($szFntKind+=@(XXXX))
$global:szLstSize="[サイズ:9], [サイズ:10], [サイズ:11], [サイズ:12], [サイズ:14], [サイズ:16], [サイズ:18],[サイズ:20],";
$global:szLstColr="[薄とまと:#FFE0DF], [薄赤紫色:#FFE5FE], [薄水色:#E5F2FE], [薄緑色:#E5FFE4],[薄黄色:#FFFFE4],[薄みかん:#FFEFDF],";
$global:szFont00=$szFont; $global:szfSize00=$szFntSize;
##★ListBox処理
function ssSizeColor(){ $global:fmSizeBox =New-Object Form -Pro @{ Size ="260,520"; Text="サイズ/色"};
$global:scBox=New-Object ListBox -Pro @{ Dock="Fill"; Font='"BIZ UDゴシック",14'; BackColor="#E5F2FE";}; $fmSizeBox.Controls.Add($scBox);
foreach($cc in ($szLstSize+$szLstColr+$szLstFont).split(",")){ $cc=$cc.trim(); if( $cc.startsWith("[") ){ $aa=$scBox.Items.Add( $cc ); }; };
foreach($cc in $szFntKind ){ $aa=$scBox.Items.Add( "[font:!$cc]" ); }; $fmSizeBox.Show();##★表示
$scBox.Add_Click({ $zcc=(($scBox.SelectedItem).split(":]"))[1].trim();
if( $zcc.startsWith("#") ){ $tBox.BackColor=$zcc; return; };
if( $zcc.startsWith("!") ){ $global:szFont00=$zcc.substring(1); }else{ $global:szfSize00=$zcc; }; $tBox.Font="$szFont00,$szfSize00"; });
};
##★[&CCCC][WC]起動処理の追加(マクロ登録)
$global:szLstMacro="【マクロ一覧V1.0】
#
#--&マクロ,-Web名称,------検索Url,---------------------------------------#
&KKK, MSN検索, https://www.bing.com/search?q=
&KKG, Google検索, https://www.google.co.jp/search?q=
&KKY, Yahoo検索, https://search.yahoo.co.jp/search?p=
&KKA, Amazon, https://www.amazon.co.jp/s?k=
&KKR, R楽天市場, https://search.rakuten.co.jp/search/mall/
&KK5, 一括検索, KKK/KKG/KKY/KKA/KKR
★
&KBD, 株Doraチャート, https://www.kabudragon.com/s?t=
&KBC, Cost株価Yahoo, !YahooNow
&KBY, Yahooチャート, !YahooCha
&KBT, 株Tan情報, !KtanCha
&KBN, Nikkei3分5日, !NikeCha
★
&KEI, keisan計算[31]
&KEY, 自動キー操作[32]
&FS, 説明文 ;file名 ##マルチ窓起動(&FSet)
&FS&, 説明文 ;file名 ##入替え(&FSet&)
&EXE, 説明文 ;exefile名(XXXX.exe) ##説明文先行exe
";
##
function global:ssWClkCmd($ln,$zcc0){ $zcmd=$zcc0.split(" ")[0]; $zcc1=($zcc0.substring(5)).trim(); ##dbc "$ln $zcc0";
##★キー入力 ★計算 ★HTML ★CSS
if( ($zcmd-eq "&KEY")-or ($zcmd-eq "&KEI")-or ($zcmd-eq "&HTML")-or ($zcmd-eq "&CSS") ){
for( $ii=1; $ii -lt 300; $ii++ ){ $cc=$tBox.Lines[$ln+$ii]; if(($cc -eq $null)-or($cc.length -le 2 )){break;};
if($cc.startsWith("#")){continue;}; $zcc1+="`n"+($cc.trim()) }; ## dbg $zcc1
};
switch($zcmd){
"&KEI"{ ssKeisan $zcc1 ; return;} ##▲▲V1
"&KEY"{ ssKeyAuto $zcc1 ; return;}
"&FS&"{ $zcc=($zcc1.split(";"))[1].trim(); Iex("ssFileSet `"$zcc`""); return; };
"&FS" { $zcc=($zcc1.split(";"))[1].trim(); $zcc=Iex("`"$zcc`""); if( $zcc.endswith('.rtf') ){ ssRtfMemo $zcc; return; }; ##▲
if( $zcc.endswith('.txt')-or $zcc.endswith('.ps1')-or $zcc.endswith('.bat')-or(Test-Path $zcc) ){ ssPshAct 1 "$szTool $fln $zcc" ; return;}; }
"&EXE"{ $zcc=($zcc1.split(";"))[1].trim(); Start -NoN Cmd -Arg "/c `"$zcc`""; return; } ##▲
};
if( (ssWClkUsrCmd $ln $zcc0) -eq 0 ){ ssWebSrh $zcmd $zcc1; }; ##★usrマクロ⇒##★Web検索
};
##★Web検索List&スーパ検索処理
##
function global:ssWebSrh($zcmd,$zcc1){ $zcm=$szLstMacro.split(",`n");
for($ii=0; $ii -lt $zcm.length; $ii++ ){ if(($zcm[$ii].trim()) -ne $zcmd){ continue; }; break; };
$zcc=(($zcm[$ii+2]).trim()); if($zcc.startsWith("http")){ $zcc+=$zcc1; Iex( "Start `'$zcc`'" ); Start-Sleep -m 500; return; }
if( $zcmd -eq "&KK5" ){ foreach($cc in $zcc.split("/")){ if($cc.length -eq 3){ ssWebSrh "&$cc" $zcc1; }; }; };
if( $zcmd.substring(0,3) -eq "&KB" ){ ssKabView $zcc $zcc1; };
};
##★[31]式表計算の処理【 ssKeisan zpam 】
##
function global:ssKeisan($zcmd ){ $zcmd=$zcmd; $dd0=$zcmd; $zcc0="`r`n"; $ss=0;
foreach($cc in ($dd0-replace("[=]","")).split(";`n") ){ ##★式分割
if($cc.startsWith("_") ){ $zcc0+="$cc`r`n"; continue;}; ##★!コメント行
$zcc0+=" "; if($cc.Contains("_") ){ $cc2=$cc.split("_"); $zcc0+=$cc2[0]+"_"; $cc=$cc2[1]; };
if($cc.length -ge 3 ){ $dd=Iex($cc); $ss+=$dd; $zcc0+="$cc = $dd`r`n"; }else{ $zcc0+="$cc`r`n";};
}; $zcc0+="合計= $ss"; (MsgBox $zcc0);
};
##★[32]キー操作自動化の処理【ssKeyAuto zpam】
##
function global:ssKeyAuto($zcc0){
if((ssMsgYesNo "注" "[英]入力モードを確認し`nキー入力BOXをクリアし、[Y]釦押下し`n素早く入力BOXをクリック")-ne "Yes" ){ return;};
Start-Sleep -m 2500; $zcc0=$zcc0.replace("{T}","{TAB}").replace("{D}","{DELETE}").replace("{E}","{ENTER}");
foreach( $cc in $zcc0.split(";`n") ){ if($cc.length -lt 3){ continue; }; $zcc=$cc.trim();
if( $zcc.startsWith("@Wait") ){ $zdd=[int]($zcc.substring(6)); dbc("[Wait(s)] $zdd"); Start-Sleep -m ($zdd*1000); continue; };
if( $zcc.startsWith("@Stop") ){ $zcc1="送信継続は[Y]押下し素早く入力BOXをクリック`n停止は[N]をクリック";
if( (ssMsgYesNo "停止中" $zcc1)-ne "Yes" ){ return;}; Start-Sleep -m (2*1000); continue; };
[SendKeys]::SendWait("$zcc");
};
};
##★[33][34][35]googleグラフの処理 【ssGraf (zType[,No]) zOption zData zColum zPrg zBody】
## No指定のときClipにHTML-List設定、未指定時はClip未使用
function global:ssGraf($zTp,$zOption,$zData,$zColum,$zAddProg,$zAddBody){ $szfile="$home\Desktop\gChart01.html";
$zcm=$zTp.split(","); $zType=$zcm[0].trim(); if( $zcm[1]-eq $null){ $zNum=""; }else{ $zNum=$zcm[1].trim(); };
$zpkg='corechart';
foreach($cc in 'AnnotationChart','TreeMap','Timeline','Table','VegaChart','GeoChart','Gauge','Sankey','Calendar','WordTree' ){
if($cc -eq $zType){ $zpkg=$cc; break; }; };
$zcc0='<html>
<head><script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript"> google.charts.load("current", {packages:["'+$zpkg+'"]});
google.charts.setOnLoadCallback(draw@@chart); var @@chart; var @@options; var @@data;
function draw@@chart(){ @@chart = new google.visualization.'+$zType+'(document.getElementById("@@chart_val"));
@@options='+$zOption+'; ';
if( $zData.startsWith("[") ){ $zcc0+='@@data =new google.visualization.DataView( google.visualization.arrayToDataTable( '+$zData+' ) );' }
else{ $zcc0+='@@data =new google.visualization.DataTable(); '+$zData+'; ' };
$zcc0+=$zColum+';@@chart.draw(@@data, @@options); };'
$zcc0+=$zAddProg+';</script></head>
<body><div id="@@chart_val" ></div>'+$zAddBody+'</body></html>' ;
##★
$zcc0=$zcc0.replace('@@chart',"chart$zNum").replace('@@options',"options$zNum").replace('@@data',"data$zNum");
SC $szfile $zcc0; & $szfile; ##★Web.html起動
if( $zNum-ne ""){ Set-Clipboard ($zcc0.replace("<html>","").replace("</html>","").replace("<body>","").replace("</body>","")); }; ##▲V1
};
##★[36]株表示の処理 【 ssKaView zKind zKabNo zUrl】
##
function global:ssKabView($zzcmd,$zzcc,$zzurl){
if($zzurl.length -gt 10){ $zUrl =$zzurl; if( $zzcmd -eq "!KabMany"){ Start ($zzurl.replace("@@@@",$zzcc )); return;}; }
else{ switch($zzcmd){
!KdoraCha{ Start ("https://www.kabudragon.com/s?t="+$zzcc ); return; }
!YahooNow{ Start ("https://finance.yahoo.co.jp/search/?query=$zzcc" ); return; }
!YahooCha{ $zUrl="https://finance.yahoo.co.jp/quote/@@@@.T/chart?";
$zUrl+="styl=lne&frm=mntly&scl=stndrd&trm=1w&evnts=&ovrIndctr=sma%2Cmma%2Clma&addIndctr=slwStchstc"; break; }
!KtanCha { $zUrl="https://s.kabutan.jp/stocks/@@@@/"; break; }
!NikeiCha{ $zUrl="https://www.nikkei.com/smartchart/?code=@@@@&timeframe=3d&interval=3Minute&upperIndicators=bollinger"
$zUrl+="%2Csma&lowerIndicators=slowstochastics&eventsShow=0"; break;}
}; };
foreach( $cc in $zzcc.split("+ ") ){ if( $cc.length -ge 4 ){ Start ($zUrl.replace("@@@@",$cc)); Sleep -m 1000; }; }; ##▲SPC追加
};
##★[36]【STag [文字] pm】移動 ## [WebTable] 移行で検索、、、
##
$global:szsTagIndx="[WebTable]"; ##★sTagの検索開始文字[WebTable]
function global:sTag($zcc,$zpm){ $szSchBox1.Text=($zcc.split(" "))[0]; $global:szfindPos=($tBox.Text).indexof($szsTagIndx);
if( $zpm -eq 0){ $tBox.WordWrap=$false }; $tBox.SelectionStart=$tBox.Text.Length; $tBox.ScrollToCaret(); ssSchFind(1); };
##★[37][右釦]へQR処理組込み(szQRSaveMode=1で[QRcd]へQRcode保存)
##
$global:szCMn10=ssRbtMenu "[!name;QRcode]生成"; $global:szQrDir="QRcd";##開始時QRDir
$szCMn10.add_Click({ $ln=((($tBox.Text).substring(0,$tBox.SelectionStart)).split("`n")).count-1;
$zcm=($tBox.Lines[$ln].replace("`'","")).split(";"); $zFl=$zcm[0].trim(); $zQR=$zcm[1].trim();
if( $zFl.startsWith("!") -and ($zQR.length -ge 5) ){;}else{return;};
if( $szQRSaveMode -eq 1 ){ $zFl="$szQrDir\$zFl.png";}else{ $zFl="$home\Desktop\QRcode.png";};
MsgBox "$zFl`n$zQR"; New-QRCodeText -Text $zQR -Width 10 -Show -Out $zFl;
});
##★キー入力BOX窓(VB)
## cmd:処理No chr0:入力コメント chr1:初期値
function global:ssVBKeyInp( $zcmd, $zchr0, $zchr1){ Add-Type -Assembly Microsoft.VisualBasic;
$zcc=[Microsoft.VisualBasic.Interaction]::InputBox($zchr0,$zcmd,$zchr1); return $zcc;
};
##★キー入力BOX窓:fmKeyBox(KeyBox) ##キー入力[return]で起動
## cmd:処理No chr0:入力コメント chr1:初期値
function global:ssDlgKeyInp( $zcmd, $zchr0, $zchr1){ $global:fmKeyBox=New-Object Form -Pro @{ Size="600,100"; StartPosition ="manual"; TopMost=$true; };
$global:KeyBox =New-Object TextBox -Pro @{ Location ="5,5"; Size ="575,50"; Font ="Meiryo UI,12";}; $fmKeyBox.Controls.Add( $KeyBox );
$fmKeyBox.Location=New-Object Drawing.Point( ([Cursor]::Position.X -300),([Cursor]::Position.Y -20) ); $fmKeyBox.Show();
$global:szKeyMode =$zcmd; $fmKeyBox.text =$zchr0; $KeyBox.text =$zchr1;
##キー入力
$KeyBox.Add_KeyPress({ if( $_.KeyChar -ne "`r" ){ return;}; $_.Handled =$true; $fmKeyBox.Visible =$false;
$zmd=$szKeyMode; $zcc=$KeyBox.Text; if( $zcc -ne ""){ ssKeyCmp1 $zmd $zcc; ssKeyCmp2 $zmd $zcc; ssKeyCmp3 $zmd $zcc;};
});
}; function global:ssKeyCmp1($zmd,$zcc){}; function global:ssKeyCmp2($zmd,$zcc){}; function global:ssKeyCmp3($zmd,$zcc){};
##★[38]TagListBoxから[WC]で移動 [##★[XXX]]の行へ移動
##
$global:szTagListCha="##★"; ##★TagList作成文字
function global:ssTagListGet($zpam1){ $zDat=($tBox.Text).replace("`r",""); $zcc0="";
foreach($cc in $zDat.split("`n") ){ if( $cc.startsWith($szTagListCha) ){;}else{ continue;}; $zcc0+=$cc+"`n"; };
$ww=$zpam1; $global:fmTgBox=New-Object Form -Pro @{ Size=$ww; Text="【移動Tag-List】" ; TopMost=$True; };
$global:tgBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
$fmTgBox.Controls.Add($tgBox); $tgBox.Text=($zcc0.replace("`n","`r`n")); $tgBox.SelectionStart=0; $fmTgBox.Show(); $tgBox.WordWrap=$false;
##★[WC]処理
$tgBox.Add_DoubleClick({ $ln=((($tgBox.Text).substring(0,$tgBox.SelectionStart)).split("`n")).count-1; $zcc=($tgBox.Lines[$ln]).trim();
if($zcc.length -le 2){return; }; $szSchBox1.Text=$zcc; $tBox.SelectionStart=$tBox.Text.Length; $tBox.ScrollToCaret(); ssSchFind(0);##★PSH窓TXT
});
$tgBox.ContextMenuStrip =$global:conMenu =New-object ContextMenuStrip -Pro @{ Font="BIZ UDゴシック,12"; };
(ssRbtMenu "[検索窓]" ).add_Click({ ssSchBoxSet $tgBox }); (ssRbtMenu "[コピー]").add_Click({ $tgBox.Copy() });
(ssRbtMenu "[Top移動]").add_Click({ $tBox.SelectionStart=0; $tBox.ScrollToCaret() });
};
##★[41]フォルダ表示(cmd=0:現在DIR 1:再帰表示)
##
function ssViewDir($zcmd, $zdir){ if($zdir-eq $null){ $zdir=(pwd);}; $zcc="[ダブルクリック起動]`n"; $global:szViDir=$zdir;
if($zcmd -eq 1 ){ $zcc +="[$zdir]`n___[Dir/File]_________________________________________`t#__`n";
dir $zdir -name -rec |%{ $nn=[System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($_);
if( $nn -gt 52 ){ $nn=2; }else{ $nn=52-$nn; }; $zcc+=$_ + (" "*$nn)+"`t## `n" ; };
}else{ $zcc +="[$zdir]`n___[Dir/File]________________________________`t#__[Date/Time]________[Size](D=1)`n";
dir $zdir|%{ $nn=[System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($_.Name);
if( $nn -gt 46 ){ $nn=2; }else{ $nn=46-$nn; }; $zcc+=($_.Name + (" "*$nn)) ;
$zcc+="`t## "+($_.LastWriteTime)+(([int]$_.Length).ToString("#,#")).PadLeft(10)+"`n"; };
}; MsgBox $zcc "960,720" ("["+(pwd)+"]"); $mBox.AcceptsTab=$true; $mBox.WordWrap=$false; $mBox.BackColor="#EAF4FE";
$mBox.Add_DoubleClick({ $ln=((($mBox.Text).substring(0,$mBox.SelectionStart)).split("`n")).count-1;
$zcc=(($mBox.Lines[$ln]-split"##")[0]).trim(); if($zcc.length -le 2){return; }; $zcc="$szViDir\$zcc";
if( Test-Path $zcc -PathType Container ){ explorer $zcc; return; };
if( Test-Path $zcc ){ if($zcc.endswith('.rtf') ){ ssRtfMemo $zcc }else{ Start -NoN Cmd -Arg "/c `"$zcc`""; }; };
});##★右釦メニュ
$mBox.ContextMenuStrip =$global:conMenu =New-object ContextMenuStrip -Pro @{ Font="$szFont,12"; };
(ssRbtMenu "[クリップ取得(コピー)]").add_Click({ $mBox.Copy() });
(ssRbtMenu "[クリップ取得(#の左側)]").add_Click({ $zcc="";
foreach( $cc in ($mBox.SelectedText).split("`n") ){ $zcc+=(($cc.split("#"))[0]).trim()+"`r`n"; }; dbc $zcc; Set-Clipboard $zcc; });
(ssRbtMenu "[窓へ取得Txt/ps1/bat]" ).add_Click({ $ln=((($mBox.Text).substring(0,$mBox.SelectionStart)).split("`n")).count-1;
$zcc=(($mBox.Lines[$ln]-split"##")[0]).trim(); if($zcc.length -le 2){return; }; $zcc="$szViDir\$zcc";
if( (Test-Path $zcc)-and ($zcc.endsWith(".txt")-or $zcc.endsWith(".ps1")-or $zcc.endsWith(".bat")) ){
if( $szFile -ne $zcc ){$global:szFlBk1=$szFile;}; $tBox.Text=Cat $zcc -Raw; $tBox.Font="$szFont,11"; $global:szFile=$zcc; ; dbt("△File読取△$szFile");
};
});
};
##★[41]addツール処理(起動時間短縮より別adcファイル化)
##
function global:ssToolAct($zcmd,$zpam){ switch($zcmd){
##★アプリ変数DLG表示
!AplD{ $zcc=(pwd); $zVer1=((cat $szTool)[0].split(" "))[0]; $zVer2=((cat $fladd)[0].split(" "))[0];
$zcc1 =("[PshMemo] $zVer1 [PshAdd] $zVer2").replace("#","");
$zcc1+= "`n[編集] $szFile`n[戻り] $szFlBk1`n[TopPage] $fln`n[Dir] $zcc" ;
$zcc1+= "`n`n[Apl] $szTool`n[add] $fladd`n[usr] $fladd2`n`n[editor] $szEditor";
MsgBox $zcc1 "820,450";
return; }
##★画面クリア //0:のみ//1:クリップ取得
!DClr{ if((ssMsgYesNo "【画面クリア(Y/N)】" "画面クリアしてOKですか?")-ne "Yes" ){ return; };
$tBox.Text=""; $tBox.SelectionStart=0; if( ($szFile-ne "")-and ($szFlBk1-ne $szFile) ){ $global:szFlBk1=$szFile; };
if( ($zpam-eq 1)-and ((ssMsgYesNo "【取得(Y/N)】" "クリップボードから取得(Y/N)?")-eq "Yes" ) ){ $tBox.Paste() };
return; }
##★UTF8->ANSI変換
!ANSI{ if( ($szFile -ne "")-and (Test-Path $szFile) ){;}else{ return; }; $tBox.Text=Cat $szFile -Raw -Encoding UTF8; $tBox.SelectionStart=0;
if( (ssMsgYesNo "注:UTF8->ANSI変換OKですか?(Y/N)" "[File保存]押下(Y/N)で上書き保存します`n`n$szFile" )-eq "Yes" ){ return; };
$tBox.Text=Cat $szFile -Raw; $tBox.SelectionStart=0;
return; }
##★HTML特殊文字変換(変換文字:&,<,>,",') MSGBOXに出力
!HtmC{ $zcm=@("&","&", "<","<", ">",">", "`'","'", "`"",""", "`r","");
$zcc=$tBox.Text; for( $ii=0; $ii -lt $zcm.length; $ii+=2){ $zcc=$zcc.replace($zcm[$ii],$zcm[$ii+1]); }; MsgBox $zcc "1180,720";
return; }
##★Dir容量表示【ssDir zpam】[0]Tree表示//[1]Dir容量表示)
!DirV{ $zcc0= '$zDir=Read-Host "[DIR名/Enter]= "; if($zDir -eq "" ){ $zDir=(pwd); }; echo "[Dir] $zDir" ;'
if($zpam -eq 0){ $zcc0+='tree $zDir /f ;'; ssPshAct 0 $zcc0; return; }; ##★Tree
$zcc0+='$zlist =dir $zDir -Directory |%{ [PsCustomObject]@{ "Name"=$_.Name; "Size"=(dir $_.FullName -File -Recurse |measure -Sum -Property Length).Sum }; };
$zmes =$zlist |measure -Max -Min -Property Size; $zlist |%{ [PSCustomObject]@{ "Name"=$_.Name; "Size"=( ([int]$_.Size).ToString("#,#") ).PadLeft(16);
"Graph"=("*" * [int]($_.Size/($zmes.Maximum)*10)); }; };';
ssPshAct 0 $zcc0;
return; }
##★[41]大きいカレンダ(カスタマイズ)
!BCal{ $fmCal=New-Object Form -Pro @{ Location="100,50"; Size="380,500"; };
$zMonCal=New-Object MonthCalendar -Pro @{ Font="'Meiryo UI',28"; TrailingForeColor="192,192,0"; };
$fmCal.Controls.Add($zMonCal); $fmCal.Show();
return; }
##★[41]PSH起動の高速化
!Ngen{ $zcc='-noe cd c:\
Set-Alias ngen @(dir (join-path ${env:\windir} \"Microsoft.NET\Framework\") ngen.exe -recurse |sort -descending lastwritetime)[0].fullName
Set-Alias ngen64 @(dir (join-path ${env:\windir} \"Microsoft.NET\Framework64\") ngen.exe -recurse |sort -descending lastwritetime)[0].fullName
[appdomain]::currentdomain.getassemblies() | %{ if($_.location -match $(\"\\assembly\\GAC_64\") ){
ngen64 install $_.location }else{ ngen install $_.location }; } ';
Start -Verb runas -FilePath powershell.exe -Arg "$zcc";
return; }
##★PS1ファイル半自動VerUP(一旦MsgBoxに表示->Ver確認OK->BackUP->画面入替->[File保存])
!VrUp{ $zcc0=((Get-Clipboard)-join "`r`n");
if( $zcc0.startsWith("##Ver") ){;}else{ dbg "[★]更新ps1ファイルをマウスコピー取得ください"; return; };
MsgBox $zcc0 "1280,760"; $mBox.Font="$szFont,11"; $mBox.BackColor="#E5F2FE";
$zcm=($mBox.Lines[0]).split(" "); $zvr21=$zcm[0].replace("#",""); $zcc22=$zcm[1].trim(); $zcc24=$zcm[3].trim();##[ryu]
if( $zcc22.endswith('.ps1')-and $zcc24.contains('ryu') ){$zfl="$szToolDir\$zcc22"; }else{ dbg "[★]pshファイルでないため処理不可"; return; };
if( Test-Path $zfl){ $zccm=(cat $zfl); $zvr11=(($zccm[0]).split(" "))[0].replace("#","");
$zBakDir=$szToolDir+"Bak"; if(Test-Path $zBakDir -PathType Container){;}else{ New-Item $zBakDir -ItemType Directory };
$zflbak=("$zBakDir\$zcc22"+"_$zvr11").replace(".","_")+".txt"; }else{ $zvr11="V00"; $zflbak=""; };
$zcc3="`n[File名]`n$zfl`n`n[現在] $zvr11 ---> [更新] $zvr21";
if( $zvr11.startsWith("V")-and $zvr21.startsWith("Ver")-and ($zvr11-ne $zvr21) ){;}else{ dbg "$zcc3`n`n[★]同一VerなどでNG"; return; };
if( (ssMsgYesNo "MSG" "[★]更新のとき[Y]を押下`n`n$zcc3`n`n[BakUP_File]`n$zflbak")-ne "Yes" ){ return;};
if( Test-Path $zfl){ Copy-Item $zfl $zflbak -Force; }; SC $zfl $zcc0 -Force;
return; }
};};
##★[38]Help処理
$szHelpDoc="$szToolDir\wPshHelpDoc101.txt";
function ssHelpView($zcmd,$zpam){
if( Test-Path $szHelpDoc ){ $zcc=(Cat $szHelpDoc -Raw); }else{ $zcc=(Cat $fladd -Raw); $zcc=$zcc.substring($zcc.indexof("<##★"+"[HELP]")+1); };
$zcc=$zcc.replace("`r",""); MsgBox $zcc "1140,780"; if($mBox -eq $null){ return; }; $mBox.BackColor="#FFF7EE";
$mBox.Add_DoubleClick({ $ln=((($mBox.Text).substring(0,$mBox.SelectionStart)).split("`n")).count-1; $zcc=($mBox.Lines[$ln]).trim(); ##dbc $zcc;
$cc="https://ryupapa008.blogspot.com"; $zcc=$zcc.replace("@GUr4","$cc/2024").replace("@GUr5","$zcc0/2025").replace("@GUr6","$cc/2026").replace("@GUrl",$cc);
if( $zcc.startsWith("!") -and $zcc.contains("http") ){ Iex("Start `'"+(($zcc.split(";"))[1]).trim()+"`'"); return; };
});
};
##★ユーザ拡張ファイル(usr)登録
if( Test-Path $fladd2 ){ . $fladd2; };
<##★[HELP]画面 ###( [@GUr]行ダブルクリックで関連Webサイト表示 )####################################
!【サイトマップ】; @GUrl/p/blog-page_14.html
!【操作説明】; @GUr4/09/psh.html
----
11)ファイル1行目: [#! @BakColor:#F0E0C0 @FntSize:14 @WndSize:1080,740]で指定する。
! 背景色は[@BakColor:#F0E0C0]で指定。色値サイト; @GUrl/p/blog-page_6.html
文字寸法は[@FntSize:14]で指定。画面寸法(幅,高さ)は[@WndSize:1080,740]で指定。
----
21)[&]行:PSH起動。 [&&]行:窓無し起動。[&&&]行:継続起動(内部関数(dbg/dbc/MsgBox)等を利用可能)。
[;]行:行連結([&]行以降の[;]行を連結し[&][&&][&&&]行の対応処理を実行)。
[##★]行:次の行へスキップ(次の行をダブルクリック処理対象)
22)[>]行:DOS-CMD起動。 [>>]行:窓無し起動。
[> cd Dir名]行で指定フォルダへ移動。 [TopPage]表示で元のフォルダへ戻る。
23)[&FSet& File名]行:ファイル名(txt/rtf)を設定し、新規/編集/保存する。
24)[&FSet& Dir名]行: フォルダ管理処理をする。
[!readMe.txt]を仮作成し、そのフォルダへ移動([File保存]押下で保存)。
[右釦]>[ツール]>[Dir/File取得]でフォルダ/ファイル名を取得し、[##]コメント記載で管理する。
[フォルダ/ファイル名]行をダブルクリックでそのファイルを起動する。
25)[!コメント; Http:xxxxxxxxxxxx]行でWebサイトを表示する。
26)ファイル(txt)を[D&Drop]で表示/編集/保存。 ファイル(ps1)を[D&Drop]で起動。
フォルダを[D&Drop]で(24)項の処理をする。
27)[File][Help]のサブメニュで次の編集をする。
[TopPage]反映/編集、[Psh編集]:PSHメモ帳、[Add編集]:追加機能
!31) 計算表示マネージャ_____参照;@GUr4/09/psh_8.html
!32) 自動キー入力マネージャ_参照;@GUr4/09/pshpsw.html
!33) PSW管理マネージャ___参照;@GUr4/09/pshpsw.html
!34) googleグラフマネージャ_参照;@GUr4/09/google.html
!35) WEB表示マネージャ___参照;@GUr4/09/pshwebpsh.html
!36) QR生成マネージャ_____参照;@GUr4/09/qrpshweb.html
!37) テキストマネージャ_____参照;@GUr4/09/qrpshweb.html
##>
[ユーザ追加usr] sys\wndPshPrg201_usr.ps1 [Ver1.581]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項参照]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項参照]
##Ver1.581 wndPshPrg201_usr.ps1 by ryu 2024/1215 ####################################
##●●PSHメモ帳:機能追加その3.2(usr)
##
##★メニュ3へ登録設定
$global:szMnBas=$szMenu11;
if($szMnTool3-eq $null){ $global:szMnTool3=1; $global:szPshMemoSts=1;
($global:szMnBas=ssDMnMSet "[予定帳A]").add_Click({ if( Test-Path $fladdSch ){ . $fladdSch 1 }; });
(ssDMnMSet "[予定帳B]").add_Click({ if( Test-Path $fladdSch ){ . $fladdSch 1 "zPsh" }; }); $global:szMnBas=$szMenu11;
(ssDMnMSet "[日記帳]").add_Click({ if( Test-Path $fladdSch ){ . $fladdSch 1 "zNiki" "日記帳" }; });
(ssDMnMSet "----" ).add_Click({;});
(ssDMnMSet "[マクロ一覧]" ).add_Click({ MsgBox ($szLstMacro.replace(","," ")) "960,540"; $mBox.BackColor="#E8FFD0";});
(ssDMnMSet "----" ).add_Click({;});
(ssDMnMSet "DB[Winコマンド300窓] L12" ).add_Click({ ssBatAct winCmd251.bat L12 });
(ssDMnMSet "DB[Psh短文登録窓] L23" ).add_Click({ ssBatAct wndPshShort151.bat L23 });
($global:szMenu11A=ssDMnMSet "★DB:Gui窓DB->" ).add_Click({ ssBatActSet;});
(ssDMnMSet "----" ).add_Click({;});
(ssDMnMSet "[キー入力処理テスト]" ).add_Click({ ssDlgKeyInp !Imp1 "キー入力[RET]" "AAA" });
(ssDMnMSet "----" ).add_Click({;});
(ssDMnMSet "[<usr編集>]" ).add_Click({ & $szEditor $fladd2 });
(ssDMnMSet "[<usr再ロード>]" ).add_Click({ . $fladd2; dbg "再ロード`n`n$fladd2" });
(ssDMnMSet "----" ).add_Click({;});
(ssDMnMSet "[ps1アプリ更新]" ).add_Click({ ssPs1VerUp1 });
(ssDMnMSet "[<Sch編集>]" ).add_Click({ & $szEditor $fladdSch });
##★文字色BOXへのサイズ/背景色/フォント設定の追加
$global:szLstSize +="[サイズ:22],[サイズ:24],";
$global:szLstColr +="[黄緑色:#DBFFB6],[薄水色:#C6FFFE],";
$global:szFntKind +=@("HG丸ゴシックM-PRO");
};
##★Web検索List&スーパ検索処理
##
$global:szLstMacro="【マクロ一覧V2.0】
★Web検索:例[&KKK コピペ gui]でダブルクリック[WC]
#-&マクロ,-名称,----------Web-Url------------------------------------#
&KKK, Msn検索, https://www.bing.com/search?q=
&KKG, Google検索, https://www.google.co.jp/search?q=
&KKY, Yahoo検索, https://search.yahoo.co.jp/search?p=
&KKB, Bing検索, https://www.bing.com/search?q=
&KKA, Amazon, https://www.amazon.co.jp/s?k=
&KKM, モノタロウ, https://www.monotaro.com/s/?c=&q=
&KKR, R楽天市場, https://search.rakuten.co.jp/search/mall/
&KK5, 一括検索5, KKK/KKG/KKY/KKA/KKR
&KK3, 一括検索3, KKA/KKM/KKR
★(add登録:例[&KBC 8233 8848 9064]で[WC])
&KBD, 株Doraチャート, https://www.kabudragon.com/s?t=
&KBC, Cost株価Yahoo, https://finance.yahoo.co.jp/search/?query=
&KBY, Yahooチャート, !YahooCha
&KBT, 株Tan情報, !KtanCha
&KBN, 日経チャート, !NikeiCha
★(addで登録)
&KEI, keisan計算[31]
&KEY, 自動キー操作[32]
&FS, 説明文 ;file名 ##マルチ窓起動(&FSet)
&FS&, 説明文 ;file名 ##入替え(&FSet&)
★(usrで登録)
&BAT, GuiPsh-Bat処理; ssbat(L11/L12/L13/L21/L22/L23)
";
##★[WC]起動 [&XXXX]マクロの登録
##
function global:ssWClkUsrCmd($ln,$zcc){ ##return 0;
$zcmd=$zcc.split(" ")[0]; $zcc1=($zcc.substring(5)).trim(); ##dbc "$ln $zcmd $zcc1";
switch( $zcmd.substring(0,3) ){
"&KK" { return (ssWebSach $zcmd !cp1 $zcc1); } ##List利用
"&KB" { return (ssWebSach $zcmd !cp5 $zcc1); } ##List利用
"&BA" { $zcc="ssBatAct $zcc1"; Iex($zcc); return 1;}
}; return 0;
};
##★マクロList処理
##
function global:ssWebSach($zcmd,$zsub,$zcc1){ $zcm=$szLstMacro.split(",`n");
for($ii=0; $ii -lt $zcm.length; $ii++ ){ if(($zcm[$ii].trim()) -ne $zcmd){continue;}; break; }; $zcc=($zcm[$ii+2]).trim();
if( $zcc.startsWith("http") ){ $zcc+=$zcc1; Iex( "Start `'$zcc`'" ); Start-Sleep -m 500; return 1; };
switch($zsub){
!cp1 { if( [int]($zcmd.substring(3,1)) -ge 1 ){ foreach($cc in $zcc.split("/")){ if($cc.length -eq 3){ ssWebSach "&$cc" !cp1 $zcc1; }; }; return 1; }; }
!cp5 { if( $zcc.startsWith("!") ){ ssKabView $zcc $zcc1; }; return 1; }
}; return 0;
};
##★PS1ファイル半自動VerUP(一旦MsgBoxに表示->Ver確認OK->BackUP->画面入替->[File保存])
##
function global:ssPs1VerUp1(){ $zcc0=((Get-Clipboard)-join "`r`n");
if( $zcc0.startsWith("##Ver") ){;}else{ dbg "[★]更新ps1ファイルをマウスコピー取得ください"; return; };
MsgBox $zcc0 "1280,760"; $mBox.Font="$szFont,11"; $mBox.BackColor="#E5F2FE";
$zcm=($mBox.Lines[0]).split(" "); $zvr21=$zcm[0].replace("#",""); $zcc22=$zcm[1].trim(); $zcc24=$zcm[3].trim();##[ryu]
if( $zcc22.endswith('.ps1')-and $zcc24.contains('ryu') ){$zfl="$szToolDir\$zcc22"; }else{ dbg "[★]pshファイルでないため処理不可"; return; };
if( Test-Path $zfl){ $zccm=(cat $zfl); $zvr11=(($zccm[0]).split(" "))[0].replace("#","");
$zBakDir=$szToolDir+"Bak"; if(Test-Path $zBakDir -PathType Container){;}else{ New-Item $zBakDir -ItemType Directory };
$zflbak=("$zBakDir\$zcc22"+"_$zvr11").replace(".","_")+".txt"; }else{ $zvr11="V00"; $zflbak=""; };
$zcc3="`n[File名]`n$zfl`n`n[現在] $zvr11 ---> [更新] $zvr21";
if( $zvr11.startsWith("V")-and $zvr21.startsWith("Ver")-and ($zvr11-ne $zvr21) ){;}else{ dbg "$zcc3`n`n[★]同一VerなどでNG"; return; };
if( (ssMsgYesNo "MSG" "[★]更新のとき[Y]を押下`n`n$zcc3`n`n[BakUP_File]`n$zflbak")-ne "Yes" ){ return;};
if( Test-Path $zfl){ Copy-Item $zfl $zflbak -Force; }; SC $zfl $zcc0 -Force;
};
<##★キー入力BOX窓:fmKeyBox(KeyBox) ##キー入力[return]で起動
## cmd:処理No chr0:入力コメント chr1:初期値
function global:ssDlgKeyInp( $zcmd, $zchr0, $zchr1){ $global:fmKeyBox=New-Object Form -Pro @{ Size="600,100"; StartPosition ="manual"; TopMost=$true; };
$global:KeyBox =New-Object TextBox -Pro @{ Location ="5,5"; Size ="575,50"; Font ="Meiryo UI,12";}; $fmKeyBox.Controls.Add( $KeyBox );
$fmKeyBox.Location=New-Object Drawing.Point( ([Cursor]::Position.X -300),([Cursor]::Position.Y -20) ); $fmKeyBox.Show();
$global:szKeyMode =$zcmd; $fmKeyBox.text =$zchr0; $KeyBox.text =$zchr1;
##キー入力
$KeyBox.Add_KeyPress({ if( $_.KeyChar -ne "`r" ){ return;}; $_.Handled =$true; $fmKeyBox.Visible =$false;
$zmd=$szKeyMode; $zcc=$KeyBox.Text; if( $zcc -ne ""){ ssKeyCmp1 $zmd $zcc; ssKeyCmp2 $zmd $zcc; ssKeyCmp3 $zmd $zcc;};
});
}; function global:ssKeyCmp1($zmd,$zcc){}; function global:ssKeyCmp2($zmd,$zcc){}; function global:ssKeyCmp3($zmd,$zcc){};
##★キー入力テスト
function global:ssKeyCmp3($zmd,$zcc){if($zmd -eq "!Imp1" ){ dbg $zcc; }; };
##>
##★月日スケジュ処理
$global:fladdSch="sys\wPshSchAct101.ps1";
##★DB:GUI基本窓DB生成
##
function global:ssBatActSet(){ if( $szBatActSet-eq $null ){ $global:szBatActSet=1;}else{ return;};
$global:szMnBas=$szMenu11A; $szMenu11A.Text="[Gui窓DB]"
## (ssDMnMSet "L13 [Gui窓のadd機能ps1]" ).add_Click({ ssBatAct winCmd251_add.ps1 L13 });
(ssDMnMSet "L11 [Gui基本窓]" ).add_Click({ ssBatAct winCmd051.bat L11 });
(ssDMnMSet "L21 [Psh基本窓]" ).add_Click({ ssBatAct wndPsh151.bat L21 });
(ssDMnMSet "L22 [Psh入門窓]" ).add_Click({ ssBatAct wndPshKiso151.bat L22 });
(ssDMnMSet "L25 [ssPshメモ帳]" ).add_Click({ ssBatAct ssPshMemoPup.bat L25 });
(ssDMnMSet "L262[Psh分割窓TopPage]").add_Click({ ssBatAct wndPshList051.bat L262 });
(ssDMnMSet "L261[Psh分割窓アプリ部]" ).add_Click({ ssBatAct ..\sys\wndPshPrg001.ps1 L261 });
};
##★GUI基本窓DB生成処理
## fl:処理ファイル、mod:WebListNo、sub:fl起動
function global:ssBatAct($zfl,$zmod,$zsub ){ $zDir=$szToolDir+"\..\ssbat"; $zzFl="$zDir\$zfl";
if( Test-Path $zDir -PathType Container ){;}else{ New-Item $zDir -ItemType Directory };
if( ($zsub-eq $null)-and(Test-Path $zzFl)-and( (Cat $zzFl).length -ge 2 ) ){ ##bat起動
if( ($zmod-ne $null)-and (Test-Path $zmod) ){;}else{ $zmod=$szFile; if( $zmod-eq "" ){ $zmod="None" }; };
Start -NoN Cmd -Arg "/c $zzFl $zmod" ; return;
};
$zcc="https://ryupapa008.blogspot.com/"; ## <a name="_List1.1.1"> </a>#
$zcc1="
L11,@url2024/08/guiwin.html#_List1.1.5
L12,@url2024/08/guiwin_24.html#_List1.2.5
L13,@url2024/08/guiwin_9.html#_List1.3.1
L21,@url2024/08/guipsh.html#_List2.1.5
L22,@url2024/08/guipsh_24.html#_List2.2.5
L23,@url2024/08/guipsh9.html#_List2.3.5
L25,@url2024/12/sspsh25.html#_List2.5.5
L261,@url2024/08/gui.html#_List2.6.1.1
L262,@url2024/08/gui.html#_List2.6.1.5
";
##★File追加
if( $zmod.startsWith("@url") ){ $zcc=$zmod.replace("@url",$zcc); }else{ $zcm=$zcc1.split(",`n"); $nn=$zcm.length;
for($ii=0; $ii-lt $nn; $ii++){ $cc=$zcm[$ii].trim(); if( $cc-eq $zmod ){ $zcc=$zcm[$ii+1].replace("@url",$zcc); break; }; };
}; $zcc=$zcc.trim();
start $zcc; ssPshAct 1 "$szTool $fln $zzFl";##Web表示 ##Pshメモ帳起動
};
◎V2.053D
1)[保存]釦で、[TopPage反映]or[File保存]をこの釦でアプリ側で自動選択し保存する。
2)[&FSet/&FS]で新規ファイル操作可能にした。またDir指定時の処理を見直した。
3)[ファイル]→[前File戻り]処理、[Dir]移動時のDir変更処理を見直し改善した。
◎V2.052...[4.2]項参照(ps1/batファイル処理、https行の起動など)
◎V2.05...[3.9]項参照(窓のマルチ化など)
[履歴] sys\wndPshPrg201_add.ps1
◎Ver1.332
1)[ツール1]→[画面クリア->クリップ取得]の追加(PSH窓DB化対応)
2) &EXE 説明文先行型のマクロ追加
3) googleグラフのブログへHTML張付け対応処理追加[3.3][3.4][3.5]項参照
(グラフを画面コピーでなくHTMLソース組込みに変更)
4) キー入力BOX処理追加
5) PSHメモ帳起動時間短縮化に向けた関数配置変更
[履歴] wndPshPrg201_usr.ps1
◎Ver1.581
1) Gui窓処理DB処理の改善
◎実践編...rtfメモ帳関連(暫定)
[TopPage起動bat].. wRtfMemo101.bat
◎[TopPage]に[&FSet wRtfMemo101.bat] 登録し[WC]→[ツール1]→画面クリア→クリップ取得]で作成
◎[TopPage]に[&FSet wRtfMemo101.bat] 登録し[WC]→[ツール1]→画面クリア→クリップ取得]で作成
@echo off &rem if not "%~0"=="%~dp0.\%~nx0" (start /min cmd /c,"%~dp0.\%~nx0" %* &exit) &rem ★DOS窓mini化
powershell -Exe RemoteSigned "$fln=(echo %0); .\sys\wPshRtfMemo501.ps1 $fln %1"
pause&exit; pause&exit
<##[rtfMemo Ver2.05]--[TopPage] @BakColor:#e0ffe0 @WndSize:1080,780
##●●[rtfめも帳]●● [&][>][!]行をダブルクリック起動[WC]。マウス右釦:コピー操作など。
## 1) [&]PSH起動 [&&]窓無し [&&&]継続 [;]行連結
## 2) [&FSet&]ファイル(rtf)の読込/新規作成、[&FSet]新しい窓で開く
## 3) [&FS コメント; ファイル名] [&FS コメント; ファイル名] 説明文先行型で同上
## 4) Drag&Drop⇒rtfファイル読込、ps1ファイル起動、txtファイル/フォルダはPSHメモ帳起動
## 5) [>][>>]DosCmd起動、背景色/窓設定、MsgBox/dbg/dbcなど
[本体アプリ(試行版)] sys\wPshRtfMemo501.ps1 [Ver1.52]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]他は[4.2項]参照
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]他は[4.2項]参照
##Ver1.52 wPshRtfMemo501.ps1 by ryu 2024/10/01
##●● wPshRtfファイル編集 by ryu
##ACT: wPshRtfMemo501.ps1 [rtfFile/batFile] [[rtfFile]]
##★
using namespace System.Windows.Forms; Add-Type -AssemblyName System.Windows.Forms, System.Drawing; ##★GUI
function dbg($cc){[MessageBox]::Show($cc)}; function dbc($cc){Write-Host $cc;}; function dbt($cc){$mMain.Text="【rtfメモ帳】[V1.015][Dir] $szFileDir $cc";};
function ssMsgYesNo($cc0,$cc1,$cc2){ if($cc2-eq $null){$cc2="YesNo"}; return [MessageBox]::Show($cc1,$cc0,$cc2); };##★YesNo
##★
$szTool=$MyInvocation.MyCommand.Path; $szToolDir=Split-Path $szTool -Parent; $global:fln=$global:szFile=$global:szFlBak1=$global:szFile2="";
$szEditor="C:\winfree\Sakura\sakura.exe"; if(Test-Path $szEditor){;}else{ $szEditor="notepad.exe"; };
$szBkColor="#e0ffc1"; $szFont="BIZ UDゴシック"; $szFSize="13"; $szWSize="1080,720"; $global:szStyle=""; $szFileHelp="wRtfHelp101.rtf";
##
##★起動ファイル取得 [1:szTool aaa.rtf ] [2:szTool bbb.bat] [3:szTool bbb.bat aaa.rtf] ★aaa.rtfのフォルダ設定
$zcc=$args[0]; if( $zcc -ne $null){ $zPm0=$zcc; }else{ $zPm0=$szFileHelp; }; ##★編集ファイルの設定
if( $zPm0.endswith('.bat') ){ $global:fln=$zPm0; $zPm0=""; if( $args[1] -ne $null ){ $zPm0=$args[1]; }; };
if( $zPm0-ne "" ){ $zcc=(Split-Path $zPm0 -Parent); if(Test-Path $zcc){ cd $zcc; }; $global:szFile=(Split-Path $zPm0 -Leaf); }; $global:szFileDir=(pwd);
##
##★TopPage表示($fln)
function ssTopView(){ if( Test-Path $fln ){ $global:szFile=""; }else{return;};
$bb=(Cat $fln -Raw); $rfBox.Text=$bb.substring( $bb.indexof("`n<"+"##" )+1); ssViewColor; $rfBox.SelectionStart=0; dbt(" 【TopPage】 "+$fln); };
##
##★【基本窓&RichTextBox】窓の生成 ★DLG登録
$mWW=1100; $mHH=650; $szVer="[V1.50]";
$global:mMain =New-Object Form -Pro @{ Size="$mWW,$mHH" }; $global:rfBox =New-Object RichTextBox -Pro @{ Font="$szFont,13"; Dock="Fill";
Multiline=$True; AcceptsTab=$True; AllowDrop=$true; ScrollBars=[ScrollBars]::Both; BackColor="#F9FFFB"; WordWrap=$false;}; $mMain.Controls.Add($rfBox);
$mMain.Add_Closing({ if($rfBox.Modified){ if((ssMsgYesNo "【保存(Y/N)?】" "$szFile")-eq "Yes"){ ssFileSave 0 $szFile; return;}; };
$rfBox.Modified=$false; $_.Cancel=$True; $mMain.Visible=$false; });
$dReadBox =New-Object OpenFileDialog -Pro @{ Title="【読取】ファイル選択"; Filter='ファイル(*.rtf)|*.rtf'; InitialDirectory=(pwd);};
$dSaveBox =New-Object SaveFileDialog -Pro @{ Title="【保存】ファイル設定"; Filter='ファイル(*.rtf)|*.rtf|全て(*.*)|*.*'; InitialDirectory=(pwd);};
$dColor=New-Object ColorDialog; $dgFont=New-Object FontDialog -Pro @{ ShowColor=$true; FixedPitchOnly=$false; AllowVerticalFonts=$false;};
##
##★メニュ生成 ★メニュ登録関数 ★メニュバーへ登録
$dListMenu =New-Object MenuStrip -Pro @{ Font="$szFont,12"; }; $mMain.MainMenuStrip =$dListMenu; $mMain.Controls.Add($dListMenu);
function ssDMnMenu($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $dListMenu.Items.AddRange($zmm); $global:szMnBas=$zmm; return $zmm;}
function ssDMnMSet($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $szMnBas.DropDownItems.AddRange($zmm); $global:szMnBas2=$zmm; return $zmm;}
$szMenu1=ssDMnMenu "◎ファイル◎";
(ssDMnMSet "[Dir/File名]取得" ).add_Click({ $rfBox.SelectedText=((dir -name)-join "`n")+"`n" });
(ssDMnMSet "[Dir/File名]再帰取得" ).add_Click({ $rfBox.SelectedText=((dir -name -Rec)-join "`n")+"`n" }); $aa=(ssDMnMSet "----");
(ssDMnMSet "[前Fileへ戻り]").add_Click({ ssFileSet $szFlBak1 0 });
(ssDMnMSet "[File再読取り]").add_Click({ ssFileSet $szFile 1 }); $aa=(ssDMnMSet "----");
(ssDMnMSet "File読取[窓]").add_Click({ if( $dReadBox.ShowDialog() -eq "OK" ){ ssFileSet($dReadBox.FileName) 0 }; });
(ssDMnMSet "File保存[窓]").add_Click({ ssFileSave 1 $szFile });
(ssDMnMSet "[BakUp]フォルダ").add_Click({ $zcc=(pwd); explorer "$zcc\bak" });
if($fln -ne ""){ $global:szMnBas=(ssDMnMSet "[TopPage]"); ##★[TopPage]処理
(ssDMnMSet "表示").add_Click({ if($szFile -ne ""){ $global:szFlBak1=$szFile; }; ssTopView; });
(ssDMnMSet "反映").add_Click({ if( ($szFile -ne "")-or ( (ssMsgYesNo "反映しますか?(Y/N)" "$fln")-ne "Yes") ){ return;};
$zcc=Cat $fln -Raw; SC ($fln+".bak") $zcc -Force; SC $fln ($zcc.substring(0,$zcc.indexof('<#'+'#'))+$rfBox.Text) -Force; ssViewColor; });
(ssDMnMSet "編集").add_Click({ Iex("$szEditor $fln") }); }; $global:szMnBas=$szMenu1; $aa=(ssDMnMSet "----");
$global:szMnBas=$szMenuDBG=ssDMnMSet "[DBG]"; (ssDMnMSet "[Rtf編集]").add_Click({ & $szEditor $szTool}); (ssDMnMSet "[Add編集]").add_Click({ & $szEditor $fladd});
(ssDMnMenu "{保存}" ).add_Click({ ssFileSave 0 $szFile}); (ssDMnMenu "{explorer}").add_Click({ explorer (pwd) });
(ssDMnMenu "{書式取得}->").add_Click({ssFnc !Kat1 }); (ssDMnMenu "{反映}").add_Click({ssFnc !Kat2 });
$szMenu5=ssDMnMenu "編集"; (ssDMnMSet "[左端]").add_Click({ssFnc !Move "Left" }); (ssDMnMSet "[中央]").add_Click({ssFnc !Move "Center"});
(ssDMnMSet "[右端]").add_Click({ssFnc !Move "Right"});
$szMenu6=ssDMnMenu "文字色";(ssDMnMSet "{色}DLG窓" ).add_Click({ssFnc !ColD}); ##★DLG窓
$szMenu7=ssDMnMenu "サイズ"; (ssDMnMSet "サイズ[10]").add_Click({ssFnc !Size 10}); (ssDMnMSet "サイズ[12]").add_Click({ssFnc !Size 12});
(ssDMnMSet "サイズ[14]").add_Click({ ssFnc !Size 14}); (ssDMnMSet "サイズ[16]").add_Click({ssFnc !Size 16});
$szMenu8=ssDMnMenu "フォント"; (ssDMnMSet "[フォント]DLG窓").add_Click({ ssFnc !Fnt1 }); (ssDMnMSet "[普通]").add_Click({ssFnc !Fnt3 "Regular"});
(ssDMnMSet "[太い]").add_Click({ssFnc !Fnt4 "Bold"}); (ssDMnMSet "[斜め]").add_Click({ssFnc !Fnt4 "Italic"});
(ssDMnMenu "{図形}").add_Click({ mspaint.exe });
(ssDMnMenu "{Word帳}" ).add_Click({ if((Test-Path $szFile)-and ($szFile.endswith('.rtf')) ){ Start -NoN Cmd -Arg "/c `"$szFile`""; }; });
$szMenuA=ssDMnMenu "ツールA";
(ssDMnMSet "図形作成->クリップ取得").add_Click({ mspaint.exe }); (ssDMnMSet "[1行目設定:背景色/窓]").add_Click({ ssFnc !Kat5 });
(ssDMnMSet "[背景色サイト]").add_Click({ start "https://ryupapa008.blogspot.com/p/blog-page_6.html" });
##
##★右釦メニュ(★元に戻す★切り取り★コピー★張付け★移動Top/Bottom
$global:conMenu=$rfBox.ContextMenuStrip=New-object ContextMenuStrip -Pro @{ Font="BIZ UDゴシック,12"; };
function ssRBtMenu($zcc){ $aa=$conMenu.Items.Add(($ccc=New-Object ToolStripMenuItem)); $ccc.Text=$zcc; $global:zzSrp=$ccc; return $ccc;};
function ssRBtSMnu($zcc){ $aa=$zzSrp.DropDownItems.Add( ($ccc =New-Object ToolStripMenuItem) ); $ccc.Text=$zcc; return $ccc;};
(ssRBtMenu "元に戻す").add_Click({ if( $rfBox.CanUndo -eq $true ){ $rfBox.Undo() }; });
(ssRBtMenu "切り取り").add_Click({$rfBox.Cut()}); (ssRBtMenu "コピー").add_Click({$rfBox.Copy()}); (ssRBtMenu "貼付け").add_Click({$rfBox.Paste()});
(ssRBtMenu "全選択" ).add_Click({$rfBox.SelectAll()}); (ssRBtMenu "移動Top" ).add_Click({ $rfBox.SelectionStart=0; $rfBox.ScrollToCaret() });
(ssRBtMenu "移動Bottom").add_Click({ $rfBox.SelectionStart=$rfBox.Text.Length; $rfBox.ScrollToCaret() });
##
##★マウス[WC]操作 ##★[>][>>]DOS処理 ★[!]Web ★[Dir/File] ★[&]行連結 ★[&&&] ★[&FSet&] ★[&] ★[&&] ★機能追加File
$rfBox.Add_DoubleClick({ssWCAct 0 }); $rfBox.Add_KeyDown({ if($_.Control){;}else{return;}; switch($_.KeyCode){ "n" { ssWCAct 1;} }; });
function ssWCAct($zcmd){ $ln=((($rfBox.Text).substring(0,$rfBox.SelectionStart)).split("`n")).count-1;
$zcc=(($rfBox.Lines[$ln]-split"##")[0]).trim()+" "; if( $zcc.length -le 2){ return; };
if( $zcc.startsWith("> ") ){ $zcc=$zcc.substring(1); Start Cmd -Arg "/k $zcc"; return; };
if( $zcc.startsWith(">> ")){ $zcc=$zcc.substring(2); Start -NoN Cmd -Arg "/c $zcc"; return; };
if( $zcc.startsWith("&") ){;}else{ if( Test-Path $zcc -PathType Container ){ explorer $zcc; return; };
if( ($zcc.startsWith("http"))-or ($zcc.startsWith("!") -and $zcc.contains("http")) ){
if($zcc.startsWith("!")){ $zcc=($zcc.split(";"))[1]; }; $zcc=($zcc.replace("`'","")).trim(); Iex("Start `'$zcc`'"); return; };
if( Test-Path $zcc ){ if($zcc.endswith('.rtf') ){ ssRtfMemo $zcc }else{ Start -NoN Cmd -Arg "/c $zcc"; }; return; }; return; };
for( $ii=1; $ii -lt 300; $ii++ ){ $cc=$rfBox.Lines[$ln+$ii]; if($cc -eq $null){ break; };
if( $cc.startsWith(";") ){ $zcc+="`n"+($cc.substring(1)).trim(); }else{ if( $cc.startsWith("#") ){ continue;}; break; }; };
if( $zcc.startsWith("&&& ")){ $zcc=$zcc.substring(3); $rfBox.SelectionStart+=4; Iex($zcc); return; };
if( $zcc.startsWith("&FSet&") ){ $zcc=$zcc.substring(6).trim(); ssFileSet "$zcc" 0; return; };
if( $zcc.startsWith("&FS&") ){ $zcc=($zcc.split(";"))[1].trim(); ssFileSet "$zcc" 0; return; };
if( $zcc.startsWith("&FSet ")-or $zcc.startsWith("&FS ") ){
if( $zcc.startsWith("&FSet ") ){ $zcc=$zcc.substring(6); }else{ $zcc=($zcc.split(";"))[1]; }; $zcc=$zcc.trim(); $zcc=Iex("`"$zcc`"");
if( $zcc.endsWith(".txt")-or (Test-Path $zcc -PathType Container) ){ ssFileSet "$zcc" 0; }else{ ssPshAct 1 "$szTool $zcc"; }; return; };
if( $zcc.startsWith("& ") ){ ssPshAct 0 ($zcc.substring(1).trim()); return; };
if( $zcc.startsWith("&& ") ){ ssPshAct 1 ($zcc.substring(2).trim()); return; }; (ssWClkCmd $ln $zcc);
};
##★PSH短文起動(0:窓あり/1:無し) ★ドラッグ&ドロップ
function ssPshAct($zcmd,$zcc){ $zcc=$zcc.replace('"','\"'); if($zcmd-eq 0){ Start powershell -Arg "-noe $zcc";}else{ Start -NoN powershell -Arg "$zcc"; }; };
function global:ssWClkCmd($ln,$zcc){;}; $fladd=$szTool.replace(".ps1","_add.ps1"); if( Test-Path $fladd ){ . $fladd; };
$rfBox.Add_DragEnter({ $_.Effect ="All"; }); $rfBox.Add_DragDrop({ $zcc=@(([DataObject]$_.Data).GetData("FileDrop")); if(Test-Path $zcc){ ssFileSet $zcc 0 }; });
##★表示( szFile: 編集rtfファイル/変換txtファイル) ★編集fileの設定★背景色の設定
function ssFileSet($zzFl,$zcmd){
if( $zzFl.endswith('.rtf') ){ $rfBox.clear(); if( ($zcmd-eq 0)-and ($szFlBak1 -ne $szFile)){ $global:szFlBak1=$szFile; }; $global:szFile =$zzFl;
if( Test-Path $szFile ){;}else{ $rfBox.Text="#![管理] @BakColor:$szBkColor @WndSize:$szWSize`r`n"; ssViewColor; dbt "【新規】$szFile"; return; };
$rfBox.SelectedRtf =Cat $szFile -Raw; ssViewColor; dbt "【読取】$szFile";
$rfBox.SelectionStart=0; $rfBox.ClearUndo(); $rfBox.Modified=$false; $global:szFile2="";
return;};
if( $zzFl.endswith('.txt')-or (Test-Path $zzFl -PathType Container) ){ ssPshAct 1 "$szToolDir\wndPshPrg201.ps1 '' $zzFl" ; return;};
dbg "[ERROR]`n>>> No rtf/txt-File`n$zzFl"; return;
};
##★File保存(bak保存)
function ssFileSave($zcmd,$zfl){ if( ($zfl -ne "")-and ($rfBox.Modified -eq $true)-and $zfl.endswith('.rtf') ){;}else{ dbt "◇未変更◇$zfl"; return; };
if( $zcmd -eq 1 ){ $dSaveBox.FileName=$zfl; if( $dSaveBox.ShowDialog() -ne "OK" ){ return; }; $zfl=$dSaveBox.FileName; if($zfl -eq ""){ return;}; }
else{ if( ($cc=(ssMsgYesNo "[上書き保存 (BackUP:Y/N)] or [キャンセル]" ("[DIR]`n"+(pwd)+"`n`n[File]`n$zfl") "YesNoCancel" ))-eq "Cancel" ){ return;}; };
if( ($cc -eq "Yes")-and (Test-Path $zfl) ){ if(Test-Path "bak" -PathType Container){;}else{ New-Item "bak" -ItemType Directory };
$zfl2="`$`$bak_"+(Split-Path $zfl -Leaf); Copy-Item $zfl "bak\$zfl2" -Force; };
$global:szFile=$zfl; $rfBox.Rtf |Out-File "$zfl" -Enc default; ssViewColor; $rfBox.Modified=$false; dbt("▼保存▼$szFile");
};
##★背景色 ★WND寸法 ★Wnd右端
function ssViewColor(){ $zcc=($rfBox.Lines[0]).replace(" ","").split("`$@?:");
for( $ii=0; $ii -lt $zcc.count; $ii++ ){ $cc=$zcc[$ii]; $cc1=$zcc[$ii+1]; if( $cc.StartsWith("BakColor") ){ $rfBox.BackColor=$cc1; };
if( $cc.StartsWith("WndSize") ){ $mMain.Size=$cc1; };
if( $cc.StartsWith("WndRtan")){ if($cc1-eq 1){ $rfBox.WordWrap=$false; }else{ $rfBox.WordWrap=$true; }; }; };
};
##★MSG表示Call関数 ★DLG窓の生成 ★MSG窓の文字BOX
function MsgBox($cc,$ww){ if($ww-eq $null){$ww="720,400";}; $fmMBox=New-Object Form -Pro @{ Size=$ww;Text="【MSG】" };
$global:mBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
$fmMBox.Controls.Add($mBox); $mBox.Text=($cc.replace("`n","`r`n")); $mBox.SelectionStart=0; $fmMBox.Show();
};
##★MENU関数処理
function ssFnc($zcmd,$zpam){ $rfBox.ContextMenuStrip.Close(); switch( $zcmd ){
##★フォント/DLG窓/スタイル ★サイズ ★[31][32]文字色 ★型処理(1:現行取得、2:設定 5:1行目Pam追加
!Fnt1{ if( $dgFont.ShowDialog()-ne "OK" ){return;}; $rfBox.SelectionFont=$dgFont.Font; $rfBox.SelectionColor=$dgFont.Color; return;}
!Fnt2{ ssSetFont $zpam "" "" ; return;} !Fnt3{ ssSetFont "" "" $zpam; $global:szStyle=""; return;}
!Fnt4{ if( $szStyle-eq ""){ $global:szStyle=$zpam; }else{ if($szStyle.contains($zpam)){;}else{$global:szStyle+=",$zpam"; }; }; ssSetFont "" "" $szStyle; return;}
!Size{ ssSetFont "" $zpam "" ; return;} !ColD{ if($dColor.ShowDialog()-eq "OK"){$rfBox.SelectionColor=$dColor.Color;}; return;}
!Colr{ $rfBox.SelectionColor=$zpam; return;} !ColB{ $global:szBakCOLOR=$rfBox.SelectionBackColor=$zpam; return;}
!Kat1{ (ssSetFont "" "" ""); $global:szCOLOR =$rfBox.SelectionColor; $global:szBakCOLOR=$rfBox.SelectionBackColor; return;}
!Kat2{ $rfBox.SelectionFont =$szFONTinfo; $rfBox.SelectionColor=$szCOLOR; $rfBox.SelectionBackColor=$szBakCOLOR; return;}
!Kat5{ $rfBox.SelectionStart=0; $rfBox.SelectedText=("#![管理] @BakColor:$szBkColor @WndSize:$szWSize @WndRtan:0`r`n"); return;}
##★移動 ##★Redo ##★操作歴Clear
!Move{$rfBox.SelectionAlignment=$zpam;return;} !Redo{if($rfBox.CanRedo -eq $true){$rfBox.Redo();};return;} !Cler{$rfBox.ClearUndo();return;}
}; };
##★rfBoxフォント設定関数
function ssSetFont($zpm1,$zpm2,$zpm3){ if($zpm1-eq ""){ $zpm1=$rfBox.SelectionFont.name; if($zpm1-eq $null){ $zpm1=$szFont; }; };
if($zpm2-eq ""){ $zpm2=$rfBox.SelectionFont.Size; if($zpm2-eq $null){ $zpm2=14; }; };
if($zpm3-ne ""){ $zpm3=",style=$zpm3"; }else{ $zpm3=$rfBox.SelectionFont.style; if($zpm3-eq $null){ $zpm3="";}else{$zpm3=",style=$zpm3"; }; };
$rfBox.SelectionFont =$global:szFONTinfo="$zpm1,$zpm2$zpm3";
};
##★フォーム表示
if( ($fln-ne $null)-and( $szFile-eq "") ){ ssTopView; }else{ ssFileSet $szFile; }; $mMain.ShowDialog();
[機能追加add(試行版)].. sys\wPshRtfMemo501_add.ps1 [Ver1.002]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
##Ver1.002 wPshRsfMemo501.ps1 by ryu 2024/0830 ####################################
##●●[PSH-rsfメモ帳]拡張機能ファイル(add) by ryu
##★[ファイル][DBG]釦メニューに追加
##$global:szMnBas=$szMenuDBG; (ssDMnMSet "[Add編集]").add_Click({ & $szEditor $fladd });
##★[編集]メニューに追加
$global:szMnBas=$szMenu5; $global:szMnBas=ssDMnMSet "!配置->";
(ssDMnMSet "配置クリア").add_Click({ ssFnc2 !Haic 0 });
(ssDMnMSet "配置->+8" ).add_Click({ ssFnc2 !Haic 8 });
(ssDMnMSet "配置->+16" ).add_Click({ ssFnc2 !Haic 16 });
(ssDMnMSet "配置->+32" ).add_Click({ ssFnc2 !Haic 32 });
(ssDMnMSet "箇条書き" ).add_Click({ ssFnc2 !Kajo 1 });
(ssDMnMSet "箇条書きOFF").add_Click({ ssFnc2 !Kajo 0 });
##★
$global:szMnBas=$szMenu5; $global:szMnBas=(ssDMnMSet "!行間->");
(ssDMnMSet "間隔クリア").add_Click({ ssFnc2 !GyoK 0 });
(ssDMnMSet "間隔up +2" ).add_Click({ ssFnc2 !GyoK 2 });
(ssDMnMSet "間隔up +4" ).add_Click({ ssFnc2 !GyoK 4 });
(ssDMnMSet "間隔up +8" ).add_Click({ ssFnc2 !GyoK 8 });
(ssDMnMSet "間隔up +32").add_Click({ ssFnc2 !GyoK 32 });
(ssDMnMSet "間隔dwn-2" ).add_Click({ ssFnc2 !GyoK -2 });
(ssDMnMSet "間隔dwn-4" ).add_Click({ ssFnc2 !GyoK -4 });
##★
$global:szMnBas=$szMenu5;
(ssDMnMSet "![右端折り切替]").add_Click({ if( $rfBox.WordWrap ){$rfBox.WordWrap=$false;}else{$rfBox.WordWrap=$true;}; });
(ssDMnMSet "![検索窓]" ).add_Click({ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$rfBox.SelectionStart; $szSchForm.Show(); });
(ssDMnMSet "![TagList:##★]取得").add_Click({ ssTagListGet "720,600" });
(ssDMnMSet "![TagList]前後表示").add_Click({ $fmTgBox.TopMost=$false });
##★
$global:szMnBas=$szMenu6; ##★[色]メニューに追加
(ssDMnMSet "!黒" ).add_Click({ ssFnc !Colr "Black" });
(ssDMnMSet "!青" ).add_Click({ ssFnc !Colr "Blue" });
(ssDMnMSet "!アクア").add_Click({ ssFnc !Colr "Aqua" });
(ssDMnMSet "!赤" ).add_Click({ ssFnc !Colr "Red" });
(ssDMnMSet "!マジェンタ" ).add_Click({ ssFnc !Colr "Magenta" });
(ssDMnMSet "!灰" ).add_Click({ ssFnc !Colr "Gray" });
(ssDMnMSet "!白" ).add_Click({ ssFnc !Colr "White" });
$aa=ssDMnMSet "---";
(ssDMnMSet "!B:黒" ).add_Click({ ssFnc !ColB "Black" });
(ssDMnMSet "!B:青" ).add_Click({ ssFnc !ColB "Blue" });
(ssDMnMSet "!B:アクア").add_Click({ ssFnc !ColB "Aqua" });
(ssDMnMSet "!B:赤" ).add_Click({ ssFnc !ColB "Red" });
(ssDMnMSet "!B:マジェンタ" ).add_Click({ ssFnc !ColB "Magenta" });
(ssDMnMSet "!B:灰" ).add_Click({ ssFnc !ColB "Gray" });
(ssDMnMSet "!B:白" ).add_Click({ ssFnc !ColB "White" });
$global:szMnBas=$szMenu7; ##★[サイズ]メニューに追加
(ssDMnMSet "!サイズ[8]" ).add_Click({ ssFnc !Size 8 });
(ssDMnMSet "!サイズ[9]" ).add_Click({ ssFnc !Size 9 });
##(ssDMnMSet "!サイズ[10]").add_Click({ ssFnc !Size 10 });
(ssDMnMSet "!サイズ[11]").add_Click({ ssFnc !Size 11 });
##(ssDMnMSet "!サイズ[12]").add_Click({ ssFnc !Size 12 });
(ssDMnMSet "!サイズ[13]").add_Click({ ssFnc !Size 13 });
##(ssDMnMSet "!サイズ[13]").add_Click({ ssFnc !Size 14 });
(ssDMnMSet "!サイズ[15]").add_Click({ ssFnc !Size 15 });
##(ssDMnMSet "!サイズ[16]").add_Click({ ssFnc !Size 16 });
(ssDMnMSet "!サイズ[18]").add_Click({ ssFnc !Size 18 }); (ssDMnMSet "!サイズ[20]").add_Click({ ssFnc !Size 20 });
(ssDMnMSet "!サイズ[22]").add_Click({ ssFnc !Size 22 }); (ssDMnMSet "!サイズ[24]").add_Click({ ssFnc !Size 24 });
(ssDMnMSet "!サイズ[26]").add_Click({ ssFnc !Size 26 }); (ssDMnMSet "!サイズ[28]").add_Click({ ssFnc !Size 28 });
$global:szMnBas=$szMenu8; ##★[フォント]メニューに追加
##(ssDMnMSet "![普通]").add_Click({ ssFnc !Fnt3 "Regular" });
##(ssDMnMSet "![太い]").add_Click({ ssFnc !Fnt4 "Bold" });
##(ssDMnMSet "![斜め]").add_Click({ ssFnc !Fnt4 "Italic" });
(ssDMnMSet "![下線]").add_Click({ ssFnc !Styl "Underline" });
(ssDMnMSet "![取消]").add_Click({ ssFnc !Styl "Strikeout" });
##
$global:szFnt=@("MS UI Gothic","BIZ UDゴシック","BIZ UDPゴシック","MS UI Gothic","MS ゴシック","MS Pゴシック","Meiryo UI","メイリオ",
"HGゴシックE","HGPゴシックE","HG創英角ゴシックUB","HG創英角ポップ体" );
(ssDMnMSet $szFnt[1] ).add_Click({ ssFnc !Fnt2 $szFnt[1] });
(ssDMnMSet $szFnt[2] ).add_Click({ ssFnc !Fnt2 $szFnt[2] }); (ssDMnMSet $szFnt[3] ).add_Click({ ssFnc !Fnt2 $szFnt[3] });
(ssDMnMSet $szFnt[4] ).add_Click({ ssFnc !Fnt2 $szFnt[4] }); (ssDMnMSet $szFnt[5] ).add_Click({ ssFnc !Fnt2 $szFnt[5] });
(ssDMnMSet $szFnt[6] ).add_Click({ ssFnc !Fnt2 $szFnt[6] }); (ssDMnMSet $szFnt[7] ).add_Click({ ssFnc !Fnt2 $szFnt[7] });
(ssDMnMSet $szFnt[8] ).add_Click({ ssFnc !Fnt2 $szFnt[8] }); (ssDMnMSet $szFnt[9] ).add_Click({ ssFnc !Fnt2 $szFnt[9] });
(ssDMnMSet $szFnt[10]).add_Click({ ssFnc !Fnt2 $szFnt[10]}); (ssDMnMSet $szFnt[11]).add_Click({ ssFnc !Fnt2 $szFnt[11]});
(ssDMnMSet $szFnt[12]).add_Click({ ssFnc !Fnt2 $szFnt[12]});
$global:szMnBas=$szMenuA; ##★[ツールA]メニューに追加
$aa=ssDMnMSet "----";
(ssDMnMSet "![年月日(曜)時間]").add_Click({ $rfBox.SelectedText=get-date -format "yyyy年MM月d日(ddd) HH:mm:ss" });
(ssDMnMSet "![yyyy/mmdd(曜)]").add_Click({ $rfBox.SelectedText=get-date -format "yyyy/MM/dd(ddd)" });
(ssDMnMSet "![大きいカレンダ]").add_Click({ ssBigCalen });
(ssDMnMSet "![カレンダ縦列の生成]" ).add_Click({ ssKeyInpCmp !Inp5 });
$aa=ssDMnMSet "----";
(ssDMnMSet "![マクロ一覧]" ).add_Click({ MsgBox ($szLstMacro.replace(","," ")) "960,520"; $mBox.BackColor="#E8FFD0";});
(ssDMnMSet "![アプリ変数表示]").add_Click({ ssToolAct !AplD });
$szMenuB=(ssDMnMenu "ツールB" );##★ツールB登録
(ssDMnMSet "![Txt変換:UTF8->ANSI]" ).add_Click({ ssUtf8ANSI });
(ssDMnMSet "![rtf->TxtBox出力]").add_Click({ ssFnc2 !Tout ;});
$aa=ssDMnMSet "----";
$aa=ssDMnMSet "----";
(ssDMnMSet "![Win設定]" ).add_Click({ start ms-settings: });
(ssDMnMSet "![PSH窓]").add_Click({ Start powershell });
(ssDMnMSet "![PSH管理者]").add_Click({ Start -Verb runas powershell });
$szMenuC=(ssDMnMenu "ツールC" );##★ツールC登録 ##(ssDMnMSet "![----]").add_Click({;});
$szMenuD=(ssDMnMenu "ツールD" );##★ツールD登録 ##(ssDMnMSet "![----]").add_Click({;});
##★HELP登録
$szMenuD=ssDMnMenu "HELP";
(ssDMnMSet "[背景色サイト]").add_Click({ start "https://ryupapa008.blogspot.com/p/blog-page_6.html" });
(ssDMnMSet "![HELP操作説明]" ).add_Click({ ssHelpView 0 0 });
(ssDMnMSet "![日めくりカレンダ]").add_Click({ start "https://www.himekuricalendar.com/" }); ##★
$aa=ssDMnMSet "----";
$aa=ssDMnMSet "----";
(ssDMnMSet "![<Help編集>]" ).add_Click({ if( Test-Path $szHelpDoc ){ $zcc=$szHelpDoc }else{ $zcc=$fladd }; & $szEditor $zcc });
##★ユーザ拡張(usr)登録 ★ツール拡張(etc)登録
function global:ssWClkUsrCmd($ln,$zcc){ return 0;};
$global:fladd2=$szTool.replace(".ps1","_usr.ps1"); if( Test-Path $fladd2 ){ (ssDMnMSet "![<usr編集>]" ).add_Click({ & $szEditor $fladd2 }); };
$global:fladd3=$szTool.replace(".ps1","_etc.ps1"); if( Test-Path $fladd3 ){ (ssDMnMSet "![<etc編集>]" ).add_Click({ & $szEditor $fladd3 }); };
##★コンテキ追加
(ssRBtMenu "yyyy/mmdd(曜)").add_Click({ $rfBox.SelectedText=get-date -format "yyyy/MM/dd(ddd)" });
##(ssRBtSMnu "SubSetTest" ).add_Click({;});
##★Web検索List&スーパ検索処理
##
$global:szLstMacro="【マクロ一覧V2.0】
★Web検索:例[&KKK コピペ gui]でダブルクリック[WC]
#-&マクロ,-名称,----------Web-Url------------------------------------#
&KKK, Msn検索, https://www.bing.com/search?q=
&KKG, Google検索, https://www.google.co.jp/search?q=
&KKY, Yahoo検索, https://search.yahoo.co.jp/search?p=
&KKB, Bing検索, https://www.bing.com/search?q=
&KKA, Amazon, https://www.amazon.co.jp/s?k=
&KKM, モノタロウ, https://www.monotaro.com/s/?c=&q=
&KKR, R楽天市場, https://search.rakuten.co.jp/search/mall/
&KK5, 一括検索5, KKK/KKG/KKY/KKA/KKR
&KK3, 一括検索3, KKA/KKM/KKR
★(mainで登録)
&FSet, file名 ##説明文 (マルチ画面窓で起動)
&FSet&, file名 ##説明文 (新規ファイル指定可能)
&FS, 説明文 ;file名 ## &FSetに同じ
&FS&, 説明文 ;file名 ## &FSet&に同じ
";
##★[WC]起動 [&XXXX]マクロの登録
##
function global:ssWClkCmd($ln,$zcc){ $zcmd=$zcc.split(" ")[0]; $zcc1=($zcc.substring(5)).trim(); ##dbc "$ln $zcmd $zcc1";
## switch( $zcmd ){
## "&FS&"{ $zcc=($zcc.split(";"))[1].trim(); Iex("ssFileSet `"$zcc`""); return 1; }
## "&FS" { $zcc=($zcc.split(";"))[1].trim(); $zcc=Iex("`"$zcc`""); if( Test-Path $zcc ){ ssPshAct 1 "$szTool $fln $zcc" }; return 1; }
## };
switch( $zcmd.subString(0,3) ){
"&KK" { return (ssWebSach $zcmd !cp1 $zcc1); } ##List利用
"&KB" { return (ssWebSach $zcmd !cp5 $zcc1); } ##List利用
}; return 0;
};
##★マクロList処理
##
function global:ssWebSach($zcmd,$zsub,$zcc1){ $zcm=$szLstMacro.split(",`n");
for($ii=0; $ii -lt $zcm.length; $ii++ ){ if(($zcm[$ii].trim()) -ne $zcmd){continue;}; break; }; $zcc2=($zcm[$ii+2]).trim();
if( $zcc2.startsWith("http") ){ $zcc2+=$zcc1; Iex( "Start `'$zcc2`'" ); Start-Sleep -m 500; return 1; };
switch($zsub){
!cp1 { if( [int]($zcmd.substring(3,1)) -ge 1 ){ foreach($cc in $zcc2.split("/")){ if($cc.length -eq 3){ ssWebSach "&$cc" !cp1 $zcc1; }; }; return 1; }; }
!cp5 { if( $zcc2.startsWith("!") ){ ssKabView $zcc2 $zcc1; }; return 1; }
}; return 0;
};
function global:ssKabView($zcc2,$zcc1){}; ##ダミー登録
##★文字検索DLG窓
$szSchFont=New-Object System.Drawing.Font("メイリオ",12); $global:szfindPos=0; $global:szShBox=$rfBox;
$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({ $global:szSetChaText=$szSchBox1.Text; $aa=ssSchFind 0 $szShBox });
( $szSchBtn1 =ssSchBtn "【検索】" "420,34" "80,30" ).Add_Click({ $global:szSetChaText=$szSchBox1.Text; $aa=ssSchFind 1 $szShBox });
$szSchForm.Controls.AddRange(@($szSchBox1, $szSchBtn0, $szSchBtn1)); $szSchForm.Add_Click({ $rfBox.Focus() });
## ★検索go(zwBox null時 rfBox) ##0:Top ##1:継続
function global:ssSchBoxSet($zwBox){ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$zwBox.SelectionStart; $global:szShBox=$zwBox; $szSchForm.Show(); }
function global:ssSchFind($zcmd,$zwBox,$zcc){ if($zcc -eq $null){ $zcc=$szSetChaText; }; if($zcmd -eq 0){ $global:szfindPos=0; };
if( $zwBox -eq $null ){ $zwBox=$rfBox; }; $zPos =($zwBox.Text).indexof($zcc,$szfindPos); if($zPos -ge 0 ){;}else{ $zwBox.Focus(); return 1; };
$zwBox.Select($zPos, $zcc.length); $zwBox.ScrollToCaret(); $zwBox.Focus(); $global:szfindPos=$zPos+1;
};
##★【STag [文字] pm】移動 ## [WebTable] 移行で検索、、、
$global:szsTagIndx="[TagTable]"; ##★sTagの検索開始文字[TagTable]
function global:sTag($zcc,$zpm){ $zcc=($zcc.split(" "))[0]; $global:szfindPos=($rfBox.Text).indexof($szsTagIndx);
if( $zpm -eq 0){ $rfBox.WordWrap=$false }; $rfBox.SelectionStart=$rfBox.Text.Length; $rfBox.ScrollToCaret(); (ssSchFind 1 $rfBox $zcc);
};
##★TagListBoxから[WC]で移動 [##★[XXX]]の行へ移動
$global:szTagListCha="##★"; ##★TagList作成文字
function global:ssTagListGet($zpam1){ $zDat=($rfBox.Text).replace("`r",""); $zcc0="";
foreach($cc in $zDat.split("`n") ){ if( $cc.startsWith($szTagListCha) ){;}else{ continue;}; $zcc0+=$cc+"`n"; };
$ww=$zpam1; $global:fmTgBox=New-Object Form -Pro @{ Size=$ww; Text="【移動Tag-List】" ; TopMost=$True; };
$global:tgBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
$fmTgBox.Controls.Add($tgBox); $tgBox.Text=($zcc0.replace("`n","`r`n")); $tgBox.SelectionStart=0; $fmTgBox.Show(); $tgBox.WordWrap=$false;
##★[WC]処理
$tgBox.Add_DoubleClick({ $ln=((($tgBox.Text).substring(0,$tgBox.SelectionStart)).split("`n")).count-1;
$zcc=($tgBox.Lines[$ln]).trim(); if( $zcc.length -le 4){ return; };
$rfBox.SelectionStart=$rfBox.Text.Length; $rfBox.ScrollToCaret(); (ssSchFind 0 $rfBox $zcc);##★PSH窓TXT
});
$global:conMenu=$tgBox.ContextMenuStrip =New-object ContextMenuStrip -Pro @{ Font="BIZ UDゴシック,12"; };
(ssRbtMenu "[検索窓]" ).add_Click({ ssSchBoxSet $tgBox }); (ssRbtMenu "[コピー]").add_Click({ $tgBox.Copy() });
(ssRbtMenu "[Top移動]").add_Click({ $rfBox.SelectionStart=0; $rfBox.ScrollToCaret() });
};
##★[--]大きいカレンダ ##★
function ssBigCalen(){ $fmCal=New-Object Form -Pro @{ Location="100,50"; Size="380,500"; };
$zMonCal=New-Object MonthCalendar -Pro @{ Font="'Meiryo UI',28"; TrailingForeColor="192,192,0"; };
$fmCal.Controls.Add($zMonCal); $fmCal.Show();
};
##★[--]UTF8->ANSI変換 ##★
function ssUtf8ANSI(){ if( ($szFile2 -ne "")-and (Test-Path $szFile2)-and ($szFile2.endsWith('.txt')) ){;}else{ return; };
$rfBox.Text=Cat $szFile2 -Raw -Encoding UTF8; $rfBox.SelectionStart=0;
if( (MsgYesNo "注:UTF8->ANSI変換OKですか?(Y/N)" $szFile2)-eq "Yes" ){ $global:szFile2=""; return; }; $rtBox.Text=Cat $szFile2 -Raw;
};
##★[41]ツール処理(カスタマイズ)
##
function ssToolAct($zcmd,$zpam){ switch($zcmd){
##★アプリ変数表示
!AplD{ $zcc=(pwd); $zVer1=((cat $szTool)[0].split(" "))[0]; $zVer2=((cat $fladd)[0].split(" "))[0];
$zcc1 =("[RtfMemo] $zVer1 [RtfAdd] $zVer2").replace("#","");
$zcc1+= "`n[編集] $szFile`n[戻り] $szFlBak1`n[TopPage] $fln`n[Dir] $zcc" ;
$zcc1+= "`n[Apl] $szTool`n[add] $fladd`n[usr] $fladd2`n`n[editor] $szEditor";
MsgBox $zcc1 "820,450";
return;}
};};
##(ssDMnMSet "![アプリ変数表示]").add_Click({ MsgBox "[編集] $szFile`n[戻り] $szFlBak1`n[Dir] $szFileDir`n[editor] $szEditor`n[Tool] $szTool`n[TopPage] $fln" });
##★拡張機能メニュ処理(★配置 ★箇条書き ★行間 ★TxtBox出力)
function ssFnc2($zcmd,$zpam){ $rfBox.ContextMenuStrip.Close(); switch($zcmd){
!Haic{ if($zpam -eq 0 ){ $rfBox.SelectionIndent=0; $rfBox.SelectionBullet=$false; }else{ $rfBox.SelectionIndent +=$zpam; }; return;}
!Kajo{ if($zpam -eq 0 ){ $rfBox.SelectionBullet=$false; }else{ $rfBox.SelectionBullet=$true; }; return;}
!Gyok{ if($zpam -eq 0 ){ $rfBox.SelectionCharOffset =0; }else{ $rfBox.SelectionCharOffset +=$zpam; }; return;}
!Tout{ MsgBox $rfBox.Text "1180,720"; return; }
};};
##★月日の生成(cmd=//0:順列//1:逆列 mm1=月 ii0=曜日No(0...6)
##
function global:ssWeakMake( $zcmd,$zyy0,$zmmm ){ if( $zmmm -gt 12 ){ $zyy0++; $zmmm-=12;};
$zii0= (get-date (get-date -format "$zyy0/$zmmm/01")).DayOfWeek.value__ ; $zcc2 ="$zyy0"+"年`r`n";
$zdd2=31; if( $zmmm-eq 2 ){ $zdd2=29; }; if( ($zmmm-eq 4)-or ($zmmm-eq 6)-or ($zmmm-eq 9)-or ($zmmm-eq 11) ){ $zdd2=30;};
$zcm0="日,月,火,水,木,金,土,日".split(","); $dd0 =$zmmm*100+1; if( $dd0 -lt 1000){ $zcc1="0"; }else{ $zcc1=""; };
for($ii=0; $ii -lt $zdd2; $ii++){ $cc="["+$zcc1+$dd0+"("+$zcm0[$zii0%7]+")`r`n"; $dd0++; $zii0++;
$zcc=$cc.substring(0,3)+"/"+$cc.substring(3); if($zcmd -eq 0){ $zcc2+=$zcc; }else{ $zcc2=$zcc+$zcc2; };
}; Set-Clipboard $zcc2; dbg "【クリップボードにCopy】`n`n$zcc2";
};
##★キー入力BOX窓:fmKeyBox(KeyBox) ##キー入力[return]で起動
## cmd:処理No ch0:入力コメント ch1:初期値
function global:ssDlgKeyInp( $zcmd, $zchr0, $zchr1){ $global:fmKeyBox=New-Object Form -Pro @{ Size="600,100"; StartPosition ="manual"; TopMost=$true; };
$global:KeyBox =New-Object TextBox -Pro @{ Location ="5,5"; Size ="575,50"; Font ="Meiryo UI,12";}; $fmKeyBox.Controls.Add( $KeyBox );
$fmKeyBox.Location=New-Object Drawing.Point( ([Cursor]::Position.X -300),([Cursor]::Position.Y -20) ); $fmKeyBox.Show();
$global:szKeyInpMode =$zcmd; $fmKeyBox.text =$zchr0; $KeyBox.text =$zchr1;
$KeyBox.Add_KeyPress({ if( $_.KeyChar -ne "`r" ){ return; }; $_.Handled = $true; $fmKeyBox.Visible = $false;
$zcc0 =$KeyBox.Text; if( $zcc0 -ne ""){ ssKeyInpCmp $szKeyInpMode $zcc0 ; };
});
};
##★キー入力窓&[return]処理の登録
function global:ssKeyInpCmp($zcmd,$zpam){ switch($zcmd){ 0{ Start Cmd -Arg "/k $zpam"; return;}
!ITst { (ssDlgKeyInp !CTst "【キー入力例を記載】例 AAAAA [RETURN]" "AAAAAA" ); return;}
!CTst { dbg "$zcmd`n$zpam" ;return;}
!Inp5 { (ssDlgKeyInp !Cmp5 "【月/年の指定】例 10/2024 [RETURN]" (Get-Date -Format MM) ); return;}
!Cmp5 { $zcm = ($zpam.trim()).split("/"); ##$zdd0 = [int]( Get-Date -Format yyyy ); ##$zdd1 = [int]$zpam;
$zdd1=[int]($zcm[0]); if( $zcm[1]-eq $null ){ $zdd0=[int](Get-Date -Format yyyy); }else{ $zdd0=[int]($zcm[1]); };
ssWeakMake 0 $zdd0 $zdd1; return;}
};};
##★[38]Help処理
$szHelpDoc="$szToolDir\wPshHelpDoc101.txt";
function ssHelpView($zcmd,$zpam){
if( Test-Path $szHelpDoc ){ $zcc=(Cat $szHelpDoc -Raw); }else{ $zcc=(Cat $fladd -Raw); $zcc=$zcc.substring($zcc.indexof("<##★"+"[HELP]")+1); };
$zcc=$zcc.replace("`r",""); MsgBox $zcc "1140,780"; if($mBox -eq $null){ return; };
$mBox.Add_DoubleClick({ $ln=((($mBox.Text).substring(0,$mBox.SelectionStart)).split("`n")).count-1; $zcc=(($mBox.Lines[$ln]-split"##")[0]).trim();
$cc="https://ryupapa008.blogspot.com"; $zcc=$zcc.replace("@GUr4","$cc/2024").replace("@GUr5","$zcc0/2025").replace("@GUr6","$cc/2026").replace("@GUrl",$cc);
if( $zcc.startsWith("!") -and $zcc.contains("http") ){ Iex("Start `'"+(($zcc.split(";"))[1]).trim()+"`'"); return; };
});
};
##★ユーザ拡張ファイル(usr)登録
if( Test-Path $fladd2 ){ . $fladd2; };
<##★[HELP]画面 ####################################################
!【サイトマップ】; @GUrl/p/blog-page_14.html ##★[WC]
!【操作説明】; @GUr4/09/psh.html ##★[WC]
----
(1)1行目:[#! @BakColor:#F0E0C0 @WndSize:1080,740]で指定。
! [@BakColor:#F0E0C0]で背景色。; @GUrl/p/blog-page_6.html ##★[WC]
[@WndSize:1080,740]で窓面寸法(幅,高さ)。[ツールA]->[1行目:背景色/窓]押下で設定可能。
----
(2.1)[&]行:PSH起動。[&&]行:窓無し起動。[&&&]行:継続起動(内部関数dbg/MsgBoxを利用可能)。
,2)[;]行:行を連結しPSH処理を実行。
,3)[>]行:DOS-CMD起動。[>>]行:窓無し起動。注.[> cd Dir]の利用不可。
,4)[&FSet& File名]行:ファイル(rtf)の表示/編集。(&FS& コメント; File名)
,5)[&FSet File名]行:新しい窓でファイル(rtf)の表示/編集。(&FS コメント; File名)
,6)[!コメント; Http:xxxxxxxxxxxx] or [Http:xxxxxxxxxxxx]:指定Webサイト表示。
----
(3.1)ファイル(.rtf)を[D&Drop]で表示/編集。
.2)ファイル(.txt)又はフォルダのとき、PSHメモ帳で表示/編集。
.3)ファイル(.ps1)を[D&Drop]でPSH起動。
----
(4.0)◎ファイル◎
.1)[Dir/File名]取得、再帰取得...現在のDir位置からDir名/File名を取得、又はDir以下の再帰取得。
.2)File再読取...現在の編集内容をキャンセルして再読取。
.3)前Fileへ戻り...
.4)File読取窓/File保存窓/BackUPフォルダ...
.5)[TopPage]表示/反映/編集..TopPage利用のとき
.6)[DBG]->rtf編集/add編集...
----
(5.0)編集
.1)移動(左端/中央/右端)
.2)配置(クリア/+8/+16/+32/箇条書ON/OFF)
.3)行間(クリア/+2/+4/+8/+32/-2/-4
.4)右端折返し
.5)検索窓/TagList取得
----
(6.0)マウス右釦
.1)元に戻す/切り取り/コピー/張付け/全選択/
.2)移動Top/移動Bottom
----
(7.0)文字色...色DLG窓、各種文字色指定
(8.0)サイズ.....各種文字寸法指定
(9.0)フォント.....フォントDLG窓、普通/太い/斜め/各種フォントList
----
(A.1){保存}...File表示の保存。
.2){書式取得}->{反映}...マウス指定位置の書式を取得し、他の行へ反映。
.3){explorer}..現在の位置でexplorer起動。
.4){図形}....ペイントを起動し画像をペイント画面に取得後、prtメモ帳へ張付けで編集可能。
.5){Word帳}..Windows設定のワードパッド又はワードで開く
.6) Help.....
##>
[ユーザ追加usr].. sys\wPshRtfMemo501_usr.ps1
[PshDirツリー(改善DBG中)].. sys\wPshDirTree201.ps1 [Ver1.10]
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
◎List[Copy]釦→[ツール2]→[ps1アプリ更新]で更新[4.2項以降]、他は[4.2項]参照
##Ver1.10 wPshDirTree201.ps1 by ryu #######
##●フォルダTreeView処理 by ryu
## treeMMode=0:単独起動、1:****** PSHメモ帳起動
#############
using namespace System.Windows.Forms;
if( $args[0] -eq $null ){ $global:treeMMode=0; Add-Type -AssemblyName System.Windows.Forms,System.Drawing;
function dbg($zcc){ [MessageBox]::Show($zcc, "MSG");}; function dbc($zcc){ Write-Host $zcc;}; $global:sztreeStart="c:";
}else{ if( Test-Path $args[0] ){ $global:sztreeStart=$args[0]; }else{ $global:sztreeStart="c:"; }; };
##if($treeMMode -eq 0){;}else{
## if($treeMMode -ne 1){ $global:treeMMode=1; }else{ (ssSetDirTree $treeView $sztreeStart); $fmTree.Show(); return; };
##};
##●メイン窓の生成( 起動pam: 高さHH0設定 )
$global:fmTreeHH0=680; $global:fmTreeWW0=360;
$global:fmTree =New-Object Form -Pro @{ Size="$fmTreeWW0,$fmTreeHH0"; Text="PshTree[V1.10] [ "+$sztreeStart+" ]"; StartPosition="Manual";
Location=""+( ([Cursor]::Position.X)-$fmTreeWW0-30 )+","+(([Cursor]::Position.Y)-30); MinimizeBox=$false; MaximizeBox=$false; };
$fmTree.Add_Closing({ $_.Cancel =$True; $fmTree.Visible=$false;});
##●メニュ行の生成
$global:treeMMu =New-Object MenuStrip -Pro @{ Font="'Meiryo UI',12"; }; $fmTree.MainMenuStrip =$treeMMu; $fmTree.Controls.Add($treeMMu);
##●ツリー窓の生成
$global:treeView =New-Object TreeView -Pro @{ Location="3,30"; Size=""+($fmTreeWW0-3-16)+","+($fmTreeHH0-30-45);
Font="'Meiryo UI',14"; BackColor="#F0F0E0"; }; [void]$fmTree.Controls.Add($treeView);
##●メイン窓の枠変更
$fmTree.Add_ResizeEnd({ $WW0=$fmTree.DesktopBounds.Width; $HH0=$fmTree.DesktopBounds.Height;
$global:treeView.Size =""+($WW0-3-16) +"," +($HH0-30-45); });
##●メニュ生成関数
function ssMMuSet0($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $treeMMu.Items.AddRange($zmm); return $zmm; };
function ssMMuSet1($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $szTreeMenu.DropDownItems.AddRange($zmm); return $zmm; };
##●メニュ設定
$global:szTreeMenu=$menuItem1=ssMMuSet0("[[ Menu ]]");
(ssMMuSet1 "TreeClose" ).add_Click({ ssTreeAct !TCls });
(ssMMuSet1 "Tree再表示" ).add_Click({ ssTreeAct !TRvi });
(ssMMuSet1 "-----" ).add_Click({;});
$global:szTreeMenu=(ssMMuSet1 "フォント寸法" );
(ssMMuSet1 "12").add_Click({ ssTreeAct !FSiz 12 }); (ssMMuSet1 "14").add_Click({ ssTreeAct !FSiz 14 });
(ssMMuSet1 "16").add_Click({ ssTreeAct !FSiz 16 }); (ssMMuSet1 "18").add_Click({ ssTreeAct !FSiz 18 });
(ssMMuSet1 "20").add_Click({ ssTreeAct !FSiz 20 }); $global:szTreeMenu=$menuItem1;
(ssMMuSet1 "Winフォルダ参照").add_Click({ if( $dFderBox.ShowDialog() -eq [DialogResult]::OK ){ ssFileSet $dFderBox.SelectedPath }; });
(ssMMuSet1 "[<Tree編集>]").add_Click({ if( Test-Path $szDirTree ){ Iex("$szEditor $szDirTree") }; });
##●ドライブ設定(最大8個)
##$zcc=(GET-WMIOBJECT "win32_logicaldisk").DeviceID;
function ssSetTreeMnMenu( $zcc ){ $global:szPcDrv=$zcc.split(" "); $nn=$szPcDrv.count-1;
(ssMMuSet0("["+$szPcDrv[0]+"]")).add_Click({ ssTreeFnc1($szPcDrv[0]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[1]+"]")).add_Click({ ssTreeFnc1($szPcDrv[1]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[2]+"]")).add_Click({ ssTreeFnc1($szPcDrv[2]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[3]+"]")).add_Click({ ssTreeFnc1($szPcDrv[3]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[4]+"]")).add_Click({ ssTreeFnc1($szPcDrv[4]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[5]+"]")).add_Click({ ssTreeFnc1($szPcDrv[5]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[6]+"]")).add_Click({ ssTreeFnc1($szPcDrv[6]) }); if($nn -le 0){return;};$nn--;
(ssMMuSet0("["+$szPcDrv[7]+"]")).add_Click({ ssTreeFnc1($szPcDrv[7]) }); if($nn -le 0){return;};$nn--;
};
##●DIRメニュ釦処理
function global:ssTreeFnc1($zddr){ ssSetDirTree $treeView $zddr ; return; };
##●コンテキストメニュの生成
$global:treeCMenu =New-object ContextMenuStrip -Property @{ Font="'Meiryo UI',12";}; $fmTree.ContextMenuStrip=$treeCMenu;
function ssSetCMenuSub0( $zcha ){ $aa=$treeCMenu.Items.Add( ($zcc =New-Object ToolStripMenuItem) ); $zcc.Text=$zcha; return $zcc;};
(ssSetCMenuSub0 "M.[readMe]表示" ).add_Click({ ssTreeFnc31 !DLvi 0 });
(ssSetCMenuSub0 "M.[Dir窓]表示" ).add_Click({ ssTreeFnc31 !DLvi 3 });
(ssSetCMenuSub0 "M.[List窓]表示" ).add_Click({ ssTreeFnc31 !DLvi 1 });
(ssSetCMenuSub0 "M.[readMe+List]").add_Click({ ssTreeFnc31 !DLvi 2 });
(ssSetCMenuSub0 "[explorer]" ).add_Click({ ssTreeFnc31 !DLvi 5 });
(ssSetCMenuSub0 " ----" ).add_Click({ });
(ssSetCMenuSub0 "[Tree更新]" ).add_Click({ ssTreeFnc31 !Tnew });
(ssSetCMenuSub0 " ----" ).add_Click({ });
## (ssSetCMenuSub0 "[Dir作成]" ).add_Click({ ssTreeFnc32 !MkDr });
## (ssSetCMenuSub0 "[名称変更]" ).add_Click({ ssTreeFnc32 !ReNm });
## (ssSetCMenuSub0 "[ごみ箱]" ).add_Click({ ssTreeFnc32 !Dust });
(ssSetCMenuSub0 " ----" ).add_Click({ });
(ssSetCMenuSub0 "[プロパティ]" ).add_Click({ ssTreeFnc32 !Prty });
##●ツリー項目の再帰生成(各ノード)
Function global:ssAddNodes( $zzMod, $zzCmd, $zzNode, $zzObj ){ if( $zzObj -is [System.IO.DirectoryInfo] ){;}else{ return;};
if( $zzMod -eq 0){ $zNodeSub = $zzNode.Nodes.Add($zzObj.FullName, $zzObj.Name); if( $zzCmd -gt 1 ){ return;};}
else{ $zNodeSub= $zzNode; $nn=$zzNode.Nodes.Count; for($ii=0;$ii -lt $nn; $ii++){ $zzNode.Nodes[0].Remove();}; };
$FSObjSub = $zzObj | Get-ChildItem -Directory -ErrorAction SilentlyContinue;
$zcnt=0; foreach( $zobj in $FSObjSub ){ $zcnt++; if( $zcnt -gt 30 ){ break;}; ssAddNodes 0 ($zzCmd+1) $zNodeSub $zobj; };
};
##●ツリー開始項目(開始ノード)の生成
Function global:ssSetDirTree( $zzNodeVi, $zzDrvs ){ $treeView.Nodes.Clear();
foreach( $zddr in $zzDrvs ){
if( $zddr.indexof("\") -lt 0 ){ $global:szTreeDirBase="";}else{ $global:szTreeDirBase=(Split-Path $zddr )+"\";}; ##dbc $szTreeDirBase;
if( Test-Path $zddr ){ $zDrv= Get-Item -Path (Join-Path -ChildPath \ -Path $zddr); ssAddNodes 0 0 $zzNodeVi $zDrv; };
};
$TreeView.Nodes[0].Expand();
};
$global:szTreeDirBase="";
##●項目(ノード)の選定処理
##●選択後
$treeView.Add_AfterSelect({ $zSelctNode=$treeView.SelectedNode;
if( $zSelctNode.IsSelected ){;}else{ return;}; if( $zSelctNode.Level -le 0){ return;};
$nn=$zSelctNode.Nodes.Count; if( $nn -eq 0 ){ return;};
if( $nn -eq $zSelctNode.GetNodeCount($true) ){ ##dbc ("Ct:" +$nn +":"+ $zSelctNode.GetNodeCount($true) );
$zcc=$zSelctNode.FullPath; $zcc=$szTreeDirBase+$zcc; ##dbc "B:$szTreeDirBase DDD:$zcc"
$zDrv= Get-Item -Path (Join-Path -ChildPath \ -Path $zcc);
ssAddNodes 1 0 $zSelctNode $zDrv;
};
if( $zSelctNode.IsExpanded ){;}else{ $zSelctNode.Expand();}
});
##●ダブルクリック選択
$treeView.Add_NodeMouseDoubleClick({ if( $_.Button -ne "Left" ){ return; }; $zSelctNode=$treeView.SelectedNode;
if( $zSelctNode.IsSelected ){;}else{ return;}; if( $zSelctNode.Level -le 0){ return;};
if( $zSelctNode.IsExpanded ){;}else{ $zSelctNode.Expand();}
$zcc=$zSelctNode.FullPath; ##$zSelectNode.Parent.Text ##$zSelectNode.Text;
$zcc=$zcc.replace(":\\",":\"); ssPshDirSet $szLstViMode $zcc;
});
##●ファイル取得&表示 [0:readMe表示] [1:List] [2:List/readMe] [3:Dir窓表示] [5:explorer]
$global:szLstViMode=0;
function global:ssPshDirSet($zcmd,$zfl){ if( ($zfl -eq "")-or($zfl -eq $null) ){return;};
if( Test-Path $zfl -PathType Container ){;}else{ return;}; if( $zcmd -eq 5 ){ explorer $zfl; return;};
$zcc5="$zfl\!readMe.txt"; $global:szLstViMode=$zcmd; ##dbc $zcc;
switch($zcmd){
0{ if( $treeMMode -eq 0 ){ ssDlgDirView 10 $zfl; return; }; ssFileSet($zfl); return; }
1{ ssDlgDirView 0 $zfl; return;}
2{ ssDlgDirView 0 $zfl; if( $treeMMode -eq 0 ){ ssDlgDirView 10 $zfl; return; }; ssFileSet($zfl); return; }
3{ ssDlgDirView 10 $zfl; return;}
};
};
##●フォルダ表示(cmd=10:現在DIR 11:再帰表示)
##
function global:ssDlgDirView($zcmd, $zdir){ if($zdir-eq $null){ $zdir=(pwd);}; $zcc="[ダブルクリック起動]`n"; $global:szViDir=$zdir;
switch($zcmd){
0{ ssDirBox ("$zdir`r`n`r`n"+(( dir $zdir -name )-join "`r`n")+"`r`n" ); $fmDBox.Text="【Dir-List】$zdir";
return;}
11{ $zcc +="[$zdir]`n___[Dir/File]_________________________________________`t#__`n";
dir $zdir -name -rec |%{ $nn=[System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($_);
if( $nn -gt 52 ){ $nn=2; }else{ $nn=52-$nn; }; $zcc+=$_ + (" "*$nn)+"`t## `n" ;
};
break;}
10{ $zcc +="[$zdir]`n___[Dir/File]________________________________`t#__[Date/Time]________[Size](D=1)`n";
dir $zdir|%{ $nn=[System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($_.Name);
if( $nn -gt 46 ){ $nn=2; }else{ $nn=46-$nn; }; $zcc+=($_.Name + (" "*$nn)) ;
$zcc+="`t## "+($_.LastWriteTime)+(([int]$_.Length).ToString("#,#")).PadLeft(10)+"`n";
};
break;}
};
##★
ssDirBox $zcc "960,720" ; $fmDBox.Text="【Dir-List】$zdir";
$dBox.AcceptsTab=$true; $dBox.WordWrap=$false; $dBox.BackColor="#EAF4FE";
##★[WC]処理
$dBox.Add_DoubleClick({ $ln=((($dBox.Text).substring(0,$dBox.SelectionStart)).split("`n")).count-1;
$zcc=(($dBox.Lines[$ln]-split"##")[0]).trim(); if($zcc.length -le 2){return; }; $zcc="$szViDir\$zcc";
if( Test-Path $zcc -PathType Container ){ explorer $zcc; return; };
if( Test-Path $zcc ){ if($zcc.endswith('.rtf') ){ ssRtfMemo $zcc }else{ Start -NoN Cmd -Arg "/c `"$zcc`""; }; };
});
##★右釦メニュ
$dBox.ContextMenuStrip =$global:conMenu =New-object ContextMenuStrip -Pro @{ Font="$szFont,12"; };
(ssRbtMenu "[クリップ取得(コピー)]").add_Click({ $dBox.Copy() });
(ssRbtMenu "[クリップ取得(#の左側)]").add_Click({ $zcc="";
foreach( $cc in ($dBox.SelectedText).split("`n") ){ $zcc+=(($cc.split("#"))[0]).trim()+"`r`n"; }; dbc $zcc; Set-Clipboard $zcc; });
(ssRbtMenu "[窓へ取得Txt/ps1/bat]" ).add_Click({ $ln=((($dBox.Text).substring(0,$dBox.SelectionStart)).split("`n")).count-1;
$zcc=(($dBox.Lines[$ln]-split"##")[0]).trim(); if($zcc.length -le 2){return; }; $zcc="$szViDir\$zcc";
if( (Test-Path $zcc)-and ($zcc.endsWith(".txt")-or $zcc.endsWith(".ps1")-or $zcc.endsWith(".bat")) ){
if( $szFile -ne $zcc ){$global:szFlBk1=$szFile;}; $tBox.Text=Cat $zcc -Raw; $tBox.Font="$szFont,11"; $global:szFile=$zcc; ; dbt("△File読取△$szFile");
};
});
};
##●MSG表示Call関数 ★DLG窓の生成 ★MSG窓の文字BOX
$global:szDirBox=0;
function global:ssDirBox($cc,$ww){ if( $szDirBox -eq 1 ){ $dBox.Text=($cc.replace("`n","`r`n")); $dBox.SelectionStart=0; $fmDBox.Show(); return; };
if( $ww-eq $null ){ $ww="720,640";}; $global:fmDBox=New-Object Form -Pro @{ Size=$ww; Text="【Dir-List】" };
$global:dBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
$fmDBox.Controls.Add($dBox); $fmDBox.Add_Closing({ $_.Cancel =$True; $fmDBox.Visible=$false;}); $global:szDirBox=1;
$dBox.Text=($cc.replace("`n","`r`n")); $dBox.SelectionStart=0; $fmDBox.Show();
};
##●制御メニュ釦処理 ##★TreeClear ##★Dir再表示 ##★Font寸法設定
function global:ssTreeAct($zzcmd,$zzpam){
switch($zzcmd){
!TCls { $TreeView.Nodes[0].Collapse(); $TreeView.Nodes[0].Expand(); return;}
!TRvi { $treeView.Nodes.Clear(); (ssSetDirTree $treeView $sztreeStart); return;}
!FSiz { $treeView.Font="Meiryo UI,$zzpam"; return;}
};
};
##●Tree右クリックContMenu処理
function global:ssTreeFnc31($zcmd, $zpam){ $treeCMenu.Close();
$zSelctNode=$treeView.SelectedNode; $zcc0=$szTreeDirBase+$zSelctNode.FullPath;
switch($zcmd){
##★DirList表示
!DLvi { $zcc=$zSelctNode.FullPath; $zcc=$zcc.replace(":\\",":\"); ssPshDirSet $zpam $zcc; return; }
##★Tree更新
!Rnew { $zDrv= Get-Item -Path (Join-Path -ChildPath \ -Path $zcc); ssAddNodes 1 0 $zSelctNode $zDrv; return;}
};
};
##●Tree右クリックContMenu処理
function global:ssTreeFnc32($zcmd, $zpam){ $treeCMenu.Close();
$zSelctNode=$treeView.SelectedNode; $zcc0=$szTreeDirBase+$zSelctNode.FullPath;
switch($zcmd){
##★DirList表示
!DLvi { $zcc=$zSelctNode.FullPath; $zcc=$zcc.replace(":\\",":\"); ssPshDirSet 0 $zcc; return; }
##★Tree更新
!Rnew { $zDrv= Get-Item -Path (Join-Path -ChildPath \ -Path $zcc); ssAddNodes 1 0 $zSelctNode $zDrv; return;}
##★複写
!Copy{ Copy-Item -Path $zcc0 -Destination ($zcc0+"_cp") -recurse;
$treeView.SelectedNode=$zSelctNode.Parent; ssTreeFnc32 !Rnew 0; ##[11]表示更新
return;}
##★Dir作成
!MkDr{ return;}
##★名称変更
!ReNm{ return;}
##★ゴミ箱
!Dust{ $treeView.SelectedNode=$zSelctNode.Parent; $zcc=$zcc0.replace(":\\",":\");
ssContItmAct 212 $zcc; ssTreeFnc32 !Rnew 0; ##[212]ゴミ箱->[11]表示更新
return;}
##★プロパティ表示
!Prty{ $zcc=$zcc0.replace(":\\",":\"); [MyMsgDlg]::SHObjectProperties( 0, 0x2, $zcc, ""); return;}
};
};
##●Wscript.shellの組込み
$global:szWSobj =New-object -Comobject Wscript.shell;
$global:shellAppl =New-Object -ComObject Shell.Application;
##●
function global:ssContItmAct( $zcmd, $zpam ){ $szCMenu.Close();
switch( $zcmd ){
0{ return;}
##★ゴミ箱へ
212{ if( Test-Path $zpam ){;}else{ return;};
$result = $szWSobj.popup( $zpam, 0, "ごみ箱へ", 1); ##0:Time 1:Btn数2個
if( $result -eq 1){ $trash = $shellAppl.NameSpace(10); $trash.MoveHere( $zpam );}; ##dbg ("AAAA:"+$zpam); };
return;}
};
};
##★[Winプロパティ]組込み
Add-Type @"
using System; using System.Runtime.InteropServices;
public class MyMsgDlg{ [DllImport("shell32.dll", CharSet = CharSet.Unicode)]
public static extern bool SHObjectProperties(IntPtr hwnd, uint shopObjectType,
[MarshalAs(UnmanagedType.LPWStr)] string pszObjectName,[MarshalAs(UnmanagedType.LPWStr)] string pszPropertyPage);
}
"@
##★★メイン処理の開始★★
$szDrives= (GET-WMIOBJECT "win32_logicaldisk").DeviceID; ##dbg $szDrives;
ssSetTreeMnMenu( $szDrives ); ##( "c: d: r:" );
(ssSetDirTree $treeView $sztreeStart);
##★for DBG
if( $treeMMode -eq 0 ){ [void]$fmTree.ShowDialog();}else{ $fmTree.Show();};
[----].. ----