UWSC

UWSC v5.0.0 FOR-IN構文について

FOR-IN構文、便利ですよね! シンタックスシュガーだと思うけど、馬鹿にはならないのです。 C#使ってると、シンタックスシュガーって意外と大事、と思います。 ということで、FOR-INで遊んでみた。 二重ループとか、GetOleItemとぶつかったりするんじゃない…

UWSC UAC環境下で昇格ダイアログ起動と降格起動

UWSC公式掲示板に、管理者権限で起動したUWSCを一時的に降格する方法はないか、という質問があった。 CreateProcessWithTokenWでやれば良いとのことだったので、面白そうだからやってみた。

UWSC 4.9c->5.0 ヘルプ変更一覧

さすがメジャーバージョンアップ。 破壊的変更がいくつかあります。 VAR_BSTR廃止とか、ダイアログのクラス名変更とか。 ま、直せば良いだけのこと。 ヘルプの変更一覧(細かいのは適当に省略)は以下で。

素数を求める

たまたまとあるところで見つけた素数出力のJavaプログラム。 public class prime { public static void main(String[] args) { int p[] = new int[200]; int cnt = 0; p[cnt++] = 2; System.out.println(p[0]); for(int i = 3; i <= 1000; i += 2){ boolean …

コンソール関係のAPIを叩くDLLを適当に作ってみる

AllocConsoleして、位置や色を変更して出力、FreeConsoleができるDLLを作ってみた。 これが遅い場合は、、、API呼び出しのオーバーヘッドを抑えるために、メモリー更新をトリガーに動作させた方が良いかも。

UWSCのフォームをタスクバーに最小化する

stuncloudさんの投稿で、フォームをタスクバーに入れるニーズがあることに気付いた。 ということでやってみた。 スクリプト フォームは表示済みとして、以下のスクリプトを追加する。 (平行処理とかの想定ね。スレッドでいけるかは未検証) DIM hwnd = IDTO…

掲示板のUWSCスクリプトの重複コードをなくす

気が向いたので、スクリプトの重複コードをなくす過程を書いてみた。 けど、出遅れた気がするので、掲示板への投稿はやめた。 さてさて、スクリプトの書き方は個人の自由。 どう書いても期待通り動けば良いのです。 そして理解できるコードこそが、良いコー…

UWSCで現在の電源管理情報を取得する

以前、「画面見ながら考えてるとスクリーンセーバーがうざい」と書きました。 UWSCでユーザーの最終入力からの経過時間を取得する - じゅんじゅんのきまぐれ 今度は、電源管理のディスプレイOFFがうざくなってきました。 ということで、あとどれくらいでスク…

UWSCでWindows8につながったモニターの物理サイズを取得する

Windows8からGetDeviceCapsがちゃんとした値を返すらしいので、作成してみた。 そのうち何かで実験する。

UWSCのスレッドを停止する

以前公式掲示板に、「スレッドの一時停止について」という投稿があった。 http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=all&no=4952&log=ON&cnt=41 メインスレッドを一時停止する方法を尋ねるものでした。 改めてスレッドを止める方法を考え…

UWSCで休止状態からの復帰タイマーを設定する

UWSC公式掲示板で、二回ほど、状況に応じて次の復帰時間を決めたい、という欲求を見た。 二回目の方は、UWSC自身を別プロセスUWSCから操作するような決着だったけど、それってくどいよね。 ということで、復帰する関数を作ってみた。(モジュールにするほど…

UWSCで.chmファイルを解析する

UWSCのCUIインタープリターを作っていて、ヘルプを載せようかと思ったのだけど、天から 「ばーじょんあっぷ」 という声がして、面倒になってやめた。 しかし、、、バージョンアップはそう頻繁じゃないし、ヘルプを生成する補助モジュールがあっても良いんじ…

UWSCでユーザーの最終入力からの経過時間を取得する

あけましておめでとうございます。 画面見ながら思案していると、スクリーンセーバーがうざい。 解除するようなスクリプトだと、本当に見てない時に嫌。 ということで、あとどれくらいでスクリーンセーバーが起動するか教えてくれるスクリプト用の補助モジュ…

UWSCでコールバック関数を処理する

方法を見つけてしまった。 いや、見つけた、というほどのことではないのだけど。 もちろん、Asmモジュールを使ってCプログラムを作れば呼べる。 でもそれは、個々のCallbackそれぞれに対して、Cプログラムが必要となる。 汎用性がない。 今回の発見はそこを…

UWSCで分数を扱う

問題 DIM a = 1 / 3 MSGBOX((1 / 3 * 3 = a * 3) + "") MSGBOXにはなんと出る?

UWSCのDEF_DLLについて

DEF_DLLについて書きたくなった。 ちょっともやもやするんで、整理を兼ねて。 最重要「UWSCの配列はポインターであり、ポインターが必要なところ全てで渡せる」

UWSCコードゴルフ デジタル時計 現時点の結果

あっさりレベル5が出たので、私の方法を今回は詳説してみる。

UWSCコードゴルフ デジタル時計

元ネタは検索すればすぐ見つかると思います。 検索すると、少しネタばれになるので、検索は非推奨かな。 こういうのは、自力でやった方が達成感がありますよー。 開始すると、00:00を表示し、約1秒毎にカウントアップする時計を作ってもらいます。

UWSCでCUI(コンソールウインドウ)を扱う(その3)

UWSCでCUI(コンソールウインドウ)を扱う(その2) - じゅんじゅんのきまぐれ この、その2から、クリップボード依存を排除しました! までも、お勧めなのは、stuncloudさんのモジュールですが。 UWSCのコマンドラインインタプリタ | たっぷす庵 優位なの…

UWSCでnonblocking版Winsockを使う

単純なblocking版は以下。 UWSCでWinsockを使う - じゅんじゅんのきまぐれ しかし、ブロックするとUWSCが落ちかねないし、recv中に切れると返ってこないとか、悲惨。 非同期版にしようかとも思ったけど、ブロックしない版でないと、UWSCのスレッドが耐えられ…

UWSCのメモリーを管理する

VirtualAllocとかHeapAllocとかしてしまうと、終了時に解放する必要がある。 どちらもプロセスメモリーだから、プロセスを終了してしまうのなら特に問題にはならないけど、UWSC本体を立ち上げっぱなしで、何回も実行するスクリプトだと、そのうちメモリーが…

UWSCでモニター情報(デスクトップサイズ・作業サイズ)を取得する

stuncloudさんが、「あ、でもこれマルチモニタだとどうなるん…?」とか書いてたので、ちゃちゃっと。 掲示板から小ネタ | たっぷす庵 SystemParametersInfoのSPI_GETWORKAREAは、プライマリモニターの情報しか返しません。 他の情報が知りたい場合は、GetMon…

UWSCでEXIF情報を読んでみる

前に、写真の撮影日時の秒単位がShell.Applicationでは取れない、というのがあった。 stuncloudさんが回答してくれた「Wia.ImageFile」がベストだけど、気が向いたのでバイナリーを読んでみた。

UWSCでWinsockを使う

stuncloudさんがUWSCでもWinsock簡単だよー、と言ってたので、挑戦してみた。 UWSCでIRCクライアント | たっぷす庵 まあまあなモジュールにできた。 現在同期版のため、使用の際には注意が必要。 追記 20131110 nonblocking版を作成したので、このスクリプト…

UWSCで排他制御

以前、公式掲示板に「UWSCの排他制御をJavaのsyncronizedのようにできればよいのに」といった書き込みがあった。 ので、考えてみた。 単純なイベントなりでの排他制御の場合、最初に待ちに入ったスレッドが次に実行されるわけではない。 このモジュールでは…

UWSCでスタックとキュー処理

UWSCには連想配列はあるけど、スタックやキューがない。 スタックは連想配列を使えば簡単なので、スレッドセーフなものを考えてみた。 で、Pushしてから先頭を取り出せば、Queueになるので、Stackモジュールだけど、キューも実装した。

UWSCでCUI(コンソールウインドウ)を扱う(その2)

UWSCでCUIを扱う、CUIモジュールを少し改変してみた。 STOPFORMで止められるようにした(メモリーリークするけど)。 ReadConsoleをUWSCのスレッドから直接呼び出すと、STOPFORMが利かなくなるので、ネイティブスレッドから呼び出すように変更。 ついでに、…

UWSCでDeflate圧縮する

http://zlib.net/で配布している1.2.8のDLLを埋め込んでみました。 DLLが大きいので、大きなスクリプトになっています。 174KBのスクリプトとか、、、アホかと。 なお、メモリーに乗り切らないような大きなデータは対象外です。 Zipファイル自体を扱うスクリ…

UWSCでDLLを扱う

ハフマン符号に手を出そうかと思ったし、実証コードも書いてみたけど、、、オレオレ圧縮はやめよう、そう思った。 なので、ZIPに手を出すことにした。 ZIPと言えば、zlib http://zlib.net/ だよね、ということで、これをAsmモジュール用に改造を考えたけど、…

UWSCで画像をクリップボード経由で扱う

UWSCのSAVEIMG/CHKIMG/PEEKCOLORが4.9でクリップボードに対応した記念。 PEEKCOLORは使ってないけど、SAVEIMGでクリップボードに放り込んだり、クリップボードの画像を文字列にしてみたり、その文字列から画像をクリップボードに戻したり、クリップボードか…