RSS2.0
Powered by Movable Type 3.2-ja-2
Gattamars.com
Made in JAPAN
Beer Powered
Baseball

メイン

2010年07月02日

Win32::GUIのToolbarにAddButtonsする

よく、

$ToolBar->AddButtons(
    3,
    0, 1, 4, 0, 0,
    1, 2, 4, 0, 1,
    2, 3, 4, 0, 2,
);

なんてやってるソースを見かけますが、それぞれの数字が何を表してるのか覚え書き。

↑のソースで言うと、1行目の「3」がボタンの数、
2行目以降はそれぞれのボタンの設定となる。
それぞれ5つのパラメータから成り、左から順に

bitmap, id, state, style, string

となる。

bitmapは、ImageListのゼロベースのインデックス。

idは、それぞれボタンに割り当てるユニークな数字。

stateは、ボタンの状態設定で、下記のようなものがあり。
     1 TBSTATE_CHECKED
     2 TBSTATE_PRESSED
     4 TBSTATE_ENABLED
     8 TBSTATE_HIDDEN
    16 TBSTATE_INDETERMINATE
    32 TBSTATE_WRAP
    64 TBSTATE_ELLIPSES

styleはボタンのデザイン設定で、下記のようなものがあり。

     0 TBSTYLE_BUTTON
     1 TBSTYLE_SEP
     2 TBSTYLE_CHECK
     4 TBSTYLE_GROUP
     8 TBSTYLE_DROPDOWN
   256 TBSTYLE_TOOLTIPS
   512 TBSTYLE_WRAPABLE
  1024 TBSTYLE_ALTDRAG
  2048 TBSTYLE_FLAT
  4096 TBSTYLE_LIST
  8192 TBSTYLE_CUSTOMERASE

stringは、AddStringした文字のゼロベースのインデックス。

2010年05月28日

PerlでWin32::APIのSetLocalTimeを使う

Perlでシステム時計の日時を変更できないかなー、と思いついていろいろ調べてみる。
どうやらWin32APIのSetLocalTimeを使うとできるらしい。

参考)
http://msdn.microsoft.com/ja-jp/library/cc429941.aspx
http://dobon.net/vb/dotnet/system/setlocaltime.html

続きを読む "PerlでWin32::APIのSetLocalTimeを使う" »

2007年10月26日

PDK 7.0 Deployment Toolsのインストールでエラー発生

使ってたPCがぶっ壊れまして、OSを再インストールするハメに。
で、PDKを再インストールしようとするとなぜかエラーになる。

焦ってググッてみると、やはり同じ症状の人がいたみたい。
参照→pochy9nのノート

要は、Microsoft .NET Framework 2.0が必要とのことです。

2007年09月02日

Encodeを使うプログラムをPerlAPP7.00でexe化する

Encodeを使用するプログラムを、PerlAPPを使ってexe化し起動すると、

unknown encoding 'shiftjis' at ~

というエラーが出る。
ちなみに6.0の時はならなかった。
プログラムの冒頭で、

use Encode::JP;

と明示すれば回避できた。

2007年05月07日

Plesk上のバーチャルホストで設定を変更し、Apacheに反映させる

1./var/www/vhosts/hogehoge.net/confディレクトリに「vhost.conf」を作成し設定。

2.その後、Pleskがvhost.conf を読み込むよう設定。

# /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=hogehoge.net

3.Apacheを再起動。

# /etc/init.d/httpd restart

以上でOK。

2007年02月01日

自宅メールサーバのOP25B対策

最近ミクシィの日記ばかり書いてこっちは全然更新してませんでした。
楽天売上ランキング配信プログラムも更新しなくてわ。。。

先日、知人から古いFMV機をタダで譲り受けました。
これを自宅サーバとして活用しようと目論んでおります。

Win2000+Apache2.2+Xmailというよくある構成にしてみましたが、問題発生。
CGIからXmail付属のsendmailを使ってメール送信しようとするも、どうもうまくいかない。
ローカルと加入プロバイダには問題無く送信できるも、その他のメールサーバーには送信できない。
エラーメッセージも返って来ないのにメールは届かないという状態。

で、ピンと来たのが去年辺りから大手プロバイダで始まったOutbound Port25 Blocking(OP25B)。
早速ググッてみたところ詳しいサイトを発見。
なんとかうまく送信できるようになりました。

2006年06月09日

DBD::SQLiteのお勉強

DBD::SQLiteの勉強をしてますが、検索してもあまり日本語の情報は得られませんね。

というわけで覚え書き。
SQLiteはトランザクションを明示しとかないと、更新系のコマンドが実行される時は自動的にトランザクション宣言が行われるらしい。
つまり、100件のデータ追加では100回のBEGIN→COMMITが繰り返されるわけで、処理が非常に遅くなるというわけです。

PerlのDBD::SQLiteでこれを防ぐには下記のように書いとけば良いみたい。

my $mydb = 'hoge.db';
my $dbh = DBI->connect("dbi:SQLite:dbname=$mydb","","",{ AutoCommit => 0 });
$dbh->do('CREATE TABLE foo (a,b,c)');
$dbh->do('BEGIN');
my $insert = $dbh->prepare("INSERT INTO foo VALUES(?,?,?)");
$insert->execute("1","2","3");
$dbh->do('COMMIT');

2005年11月07日

MTのPerl APIを使って外部からカテゴリを追加する

$new = MT::Category->new;
$new->blog_id($blog_id);
$new->label("test");
$new->save or die $new->errstr;

適当にやってみたらでけた。 これで「test」カテゴリが追加できる。

親カテゴリを指定したい時は、

$new->parent(25);

てなカンジで親カテゴリのカテゴリIDを指定。

デフォでそのカテゴリのエントリ全体にトラックバックを受け付けるようにするには、

$new->allow_pings(1);

と書けば良し。

2005年11月03日

アーカイブの再構築ができない?

ダイナミック・パブリッシングを使ってみたけどメンドくさくなって元に戻してみたら、その後アーカイブの再構築ができなくなった。

それから、いろいろ弄って原因が判明。
元々アーカイブの拡張子を「html」から「shtml」に変えていたため、ブラウザがアーカイブのディレクトリ内の「index.html」を読みに行っていたからだった。

ダイナミック・パブリッシングを設定した際に自動生成されるルートディレクトリの「.htaccess」の記述を下記のように書き換えて無事解決。

5行目あたり
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.htm default.htm default.html default.asp /~/mtview.php
</IfModule>

<IfModule mod_dir.c> DirectoryIndex index.php index.shtml index.html index.htm default.htm default.html default.asp /~/mtview.php </IfModule>

と書き換えると、「index.shtml」が優先されます。

本棚

Ads