2011-01-01から1年間の記事一覧

WSHでないjavascriptでSleepする

wshでは、WScript.Sleepすれば良いだけですが、ブラウザーやHTAの場合はそうはいきません。 もちろん、setTimeoutの綱渡りを繰り返せば良いだけですが、functionを分割する必要があります。 ということで、手始めに制約ありまくりのsleepを実装してみた。 そ…

WSH:JScript(javascript)でヒアドキュメント

VBScript版を書いたので、JScript版も書いてみた。 あくまで、WSHだからこその存在価値。 ODBCドライバー(oo4oとか)とこれを使って、SQLの書かれたスクリプトファイルが可能ですね!

Script Interpreter

JScript(javascript) / VBScript のインタープリターを作ってみた。 cscript/wscriptがそれだろ、という声が聞こえてきそうだけど、対話的に実行するアプリケーション、ということ。 対話的に実行といっても、evalするだけだけど。 UIは、HTAにした。(とい…

WSHでバイナリー・テキスト相互変換(Base64変換)

先日、MSXMLを使うとお手軽なことがわかったので、お手軽に書いてみた。 なんとなく、JScript(javascript)。 過去にいろいろ検討したけど、もー、これでいいでしょう。

UWSCの関数からWin32APIを推測してみる

VBAでできませんか、という質問を見たので、推測を書き連ねる。

WSH:VBScriptでヒアドキュメント

VBScriptでヒアドキュメントができないか、というのがあったので、考えてみた。 VBScriptは使ってないFunctionでも構文解析してしまうので、コメントかな。

特定の文字列を含まない文字列にマッチする正規表現

2014/01/27 未だにこの記事が検索されるようなので、誤りパターンを目立たないようにしました。 特定の文字列を含まない文字列にマッチする正規表現を考えてみた。 例えば、「xyz」を含まない文字列にマッチする正規表現。 否定先読みで処理すべき(否定先読…

起動中のIEを列挙する

UWSC公式掲示板に答えてみた。 起動中のIEのURLを列挙したいらしい。 GetActiveOleObjを使われていて、1枚目しか取れない、ということだったので、タイトル指定でいけるかと思ったけど、URLが欲しいくらいだから、タイトルは判らないものと勝手に想定してみ…

wsh:jscriptで、ADODB.Streamの対応Charsetを調べる

Aliasがあるので、Aliasのない名前を中心として調べてみました。 どこかで、HKCR\MIME\Database\Charsetだとみたので、そこから取得する。

.NET enumを受け取る配列

人はそれをDictionaryと呼ぶ。 いえなに、仕事の話です。 ある配列があったです。 0:ヘルプ用 1:文字表示用 2:ものさし表示用 ... と用途が決まってたです。番号で。 これに、新たに、期間限定表示用を追加しろ、と言われたです。 もー、マジ面倒。かんべん…

ファイルが無ければ展開して実行するJScript

UWSC公式掲示板で、exeに画像が埋め込めれば良いのに、というのを見た。 興味が沸いたので、解決策を考えてみた。 思想としては、 ファイルがなければ、自ファイルから展開する 展開したファイルを実行する

動的C#クラスをメモリーリークもどきなく使用する

C#のコードをコンパイル&実行するサンプルを探していたのだけど、見つけたのがいろいろ微妙だったので、自分で書いてみた。

UWSCのCOM操作について

COM操作について、ざっと調べたことのメモ。 UWSCのCreateOleObjはインプロセスで、GetActiveOleObjはアウトプロセスの模様(確証なし) .NETでは、インプロセスのを作る補助はある。 (COM参照のフラグ) アウトプロセスは、C++の力が必要な模様。 多分、C+…

UWSCからWin32APIのReadFileを使う

UWSC公式掲示板で、ファイルの後ろから読みたい、という質問を見たので書いてみた。 UWSCのFOPENはたしかすべてをメモリーに展開して、メモリー上で操作を行い、FCLOSEで書き出す。 このため、大きなファイルになると遅くなる、、、はず。 (メモリーが潤沢…

UIAutomationのサンプル

昨日書いたもののソースを掲載。 クラス名はUIWindowでない方が良いかな。 $source = @" using System; using System.Windows.Automation; using System.Threading; public class UIWindow { private const int _moment = 100; private AutomationElement _a…

Powershellでハッシュ計算

いわゆるフィンガープリント用ですね。 .NETのSystem.Security.Cryptography名前空間を利用しているので、SHA256/SHA384/SHA512あたりも同様です。 # ハッシュ値を計算する function Calc-Hash([System.Security.Cryptography.HashAlgorithm] $alg, [string]…

WPFのテスト自動化

WPFのテスト自動化方法を長らく探していたのだが、ようやくたどり着いた。 UIAutomation。 これが見つからないとは、、、。 ダメじゃのぅ。 System.Windows.Automation名前空間にいろいろ便利なものがある。 ただ、そのままだと使いにくいので、ラップが必要…

Rundll32について

Rundll32.exeについてのメモ。 おそるべきことにRundll32.exeは、渡されたDLLがx86かx64か判断している。 このため、以下のような関係になる。 Rundll32のType 渡すDLLのType 起動プロセス x86 x86 x86 x86 x64 x86,x64 x64 x86 x86,x64 x64 x64 x64 すなわ…

UWSCで名前付きパイプ

UWSCでプロセス間通信をやってみようと思い立ったので、やってみた。 メモリマップドファイル方式は、しろまささんのところにあるので、 http://siromasa.xxxxxxxx.jp/Sample/index.html 名前付きパイプにて。 これなら、別端末でも通信できますね。

UWSCで排他制御

いろいろ検討したけど、CreateMutexが良い模様。 以下は、検討したスクリプト。

すごい質問を見つけた(と、UWSC用モールス・スクリプト)

UWSC公式掲示板ですごい質問を見つけた。 質問者さんには悪いと思うけど、あまりにあまりなので、私の受けた衝撃を書きたいと思う。 あと、おまけで最後に、UWSCでモールス信号を解釈するジョーク・スクリプトをつけた。 モールス信号の練習をしたい方はどう…

UWSCでショートカットをいじる

公式掲示板で、「ファイルを開く」ダイアログのショートカット動作が変わった、という質問を見た。 ということで、解決方法を考えてみた。 (本当にUWSCが原因で変わったのかは知らないけど) あと、.lnkファイルについて調べてみた。(UWSCというより、WSH…

UWSC向きな仮想デスクトップ

仮想デスクトップで以下の用件に満たすようなものがあれば教えて… - 人力検索はてな あれば欲しいです。 多分ない。いやどれでも良いのかも。 注目のため、トラックバック。 でも、Virtual PCなんだろうなぁ。楽なのは。

ドライブレターからその接続I/Fを取得する

UWSCで書いてますが、WMIなので、いろんなところで適用可能です。 あと、モジュールのコンストラクタで全ドライブの情報を取得しているので、、、立ち上がり遅し。

PowershellでBrainf*ck

Powershellじゃなくて、C#だけど。 なんとなく書いてみた。

アプリケーションをバックグラウンド制御する

こんな方法もあるのか、ということ。 クリックしたりキーボード入力したりは、MouseOrgの第二引数を2にすると、いろいろできますが、それでも前面に来ることもある。 仮想デスクトップにして、メッセージを飛ばして制御してしまえば、見ないで済む。 仮想デ…

二重起動抑止アプリケーションに意地悪をする

ま、またUWSC絡みの話だったりします。 公式掲示板に、「UWSCがいないのに、二重起動でおこられる」というのがあったので、考えてみた。 で、思いついた。 通常、Windowsアプリケーションでの二重起動の抑止は、Mutexで行う。 で、試しに、UWSCが使ってそう…

UWSCでODBC(Microsoft Text Driver)を使ったCSVファイル検索

UWSC公式掲示板の素晴らしい回答に触発されて、別方式版を作ってみた。 http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=3715 でも、Findstr方式に比べても、3倍くらいの遅さなので、あまり実用的ではないので黙ってることに。 メリット…

UWSCで日本郵便の郵便番号データからの検索

UWSCの公式掲示板の記事より。 http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=3715 このLinersさんの回答が、あまりに素晴らしい。 12万件というデータ量を、ほぼ瞬時にこなしています。 ポイントは、windowsのfindstrコマンドを使う…

UWSCの正規表現とToken処理

ちょっと正規表現をいじっていて、思い立った。 正規表現でTokenもどきが出来るのでは?と。 結果ですが、、、長大な文字列では、正規表現の方が早い。 Tokenは文字列編集を繰り返すからでしょうね。 多分、長大でなかったら、メモリ分Tokenが有利かな?