トップページ⇒tech
1001コメント304KB

Win32API質問箱 Build43

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/05/19(金) 11:25:09
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。
0685デフォルトの名無しさん2006/06/13(火) 21:48:23
>>684
SetErrorMode()
0686デフォルトの名無しさん2006/06/13(火) 22:02:05
アプリの先頭で
SetErrorMode(SEM_FAILCRITICALERRORS);
で出来ました。ありがとうございます。
MFCはデフォルトでこの状態なんですかね。なんか恐ろしい。
0687デフォルトの名無しさん2006/06/13(火) 22:26:51
は?
0688デフォルトの名無しさん2006/06/13(火) 23:57:25
は?
0689デフォルトの名無しさん2006/06/14(水) 00:07:45
は?
0690デフォルトの名無しさん2006/06/14(水) 00:23:06
は?
0691デフォルトの名無しさん2006/06/14(水) 00:47:26
は?
0692デフォルトの名無しさん2006/06/14(水) 01:53:38
ウィンドウの小ウィンドウの小ウィンドウに
CreateWindowExでEDITコントロールを貼り付けたんですが、表示されなくて困っています
どうすればよいでしょうか?
0693デフォルトの名無しさん2006/06/14(水) 02:49:10
は?
0694デフォルトの名無しさん2006/06/14(水) 07:24:11
692 つまりは、孫ウィンドウって事だな。
0695デフォルトの名無しさん2006/06/14(水) 08:11:24
>>678
try, catch throw

例外処理
http://pc8.2ch.net/test/read.cgi/tech/1142667446/

template
【初心者歓迎】C/C++室 Ver.28【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1149815331/
0696デフォルトの名無しさん2006/06/14(水) 14:01:36
692 つまりは、孫がシャイで困っているという事だな。
0697デフォルトの名無しさん2006/06/14(水) 14:02:37
ニートかもしれん
0698デフォルトの名無しさん2006/06/14(水) 14:18:12
>>692
それだけの内容だと「ソースがおかしいんじゃね?」としか言えない。
って言うか、ちゃんと表示する様に指示しているか?
0699デフォルトの名無しさん2006/06/14(水) 18:25:57
リストボックスがクリックされたときに、フォームのCALLBACK関数で
処理したいのですが、どうすればいいですか?

ListBoxに LBS_NOTIFY を指定しても、 WM_NOTIFY メッセージが
送られてきていないようなのでちょっと困っています。
# ListViewなら普通に処理できそうなんですけどねぇ。。。

環境はMSVC++2005 ExpressEditionにPlatformSDKいれてやっています。
07006992006/06/14(水) 18:50:57
自己解決しました。
WM_COMMAND で捕まえられるんですね。
0701デフォルトの名無しさん2006/06/14(水) 21:23:05
便乗、ってことになるのかな?

listboxでLBS_NOTIFY指定して、
WM_COMMANDでENTER捕まえることは可能ですか?
上手くいかない・・・
0702デフォルトの名無しさん2006/06/14(水) 23:01:50
質問です。
現在キーボードエミュレートをするツールを開発しているのですが、キー(ファンクション)
の長押しを実装方法が分からないので質問にきました。

PostMessage(hwnd, WM_KEYDOWN, VK_F1,0)
PostMessage(hwnd, WM_KEYUP, VK_F1,0)

現在はこのようにPostMessage()を並べているのですが、これをどのように書き換えれば
F1キーを長押し(リピート)しているように見せかけられるのでしょうか?

UWSCのスクリプト内では私が求めているような挙動は以下のようにして得られています。
KBD(VK_F1,DOWN,30)
KBD(VK_F1,DOWN,30)
KBD(VK_F1,CLICK,40)

どうぞよろしくお願い致します。
-------------------
使用OS: windowsXP
開発環境:Bccコンパイラ
使用言語:C++
-------------------
0703デフォルトの名無しさん2006/06/14(水) 23:34:38
昨日思いついたんだけど、windowsヘッダをインクルードするとき

namespace Win{
#include <windows.h>
}

ってやったら便利かな?
インテリセンスでローカル識別子と一緒にAPI関数がズラズラ入っちゃうのを防げる。
0704デフォルトの名無しさん2006/06/14(水) 23:50:26
>>702
それでうまく動いてるんだったら、
PostMessage(hwnd, WM_KEYDOWN, VK_F1,0)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,1)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,2)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,3)
PostMessage(hwnd, WM_KEYDOWN, VK_F1,4)
PostMessage(hwnd, WM_KEYUP, VK_F1,0)
で4回リピート。
0705デフォルトの名無しさん2006/06/15(木) 00:04:49
>>703
Win::CreateWindowの名前をリンカが解決できると思う?
07067022006/06/15(木) 00:12:00
>>704さんアドバイスありがとうございます。
さっそく試してみましたが長押しだと認識しませんでした。

考えられることは
(1)Postmessage()では長押しは実現できない?
(2)Postmessage()以外にキーボードイベントを模索するべき?
(3)その他

このくらいしか思い浮かばないのですがどなたかアドバイスお
願いできないでしょうか?
0707デフォルトの名無しさん2006/06/15(木) 00:21:02
LPARAM の0-15ビットがリピート情報じゃなかったっけ
07087022006/06/15(木) 00:24:29
>>707
はい。その通りです。以下のサイトにそのように書いてあります。
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win30.html

しかし、実際にはどのように引数としてLPARAMの内容を決定すれば
よろしいのでしょうか?
0709デフォルトの名無しさん2006/06/15(木) 00:32:25
>>705
解決してるみたいだけど
0710デフォルトの名無しさん2006/06/15(木) 00:33:43
keybd_event使うんじゃないの?

0711デフォルトの名無しさん2006/06/15(木) 00:33:46
>>708

そのサイトに書いてあるじゃん

>30ビット目は直前のキーの状態を意味します
>直前に発生したキーイベントが離されたものであれば0
>押された状態のものならば1であり、キーを離した時の状態はつねに1になります
>直前のキーストロークが押しつづけて発生したオートリピートの監視に使えます
>最後の31ビット目は、キーが押されたものであれば0、離されたものであれば1になります
>これは、WM_KEYDOWNでは0、WM_KEYUPなら1になっています

LPARAMの 0-15ビット目をなんか適当な数 30ビット目を1 31ビット目を0
にすりゃいいんでないの?試してないけど
0712デフォルトの名無しさん2006/06/15(木) 10:46:02
CreateWindowで作るウインドウを、モーダルダイアログのようにしたいんですけど
(親のウインドウにフォーカスいかなくなるような)
どのように実装したらいんでしょうか?
参考になりそうなソースなどご存じでしたら紹介してください。
0713デフォルトの名無しさん2006/06/15(木) 10:52:14
モーダルダイアログに貼り付ける
0714デフォルトの名無しさん2006/06/15(木) 11:38:21
>712
CreateDialogは駄目なの?

CreateDialogでダイアログ生成(仮:DialogA)
親WindowをEnableWindowで無効
↓
処理が終わったらDialogAをDestroyWindow()で消去前に
EnableWindow()で親Windowを有効に戻す

俺はこうやってるけど参考にならなかったらシカトしてくれ
07157022006/06/15(木) 11:39:31
>>710さん,>>711さんレスありがとうございます。

>>710さん
keybd_event()はwindowsXPではSendInput()推奨になっているようですね。
ただSendInput()のサンプルになりそうなプログラムってネットに転がってな
いようですね。。。ちなみにkeybd_event()でも試してみましたが、動作しませ
んでした。

>711さん
PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0x3B0001);
for(int count=0;count<30;count++){
PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0x203B0001);
}
PostMessage(hwnd, WM_KEYUP, VK_F1, 0);

こんな感じでビットの内容を指定したのですが動作しませんでした。
ちなみに走査コードは実際にF1キーを入力したときに確認した値を
代入しています。

まだ考えられる方法はあるでしょうか?
0716デフォルトの名無しさん2006/06/15(木) 12:10:34
>>702
その入力先がゲームとかじゃないだろうな。
DirectInputでキー拾ってるアプリだとキーメッセージ投げても反応しないぞ。
07177122006/06/15(木) 12:20:33
レスありがとうございます。
>713、714
表示したいダイアログが、Layerウインドウでアルファーチャンネルを持ったウインドウなんですが、
可能でしょうか?、childで指定でダイアログに貼り付けて、親のダイアログのVisibleをオフにするとか?
何か情報ありましたらお願いします。
0718デフォルトの名無しさん2006/06/15(木) 12:27:28
>>709
ATLやMFC(MFCは使ったことが無いけどたぶん)
では、Win32 APIがグローバルな名前空間にあるという前提の元コードが書かれているので、
問題になる。
0719デフォルトの名無しさん2006/06/15(木) 14:07:49
ダイアログが生きているか削除されたか調べる方法ない?
0720デフォルトの名無しさん2006/06/15(木) 14:10:34
>>719
ウインドウハンドルに対してIsWindowをかけるとか
07217192006/06/15(木) 14:27:05
>>720
できた!
ありがとう!
0722デフォルトの名無しさん2006/06/15(木) 15:45:40
>>705
extern "C"が指定されているから、問題ない。
0723デフォルトの名無しさん2006/06/15(木) 18:36:08
>>722
そうなんだ。extern "C"するとnamespaceって完全無視なの?
0724デフォルトの名無しさん2006/06/15(木) 18:52:48
アンインストール情報。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の中をのぞくとDisplayName,UninstallStringの2つしかないアプリがありますが
「プログラムの追加と削除」プログラムは該当アプリのアイコンを何の情報を元に取得しているのでしょうか?
0725デフォルトの名無しさん2006/06/15(木) 19:07:39
>>723
そういうこと。
だから関数名は問題ない。

でもWinMainとか些細な問題はまだいくつかあるはず。
実際に703のようなことをやってみたことはないから、
俺はほかにどんな問題があるかも知らない。
0726デフォルトの名無しさん2006/06/15(木) 19:15:46
でも意図不明なコードとしてそのコードを見た誰かに叩かれることもありうるので、
やらない方がいいと思うんだが。
つーか、俺なら叩くなw
0727デフォルトの名無しさん2006/06/15(木) 23:54:25
普通はGetAsyncKeyStateを使って押されているかどうかを調べると思う。
これだとエミュレートは出来ないと思います。

>>716
>>702を見ると、スクリプトではうまくいくそうだから、
何らかの方法があるはず。

ところで、ファンクションキー以外のキー(例えば A )は上手く行くの?
0728デフォルトの名無しさん2006/06/16(金) 09:57:18
>>702
キーボード入力のフェイクは、SendInputでやること。
DirectInputにも対応したかったら、SendInput必須
スキャンコード指定すればDirectInputでもおk。

//keybd_event()でもできないことはないが、ドキュメント化されていないのでお勧めしない

Vistaだと、自分より権限が高いウインドウには、送れないようになるらしいけど。
0729デフォルトの名無しさん2006/06/16(金) 10:00:54
>>728
> Vistaだと、自分より権限が高いウインドウには、送れないようになるらしいけど。
HIDフィルタドライバー経由でいけそうな気もしないではないけど…
そこまでやったことないな。
0730デフォルトの名無しさん2006/06/16(金) 13:37:59
98って何年前のwindows
0731デフォルトの名無しさん2006/06/16(金) 15:16:05
98年前だ
0732デフォルトの名無しさん2006/06/16(金) 17:11:59
>>731
そうか!だから「98」だったのか
0733デフォルトの名無しさん2006/06/16(金) 17:20:34
来年にはWindows99になるのか
0734デフォルトの名無しさん2006/06/16(金) 17:23:53
来年Windows-1が発売します
0735デフォルトの名無しさん2006/06/16(金) 17:33:59
>>729
ドライバ辺りはまったくの素人だからわからないのだけれど、
それをするには管理者権限が必要になるんじゃないのかな?

Vistaは、管理者が実行しても、デフォルトでは一般ユーザ権限で実行されるのだけれど。

権限をしっかり考えていなかったコードが、
必要以上の権限を要求したりしていることがよくあるから、
その辺の互換性は大丈夫なのか心配になるけど。
07367022006/06/16(金) 18:09:24
レス遅れました。
>>716さん,>>727さん,>>728さん,>>729さんレスありがとうございます。

>>716さん
入力先はゲーム(DirectX使用)です。DirectInput関数でキーを拾うと反応
しないなんて知りませんでした。他のレスではSendInput()だと拾えるような
ことが書いてありますね。どっちが正しいのか試してみます。

>>727さん
GetAsyncKeyState()ですか。ということは今のところDirectInputとGetAsyncKeyState()
の2種類は物理的に信号を発生させないと無理かもしれないということですね。
ちなみにWM_CHARに関しては入力を正しく受け付けています。

>>728さん
716さん、727さんのおっしゃっている関数でSendInputを拾えるかどうかを確認
してみます。むしろDirectInput()については結論がでているようですが、これも
勉強のうちなので。

>>729
Vistaですか。ますますエミュレートするのが困難になるわけですね。。。
0737デフォルトの名無しさん2006/06/16(金) 20:07:25
>>735
ドライバとスクリプト駆動アプリ間の インターフェース DLL を ちゃんと真面目に作れば
スクリプト駆動アプリ はユーザー権限のままでいける

問題は インターフェース DLL をちゃんと作るのが大変っぽいのよね…
0738デフォルトの名無しさん2006/06/16(金) 22:39:51
なんだボットか
0739デフォルトの名無しさん2006/06/17(土) 02:29:54
D言語ってどこらへんがいいんだ?<時代のさきっちょに乗ったつもり
0740デフォルトの名無しさん2006/06/17(土) 02:31:41
>>739
D言語スレがありますので、そちらでどうぞ。
0741デフォルトの名無しさん2006/06/17(土) 11:22:01
Win32APIなのかわかんないのですが、他に答えが得られそうなスレが無かったのでここで質問させてください
サーバーソケット(?)へクライアントが接続したかどうかを知る方法はありますでしょうか?
やりたい事は「***がサーバーに接続しました」と表示することです

よろしくお願いします。
0742デフォルトの名無しさん2006/06/17(土) 11:39:39
WinSock?
0743デフォルトの名無しさん2006/06/17(土) 11:41:56
>>741は他プロセスのコネクションを覗き見たいのだろう。
ドライバでも書いとけ。
0744デフォルトの名無しさん2006/06/17(土) 11:45:37
エスパー登場w
0745デフォルトの名無しさん2006/06/17(土) 12:01:55
MessageBox(NULL, "***がサーバーに接続しました", "741", MB_OK);

これでいいんじゃない?
0746デフォルトの名無しさん2006/06/17(土) 12:22:31
>>742
そうです

>>743
いや、自プロセスの報です

>>745
>>285
0747デフォルトの名無しさん2006/06/17(土) 12:32:26
>>741
それが出来ずにいったいどうやってクライアントの接続を処理してるのか気になる
0748デフォルトの名無しさん2006/06/17(土) 12:45:33
accept
puts("***がサーバーに接続しました");
0749デフォルトの名無しさん2006/06/17(土) 13:02:46
>>747-478
あれ、もしかしてacceptが接続されるまでループしてくれるのかな
おかげ様で解決できそうです、ありがとうございました!
0750デフォルトの名無しさん2006/06/17(土) 13:13:56
つまり、やってみもしないで、グダグダと聞き回っているわけだな?
0751デフォルトの名無しさん2006/06/17(土) 14:05:13
>>750
accept
recv
まで書いて実行してみたところ、固まって
んで、接続もされてないのにrecvループしてるのが原因なのかと勘違いして
とりあえず答え求めてgoogle検索して出てきたソースで試してみたところ、やっぱし固まって・・・
(シングルスレッドでやってるソースしか出てきてなかったわけじゃないと思いますが、コードの一部だけをコピペして試してたので)

僕の知識では全然acceptに気づかなくて、どうしようもなく行き詰ってたんです
僕の間抜けさ故に不快にさせてしまって申し訳ないです

#追伸
こうして行き詰った理由を文章に書いたことで僕の間違いを再確認できました、
おかげで少しだけ成長できた気がします。ありがとうございました
0752デフォルトの名無しさん2006/06/17(土) 17:09:29
こっちはいい迷惑でした。
今後は

マルチスレッドプログラミング相談室 その4
http://pc8.2ch.net/test/read.cgi/tech/1130984585/
ネットワークプログラミング相談室 Port17
http://pc8.2ch.net/test/read.cgi/tech/1148944560/

こちらで質問してください。
2度とこないでください。
0753デフォルトの名無しさん2006/06/17(土) 17:15:14
ごめんなさい。でも、APIの質問ができたら来てもいいですか?
0754デフォルトの名無しさん2006/06/17(土) 17:16:35
どうぞいらっしゃい。
0755デフォルトの名無しさん2006/06/17(土) 19:34:56
パレットのプログラミング、というものを学習中です。
同時発色可能な色数が発色可能な色数より少ない場合に必要なのだ、という事はわかりました。
256色モードだけで必要、と書いてはありますが、しかし、余りに面倒な気がします・・・
こんなプログラミングをどのアプリもやっているのだろうか?
適当に色合わせをしてくれるライブラリとかはないのでしょうか?
0756デフォルトの名無しさん2006/06/17(土) 19:38:32
なんでいまさらパレット?
WinXPは互換モード以外256色なんて使えねーよ?
0757デフォルトの名無しさん2006/06/17(土) 19:39:43
>>755
特に今必要じゃなかったらあとで必要になった時にまたやればいい。
0758デフォルトの名無しさん2006/06/17(土) 19:52:51
gif png アイコンなんかを直接いじりたい場合とかか
0759デフォルトの名無しさん2006/06/17(土) 20:03:15
VC6でDLLを作って、VB6で使用しています
で、クラスを登録したいんですが、DEFファイルはどう書いたら良いんでしょうか?
関数と同じではダメなようなのですが・・・VBで使うので、

class __declspec( dllimport ) ClassName

は使えないみたいです。ご教示よろしくお願いします。
0760デフォルトの名無しさん2006/06/17(土) 20:05:34
>>755
パレットを使うと、(文字通り)色を調整するのが楽だという理由でパレットカラーの画像フォーマットを採用する場合もある。
#得に典型的な画像フォーマットはxpm。こいつはテキストでもありCソースの一部としても使える。
いずれにしても、このスレ的には忘れていい。
#逆に言えば、これ以上の話はスレ違い。
0761デフォルトの名無しさん2006/06/17(土) 20:06:35
DEFファイルなんか必要なのか?
俺なんか一度も使ったこと無いけど。
0762デフォルトの名無しさん2006/06/17(土) 20:28:17
>>755
Delphi Graphic Secretsでも読めよ。もう廃刊になってるかもしれんけど
いい本だよ。
0763デフォルトの名無しさん2006/06/17(土) 20:29:20
Del厨はDelスレから出てくんな
0764デフォルトの名無しさん2006/06/17(土) 20:29:39
エディットコントロールの外枠から最初の文字が表示される
隙間の幅を指定できますか?
0765デフォルトの名無しさん2006/06/17(土) 20:31:39
>>764
EM_SETMARGIN
0766デフォルトの名無しさん2006/06/17(土) 20:43:36
>>759
VBからクラスの形で使いたければActiveXでないといけない。
0767デフォルトの名無しさん2006/06/17(土) 20:54:07
>>764
できました!ありがとうございます
07687642006/06/17(土) 20:57:11
間違いましたorz
>>765
ありがとうございます
0769デフォルトの名無しさん2006/06/17(土) 21:00:15
>>766
そうなんですか、関数でラッピングする方向で考えてみます
ありがとうございました
0770デフォルトの名無しさん2006/06/17(土) 21:29:57
半透明のポップアップメニューを作りたいのですが、どうやれば作れるのでしょうか?
0771デフォルトの名無しさん2006/06/17(土) 22:38:17
ポップアップメニューを半透明にすればいいよ

SetWindowAttributeLayeredなんちゃら

0772デフォルトの名無しさん2006/06/17(土) 22:40:56
http://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.asp
0773デフォルトの名無しさん2006/06/17(土) 23:34:06
スレッドの終了待ちってどこですればいいですか?
// STOPボタンが押された時
HANDLE handle = Thread->GetHandle();
Thread->Stop();
WaitThread( handle, INFINITE );//WaitForSingleObjectのラップ
CloseHandle( handle );
なんてコードをGUIスレッド側で書いてるのですが、
たまにスレッドの終了に時間がかかってGUIが固まってしまうときがあります。当たり前ですが。
なので、どのようにスレッドの終了を待って、クローズすればいいのか
教えてください。

というか、一々WaitForSingleObjectで待ってなくて、CloseHandleで閉じても
いいのでしょうか?
0774デフォルトの名無しさん2006/06/17(土) 23:46:35
>>773
スレッドの終了処理を必要としないならばTerminateThreadとかで強制終了しても構わない。

メモリ解放とか終了処理があるのならば、普通はスレッドのクラスに「割り込みフラグ」を持たせておいて、
スレッドの処理内部で常にその「割り込みフラグ」がtrueに設定されたか監視するようコードを書き、
スレッドを生成した側で「割り込みフラグ」にtrueを設定して終了を通知する。

まあJavaのThreadの仕組みなんだけど参考にするといいと思う。
0775デフォルトの名無しさん2006/06/17(土) 23:47:45
スレッドハンドルを使う必要が無ければ、作成直後に閉じてもいいし、スレッド側で閉じてもいい。
後者はMFCでも行われている。
0776デフォルトの名無しさん2006/06/17(土) 23:57:33
>>774
スレッドの終了処理を必要としないならばTerminateThreadとかで強制終了しても構わない。

Cのランタイムライブラリを一切使わないおつもりでしょうか?
0777デフォルトの名無しさん2006/06/18(日) 00:06:53
>>773
待つなら、MsgWaitFor〜の待機関数かタイマ。
タイマは使えない場合も有り
0778デフォルトの名無しさん2006/06/18(日) 00:12:47
ひとつ聞いておきたいんだ。
>>775でも言っているけど、
あるスレッドハンドルに対してCloseHandleすると、
そのスレッドまで終了すると信じていたのは自分だけじゃないよな?

いや、Advanced Windowsにも書かれていたから、結構な人がそう信じているんだろうけど。
07797742006/06/18(日) 00:18:39
>>776
あらっ、なんかやっぱりスレッドの強制終了ってヤバカッたの?
そこら辺までは詳しく知らなかったです。

スレッド処理で、終了時に外部ファイルなどに状態を保存しておかないと、
次の起動時に不都合がでるようなアプリ以外では、
普通にスレッドの強制終了してもよいかとオモテました。
0780デフォルトの名無しさん2006/06/18(日) 00:46:44
>>779
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/terminatethread.asp
>If the target thread owns a critical section, the critical section will not be released.
>If the target thread is allocating memory from the heap, the heap lock will not be released.
>If the target thread is executing certain kernel32 calls when it is terminated, the kernel32 state for the thread's process could be inconsistent.
>If the target thread is manipulating the global state of a shared DLL, the state of the DLL could be destroyed, affecting other users of the DLL.

相当危険だな。
0781デフォルトの名無しさん2006/06/18(日) 01:25:03
返信ありがおうございます
スレッドが実行中でも、ハンドルを使わなければ閉じて構わないんですね。
この方法使います。
0782デフォルトの名無しさん2006/06/18(日) 01:28:20
TerminateThreadは原則禁止と思っておいた方がいい
質問の答えとしては>>777かな
0783デフォルトの名無しさん2006/06/18(日) 03:31:20
Win32APIで作られてるソフトでオープンソースなものしってる限り教えて頂けないでしょうか
参考にしたいです
0784デフォルトの名無しさん2006/06/18(日) 03:47:45
>>783
【参考】ソースを公開しているWindowsプログラム
http://pc8.2ch.net/test/read.cgi/tech/1115206132/
■ このスレッドは過去ログ倉庫に格納されています