tomatomax.net

Every rule has its exception.

Archive for the Delphi Category

最前面に表示されているウィンドウかどうか調べる

GetWindowLong関数を使って、拡張ウィンドウスタイルを取得すればいいのかな。EnumWindowsあたりと組み合わせて、全てのウィンドウに対して調べてみたり。

if (GetWindowLong(Handle, GWL_EXSTYLE) and WS_EX_TOPMOST) = WS_EX_TOPMOST then
ListBox1.AddItem('OK', nil)
else
ListBox1.AddItem('NG', nil);

スーパーpre記法(シンタックス・ハイライト)を使ってみたかっただけでした><

TScrollBar.PageSize

スクロールボックスのサイズ。表示している割合を示すために使うプロパティ。

w := 639 - Panel.Width;
ScrollBarH.Max := w;
ScrollBarH.PageSize := w * Panel.Width div 639;

幅640の領域をパネルに表示するときの割合。パネルのサイズが640以上になるとまずいのでエラー処理を加える必要あり。

UDP送信

SOCK_DGRAMでソケットを作ったらsendto()でサクっと送信。

sock := socket(PF_INET, SOCK_DGRAM, 0);
sendto(sock, packet, 6 + 6 * 16, 0, addr, sizeof(addr));
closesocket(sock);

WOL用のマジックパケット送信プログラム作ってみました(http://hp.vector.co.jp/authors/VA013135/mpsend.zip)。

> mpsend.exe 192.168.0.255 12-34-56-78-90-AB

↑こんな感じで使用。とりあえずこれだけ。