2011-02-01から1ヶ月間の記事一覧
脱腸しかけてからもう1週間がたちましたか 上記のエントリーでi-mode2.0ではalertが使えないということを書きましたが、久しぶりにi-mode2.0に対応するコードを書いていて、大事なことを書いてないことに気づきました。 alertは定義されてるけど使えないって…
WScript.ShellのRunメソッドなんですが、第二引数を0にして汎用Rundll32でShowWindow(hwnd, SW_SHOW)を呼び出したらうまくいきませんでした。 SW_SHOWをするにはアプリケーションがアクティブになってる必要があるようです。それと、汎用Rundll32にバグがあ…
WSHでDLLの関数を呼び出せるツールにSFC miniというものがありますが、これはどうやらインストールという作業が必要みたいで、配布の障壁になるかなぁと思っていました。 簡単な用途であれば、以前作った汎用Rundll32でもいけるので、簡単ではありますがサン…
FlashWindowでHTAのタスクバーを光らせたあと、アクティブにしても点滅状態が元に戻らないので、これはどういうことかと思って調べていました。 WindowExplorerでmshta.exeの持っているウィンドウを見てみたところ、謎の隠しウィンドウがあったので表示させ…
WindowsにはRundll32といって、DLLにある関数をコマンドで呼び出せるツールが入っているのですが、Rundll32では呼び出せる関数の形式が決まっているので、たとえばMessageBoxなんかは呼び出せないわけです。そこで、どんな関数の形式でも呼び出せる汎用Rundl…
*(++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>
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>…
なお、私はアセンブリはよくわかりません。 私の環境 WinXPSP3 CeleronM VC++2010 MinGW 20101030のやつ VC++ __asm add esp,n インテル記法Cの変数をそのままかけるgcc __asm__("addl _n,%esp"); AT&T記法インテル記法と順番が逆レジスタの前に%命令でb,w,l…
IE6ではテーブル要素の動的生成時にtbodyを生成しないとだめみたい 最近IE6を見放してたので気づきませんでしたが、テーブルをうまく生成できてなかったみたいです。 番組表とTruth Table Generatorを直しました。
Visual Studio 2005ではWindows 95用アプリを作れない?! Windows95 で作動するアプリケーションを作成できる最後の VC++ のバージョンは? 上記リンクにはVC++で作ったアプリがWin95で動かないということが書いてありますが、同じようなことがWin98やWin20…
CommandLineToArgvWのページにUnicode ワイド文字で渡されたコマンドライン文字列を解析とあるので、コマンドラインに文字コードがあるのか?あるならどうやって文字コードを判定するんだ?と思いましたが、以下のプログラムをテストしてそういうことではな…
http://www.kanasansoft.com/weblab/2007/11/post_15.html 確かにあらかじめ確保しておいた方が速そうに思えるけど正直変わらないと思ってました。 2,3個ぐらいなら[]ってところですかね。