こんぴーた

UWSCに最小化ボタンをつける

以前、最小化させたいという質問があったのを思い出した。 UWSC v5.0でウインドウががらっと変わったので、もしかして、と思って、、、 今手元の環境でやったら、できた。 DEF_DLL GetWindowLongW(dword, int): long: user32 DEF_DLL SetWindowLongW(dword, …

TEMPフォルダにSSDの寿命削りをやめさせる

SSDって寿命があるじゃないですか。 まあ、HDDより短いってわけじゃなさそうなんですけど、少しでも長くしたいのが人情。 そこで気になるのが、TEMPフォルダとブラウザの作業領域。 これをRAMディスクに追い出すのです。

PowerShellでいろいろな文字コードを扱う

みんな大好きPowerShellのGet-Contentさんですが、日本語使うには文字コードの扱いがイマイチです。 Encodingなしでざっと試験してみると、 Shift-JIS(多分、Win CP932)は、そのまま読める(ロケールのおかげか) Unicode系は、BOMありなら読める Unicode…

PowerShellで分数を扱う

PowerShellで分数が使いたくなった。 なので、C#で書いてみた。 演算子オーバーロードが意外に書くのが面倒。 ジェネリクスでなんとかできないか?、、、。

UWSCからのPowerShell実行に対応する

UWSC5.1.0からPowerShell関数がEncodedCommand使用になりました! 、、、なりました、、、。 PowerShellを(比較的)安全にする - じゅんじゅんのきまぐれ では、EncodedCommandを使うと標準入力で問い合わせしてしまいます。 UWSCのPowerShell関数が返って…

PowerShell4.0の日本語ヘルプに絶望した

Windows8.1環境を触ったのだけど、なんですか、この日本語ヘルプの貧弱さは。 2.0の頃のヘルプはどこに行った。 ということで、2.0のヘルプを入れた話。

PowerShellにしゃべらせる!

、、、これも、docomo api。 PS > Start-Speaking こんにちは ってなことができます、、、って、まあ実行しないと音は出ませんけど。

PowerShellと会話する

、、、ってか、docomoの質問・雑談APIと会話するだけですが、、、。 こんなことができます! PS > Get-Answer こんにちは こんにちわん PS > Get-Answer 日本の人口は? 日本の人口は128057352人です。 1 128057352人 総務省「平成22年国勢調査」より なんや…

特定のフォルダーのPowerShellスクリプトを自動署名する

以前、こんなのを書いた。 Powershellスクリプトの署名と証明書の操作 - じゅんじゅんのきまぐれ 一応、分けて運用してたのだけど、モジュールの展開とかいろいろ面倒になって、ま、署名されたスクリプトを直接更新してやれ、という気になったので変更を検知…

PowerShellのタブ補完をPopupMenuに拡張してみる

最近事情により手元のWin7機のPowerShellを3.0に更新しました。 3.0ではクラス名を補完できるのですね。 Tab補完を先日作ったShow-PopupMenuを使って、PopupMenuにします。

PowerShellでポップアップメニューを表示する

PowerShellでポップアップメニューを表示してみたくなった。 ContextMenuStripを使うべきっぽいんだけど、横着してContextMenuで。 一度でも呼ぶと、System.Windows.Formsがロードされるのが不可逆。

PowerShellでMeCabを使う

形態素解析、、、日本語処理には必須と言って良い処理を行ってくれる、MeCab。 これをお手軽に使いたくなった。 もちろん、MeCabそのものを使用しても良いのだけど、.Netを利用したいじゃないですか。 方法を考えた。

PowerShellを(比較的)安全にする

PowerShellはWindows上でできることなら何でもできます。 なんらかの脆弱性等でPowerShellをキックできてしまうと、何でもできる、ということです。 それはとても恐ろしいことなので、安全に使う方法を考えてみた。

初期状態のPowerShellでスクリプトファイルを実行する

UWSC公式掲示板で教えてもらったのでメモ。 powershell -EncodedCommand ([Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes((gc (ファイルパス)) -join "`r`n"))) これ関数化したらRestrictedかたなし。

PowerShellで1949年以降の休日を取得する

たしか先月で、GoogleのカレンダーAPI、v1/v2が使えなくなりました。 ということでGoogle依存を解消したPowerShellでの休日取得を考えてみました。 追記 2021/10/12 2021年東京オリンピック周りの変更を反映 2007以降のみを削除 関数名等修正

UWSCで可変引数を扱う(修正版)

以前、このような記事を書いた。 UWSCで可変引数を扱う - じゅんじゅんのきまぐれ しかし、、、欠陥があることに今頃気づいた。 ScriptControlのRunメソッドに16個以上のパラメーターを渡すとエラーになるのです、、、。 やはり最大は固定しかない、というの…

PowerShellでAssemblyのLoad/Unloadを簡単に

Add-TypeでAssemblyをロードしちゃうと、Unloadできないじゃないですか。 あの仕様って、どんな嫌がらせなんですかね? じゃあってんで、PowerShellプロセスを使い捨てにするのが一般的だと思うけど、そうすると一部は残したい、という場合にまたAdd-Typeし…

Powershellのタブ補完の秘密

本当はタブ補完を自由にコントロールしたかったのだけど、ちょっと面倒になったのでヒントだけ。 Powershellのタブ補完は、TabExpansionという関数が担っているらしい。 その正体は、 (Get-Command TabExpansion).Definition 手元のPowershell v2.0環境では…

Powershellスクリプトの署名と証明書の操作

Powershell、とっても便利じゃないですか。 便利、それは危険ということ。 セキュリティホールつかれてスクリプトが実行されたら大変ですよね! 利便性のためにすぐRemoteSignedにしがちですが、せめてAllSignedにしましょう。 ということで、方法を考えてみ…

Powershellで非同期にファイル変更を監視する

なんかさ、便利なものを公開してくれる人もいるわけじゃないですか。 でもさ、ファイル修正してからコマンド叩くの、面倒じゃないですか。 忘れるじゃないですか。 勝手に作れよ、と。 だから考えてみた。 追記 2014/12/15 Start-Watcherのリターンを、Watch…

Powershellで非同期実行

Start-Jobで非同期実行っぽいことができるわけですが、あれは別プロセス。 しかも、Receive-Jobしないと結果取得できない。 スレッドでやりたいじゃない? そこを解決してみる。 追記 2014/12/03 Start-Timerのスクリプトブロックに引数を渡せるようにした …

Powershellで雪でも降らせる

冬だし、Powershellで雪でも降らせるか、とスクリプトを書いてみた。 実行すると、私がぽちぽちドットを押して描いた雪の結晶が一つ、適当な位置から落ちていきます。 一番下まで落ちたら終了。

UWSCでタスクトレイ常駐する

公式掲示板にUWSCでタスクトレイ常駐する方法はないか、という質問があった。 需要があるようなので、考えてみた。 TEXTBLOCKの部分はPowershellなので、PowershellでNotifyIconを作成するサンプルでもあります。 追記 2014/11/21 高機能版に、親プロセス(=U…

UWSCのスレッド間で同じScriptControlを使う、とPUBLICでない文字列をスレッド間で共有する(相互更新可能)

UWSCでオブジェクトというと、ScriptControl経由でのJScriptオブジェクトが使いやすい。 しかし、こやつはスレッドを超えられない。 これをどうにかしたい。 結果:ieに依存してよければ超えられる なお、PUBLICでない文字列をスレッド間で共有するだけなら…

Powershellでファイルを分割する

Powershellでバイナリーファイルを分割したくなった。 検索すると、ReadAllBytesで読込んでしまうのが出てきたので、少し修正した。 ついでに、テキストの行数分割もつけたけど、、、遅いし、UTF-16で出力されることに注意。 属性と最終更新日付も保持するよ…

ShellのCopyHereを使わずに素の.netでZIPファイルを扱う

.net 3.0のプライベートクラスを利用したZIP圧縮・展開の記事を書いた。 素の.net 3.0以降でZIPファイルを扱う - じゅんじゅんのきまぐれ しかし、更新日付問題があった。 これを解決してみた。 多分、、、.net 2.0以降で動くんじゃなかろうか。 原理 追記 2…

素の.net 3.0以降でZIPファイルを扱う

.net 4.5からZipArchiveクラスが提供されます。 これによりようやくZIPファイルの扱いがまともになるわけですが、、、。 Windows7/8では、素では.net4.5は入っていません。 これをなんとかしたい。

UWSCのヘルプを開くモジュール

以前、.chmファイルを解析してみた。 UWSCで.chmファイルを解析する - じゅんじゅんのきまぐれ 手元にあるUWSCインタープリターは、解析したキーワードを登録しておいて、hh.exeでヘルプを開くものでした。 が、これだと、キーワードを更新しないといけない…

UWSCでINIのセクション・キーの一覧を取得する

UWSCのREADINI関数には、セクションやキーの一覧を取得する方法がない。 GetPrivateProfileStringでは、セクションやキーの一覧を取得する方法がある。 キー数可変で動作したい時、この一覧が便利なんですよね。 ということで、モジュールを書いてみた。

言語のエスケープ文字と正規表現のリテラル表現(エスケープ文字)について

UWSC公式掲示板に以下のような質問があった。 正規表現置換をしたかったのですが上手く動きません。 csvを読み込んでtsvに変換するため、 正規表現の置換結果に\tを使いたいのですが、 "\t"がそのまま書かれてしまいます。 いまはReplace文で通常置換してま…