2011-02-01から1ヶ月間の記事一覧

i-mode2.0ではwindow.alertは定義されていても実際は使えない

脱腸しかけてからもう1週間がたちましたか 上記のエントリーでi-mode2.0ではalertが使えないということを書きましたが、久しぶりにi-mode2.0に対応するコードを書いていて、大事なことを書いてないことに気づきました。 alertは定義されてるけど使えないって…

直す

WScript.ShellのRunメソッドなんですが、第二引数を0にして汎用Rundll32でShowWindow(hwnd, SW_SHOW)を呼び出したらうまくいきませんでした。 SW_SHOWをするにはアプリケーションがアクティブになってる必要があるようです。それと、汎用Rundll32にバグがあ…

WSHやバッチファイルからWin32APIを呼び出す

WSHでDLLの関数を呼び出せるツールにSFC miniというものがありますが、これはどうやらインストールという作業が必要みたいで、配布の障壁になるかなぁと思っていました。 簡単な用途であれば、以前作った汎用Rundll32でもいけるので、簡単ではありますがサン…

HTAのWindowがちょっとおかしい件について

FlashWindowでHTAのタスクバーを光らせたあと、アクティブにしても点滅状態が元に戻らないので、これはどういうことかと思って調べていました。 WindowExplorerでmshta.exeの持っているウィンドウを見てみたところ、謎の隠しウィンドウがあったので表示させ…

汎用Rundll32というものを作った

WindowsにはRundll32といって、DLLにある関数をコマンドで呼び出せるツールが入っているのですが、Rundll32では呼び出せる関数の形式が決まっているので、たとえばMessageBoxなんかは呼び出せないわけです。そこで、どんな関数の形式でも呼び出せる汎用Rundl…

Cで代入演算子の評価順

C

*(++p) += *p; とあった場合、左から実行されるようで、つまり #include <stdio.h> int main() { int i[] = {0,1}; int *p = i; *(++p) += *p; printf("%d\n", i[1]); return 0; } の結果が2になります。</stdio.h>

Windowsでコマンドライン引数に改行などが使えることを確認した

a.exe #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(0,lpCmdLine,0,0); } a.js (new ActiveXObject("WScript.Shell")).Run("a.exe a\ta\r\nb"); Win98とWin2000でも使えました</windows.h>…

VC++のインラインアセンブラとgccのインラインアセンブラとではかなり違うので大変でした

C

なお、私はアセンブリはよくわかりません。 私の環境 WinXPSP3 CeleronM VC++2010 MinGW 20101030のやつ VC++ __asm add esp,n インテル記法Cの変数をそのままかけるgcc __asm__("addl _n,%esp"); AT&T記法インテル記法と順番が逆レジスタの前に%命令でb,w,l…

IE6でTABLEのDOMを操作するときはTBODYもいれる

IE6ではテーブル要素の動的生成時にtbodyを生成しないとだめみたい 最近IE6を見放してたので気づきませんでしたが、テーブルをうまく生成できてなかったみたいです。 番組表とTruth Table Generatorを直しました。

VisualC++2010で作ったアプリケーションがXP以前で使えないかもしれない

Visual Studio 2005ではWindows 95用アプリを作れない?! Windows95 で作動するアプリケーションを作成できる最後の VC++ のバージョンは? 上記リンクにはVC++で作ったアプリがWin95で動かないということが書いてありますが、同じようなことがWin98やWin20…

Windowsのコマンドラインに文字コードがある(?)のか?と考えたけど違う

CommandLineToArgvWのページにUnicode ワイド文字で渡されたコマンドライン文字列を解析とあるので、コマンドラインに文字コードがあるのか?あるならどうやって文字コードを判定するんだ?と思いましたが、以下のプログラムをテストしてそういうことではな…

jsで配列を初期化するときはnew Arrayのほうが早いのか

http://www.kanasansoft.com/weblab/2007/11/post_15.html 確かにあらかじめ確保しておいた方が速そうに思えるけど正直変わらないと思ってました。 2,3個ぐらいなら[]ってところですかね。