Win32API質問箱 Build64
at TECH
1:デフォルトの名無しさん
08/04/02 10:21:31
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(URLリンク(msdn2.microsoft.com))の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
URLリンク(wiki.livedoor.jp)
【前スレ】
Win32API質問箱 Build63
スレリンク(tech板)
2:デフォルトの名無しさん
08/04/02 10:21:53
- MSDN ホームページ
URLリンク(www.microsoft.com)
- MSDN ライブラリ
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
- MSDN2 ライブラリ
URLリンク(msdn2.microsoft.com)
URLリンク(msdn2.microsoft.com)
- MSDN ライブラリ (ローカル版)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
- Windows SDK & Platform SDK
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
3:デフォルトの名無しさん
08/04/02 10:22:06
- Google
URLリンク(www.google.com)
- 猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
- Win32 API入門
URLリンク(wisdom.sakura.ne.jp)
- Win32 プログラミング入門
URLリンク(www7.plala.or.jp)
- Advanced Windows (書籍)
URLリンク(www.amazon.co.jp)
-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
4:デフォルトの名無しさん
08/04/02 10:22:49
62 スレリンク(tech板)
61 スレリンク(tech板)
60 スレリンク(tech板)
59 スレリンク(tech板)
58 スレリンク(tech板)
57 スレリンク(tech板)
56 スレリンク(tech板)
55 スレリンク(tech板)
54 スレリンク(tech板)
53 スレリンク(tech板)
52 スレリンク(tech板)
51 スレリンク(tech板)
50 スレリンク(tech板)
49 スレリンク(tech板)
48 スレリンク(tech板)
47 スレリンク(tech板)
46 スレリンク(tech板)
45 スレリンク(tech板)
44 スレリンク(tech板)
43 スレリンク(tech板)
42 スレリンク(tech板)
5:デフォルトの名無しさん
08/04/02 10:23:03
41 スレリンク(tech板)
40 スレリンク(tech板)
39 スレリンク(tech板)
38 スレリンク(tech板)
37 スレリンク(tech板)
36 スレリンク(tech板)
35 スレリンク(tech板)
34 スレリンク(tech板)
33 スレリンク(tech板)
32 スレリンク(tech板)
31 スレリンク(tech板)
30 スレリンク(tech板)
29 スレリンク(tech板)
28 スレリンク(tech板)
27 スレリンク(tech板)
26 スレリンク(tech板)
25 スレリンク(tech板)
24 スレリンク(tech板)
23 スレリンク(tech板)
22 スレリンク(tech板)
6:デフォルトの名無しさん
08/04/02 10:23:27
21 スレリンク(tech板)
20 スレリンク(tech板)
19 スレリンク(tech板)
18 スレリンク(tech板)
17 スレリンク(tech板)
16 スレリンク(tech板)★
15 スレリンク(tech板)★
14 URLリンク(pc5.2ch.net)
13 URLリンク(pc5.2ch.net)
12 URLリンク(pc5.2ch.net)
11 URLリンク(pc5.2ch.net)
10 URLリンク(pc5.2ch.net)
9 URLリンク(pc5.2ch.net)
8 URLリンク(pc5.2ch.net)
7 URLリンク(pc3.2ch.net)
6 URLリンク(pc3.2ch.net)
5 URLリンク(pc3.2ch.net)
4 URLリンク(pc3.2ch.net)
3 URLリンク(pc.2ch.net)
2 URLリンク(pc.2ch.net)
1 URLリンク(pc.2ch.net)
7:デフォルトの名無しさん
08/04/02 12:22:01
特定のアプリからファイルを開くには、どうすればいい?
ShellExecuteExだと、ファイルに関連付けられたアプリで起動するし。
8:デフォルトの名無しさん
08/04/02 12:37:25
特定のアプリのコマンドライン引数にファイル名を渡す
9:デフォルトの名無しさん
08/04/02 14:10:20
>>7
「開く」じゃ曖昧だよ。
何がしたいのかを書いたほうがいい。
10:デフォルトの名無しさん
08/04/02 19:36:38
既に取得済みのウィンドウハンドルでそのハンドル(ウィンドウ)が生きてるか死んでるかを
識別するAPIを教えてください
11:デフォルトの名無しさん
08/04/02 19:49:44
>>10
IsWindow
12:デフォルトの名無しさん
08/04/02 19:51:33
生きているの定義による。
IsWindowとかIsHungAppWindowとか。
13:デフォルトの名無しさん
08/04/02 19:54:34
> 997 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/02(水) 15:07:18
> カテゴリ分けしてある API のヘルプが欲しいよ
MSDNライブラリで、それなりにカテゴリ分けされてるが、それでは不十分?
14:デフォルトの名無しさん
08/04/02 19:56:07
>>10-11
ありがとうございます。
ばっちりですほんとうにありがとうございますた。
たすかりました。
いやもうほんとうに。
15:デフォルトの名無しさん
08/04/02 21:38:42
GetDC()やBitBlt()などを使ったよくあるウィンドウのSSを撮るプログラムを作ったのですが
Vistaのエアロ環境で3Dゲームなどのウィンドウを撮ると
真っ黒な画面になります。
GetDC()にNULLを指定して撮ると3Dゲームのウィンドウが
最初に撮ったSSの画面のままで固定され同じものが撮れてしまいます。
どなたか解決法わかりませんでしょうか?
16:デフォルトの名無しさん
08/04/03 00:49:22
だってVistaだしw
17:デフォルトの名無しさん
08/04/03 01:48:32
>>15
DWMサムネイルAPI使えばいい気がする。
18:デフォルトの名無しさん
08/04/03 12:52:25
GetCurrentProcessのウィンドウハンドル版みたいなのは無いでしょうか。
自分自身のウィンドウハンドルを取得したいのですが。。
19:デフォルトの名無しさん
08/04/03 12:55:58
その「自分自身」をどうやって見つけてくるんだよ
20:デフォルトの名無しさん
08/04/03 13:13:35
>>19
えっとdllを他プロセスにフックして
dllからフック先プロセスのウィンドウハンドルを取得したいのです。
21:デフォルトの名無しさん
08/04/03 13:14:07
FindWindowとかじゃだめなのかい?
22:デフォルトの名無しさん
08/04/03 13:19:31
ウィンドウがたくさんあったらどうするんだろう・・・
23:デフォルトの名無しさん
08/04/03 13:23:02
能書きはいいからさっさと教えろ
24:デフォルトの名無しさん
08/04/03 13:27:06
またゲームチートか
25:デフォルトの名無しさん
08/04/03 13:27:19
>>21
GetWindowTextでタイトルは取得できますが
ウィンドウクラス名の取得方法がわからなくて。。(ノ_・、)
26:デフォルトの名無しさん
08/04/03 13:29:35
EnumWindowsすればいいジャマイカ
27:デフォルトの名無しさん
08/04/03 14:04:19
GetClassName
28:デフォルトの名無しさん
08/04/03 14:35:10
おまえらほんと役立たずだな
29:デフォルトの名無しさん
08/04/03 14:43:23
お褒めに預かり極悦至極
30:デフォルトの名無しさん
08/04/03 15:03:16
もうこねーよ!
ばーか
31:15
08/04/03 15:52:11
"GetWindowDC(GetDesktopWindow())"でやったら出来ました。
32:デフォルトの名無しさん
08/04/03 16:55:05
チート・ウイルス・キーロガー・スパイウェア
こんなのばっかだな
あれか。普通のソフトはもうみんな.NETなんかで作っちゃうから
ド初心者かフック関係の質問しか来ないのな
33:デフォルトの名無しさん
08/04/03 16:59:24
>>32
知らないならレスするなクズ
34:デフォルトの名無しさん
08/04/03 17:17:17
とりあえず荒らしが2〜3名いるらしいというのは判別できた
35:デフォルトの名無しさん
08/04/03 18:15:08
と、荒らしが申しております
36:デフォルトの名無しさん
08/04/03 18:25:15
>>34
荒らすなよお前
37:デフォルトの名無しさん
08/04/03 19:00:37
WindowsのAPI(ウインドウとかコントロールの扱いやGDI)は一通り覚えたので、DirectXも触ってみたいんですが、
DirectXも他のWin32APIと同じ感じですか?もっと複雑に、もしかしたらクラスとか使ったりしますか?
38:デフォルトの名無しさん
08/04/03 19:38:49
俄然使う
39:デフォルトの名無しさん
08/04/03 21:54:17
>>37
Windowsとどら焼きぐらい違う。
いや、そこまで違わんか。タイヤキとタイヤぐらいか?
まあそれはともかく、別物だよ。
>>20
ウィンドウを作ってるのはプロセスじゃなくスレッド。
スレッドはウィンドウを作る必要はない。だから
プロセスがウィンドウを持ってることを前提にするのが間違ってる。
逆にウィンドウを作ったスレッドやプロセスを調べる関数は
当然あるので(必ず存在するからね)、そっちで調べるのが良い。
40:デフォルトの名無しさん
08/04/03 22:19:53
質問させてください。
WS_OVERRAPPEDWINDOWなどのスタイルで、タイトルバーのあるウィンドウを作っていて、
メッセージループでgetTimeGetを使うことでタイマーを実装しています。
タイトルバーをクリックしながらウィンドウを移動していると、
メッセージループ内の処理が行われないといった現象を回避する方法ってありますか?
具体的には、↓のようなプログラムです
startTime=timeGetTime();
while(msg.message!=QUIT){
if( PeekMessage (&msg,NULL,0,0,PM_NOREMOVE) ) {
if( !GetMessage (&msg,NULL,0,0) ) { msg.message = WM_QUIT; }
else {DispatchMessage( &msg );}
}
else{
if( (timeGetTime()-startTime)>3000 ){
MessageBox(hwnd,"ココ","caption",MB_OK); //移動が終わるまで
//これが出力されない
break;
}
Sleep(5);
}
}
41:デフォルトの名無しさん
08/04/03 22:29:24
getTimeGetに噴いた
42:デフォルトの名無しさん
08/04/03 22:45:10
シンディローパーの曲のようだ
43:40
08/04/03 22:48:29
timeGetTimeでした><
はずかしぃ・・
44:デフォルトの名無しさん
08/04/03 23:11:57
DrawText → DrawTextEx なのに、TextOut → ExtTextOut
返値が BOOL で GetLastError かと思ったら、レジストリ系は返値が LONG、COM 系は HRESULT
Kernel ハンドルの破棄は CloseHandle なのに User ハンドルは Destroy〜、GDI ハンドルは DeleteObject と名称がバラバラ
しかも Kernel 系でも FindFirstFile だけは FindClose だったり
WINMM 系は関数名が小文字で始まっていたり・・・
なんでこんなに統一性が無いのか気になって仕方がないんだけど知ってる人いる?
45:デフォルトの名無しさん
08/04/03 23:15:25
16bit時代からの互換性を考慮したから
46:デフォルトの名無しさん
08/04/03 23:22:05
>>32
その手のプログラムを作ること自体の是非はともかくとして、
その手のプログラムを作るなら人に聞かずにヤレと思うよ。
>>37
DirectXはCOM「もどき」で、MSがラッパーを用意してたりするし、
COMといってもオマジナイや定型文だと思ってもいいくらい。
47:デフォルトの名無しさん
08/04/03 23:27:48
>>44
直交性がないのはアレだが、混同しにくいという利点もあるぞ。
48:デフォルトの名無しさん
08/04/03 23:33:02
このスレはシステムプログラミングに明るい人が少ないか、
極度にネガティブなイメージを持ってる人が多いらしいので聞くだけ無駄なことが多い
フックとかマルウェア技術に関してはぐぐーる先生のほうがよっぽど使える
49:デフォルトの名無しさん
08/04/03 23:34:43
>>40
それは現象ではなく仕様。
ウィンドウの移動中に、ユーザの他の操作を受付けるのはナンセンスだし、
基本は移動枠が出るだけで描画は一切行わないので、メッセージポンプを回す必要もない。
逆に、回してしまったら変なことになるぞ。
ウィンドウの移動を自前で処理すりゃ
メッセージポンプを回すこともできるが、
そんな気持ち悪いことをするのもなぁ。
50:デフォルトの名無しさん
08/04/03 23:36:53
>>48
51:デフォルトの名無しさん
08/04/03 23:37:29
>>48
マルウェア作成技術にはネガティブなイメージを持って当然だろ。
ちなみに、
悪さするプログラムを作った人間が逮捕され、
2chのスレでやり方を教えてもらったと言ったら、
教えたほうは幇助で逮捕されかねんぞ。
52:デフォルトの名無しさん
08/04/03 23:44:41
他プロセスにdllを注入して〜とかそういうのが多すぎ
質問するなとは言わんがスレの半分ぐらいがそんなのばっかりなんてどう考えても異常だろ
同じ奴が何度も質問してるのか?
53:デフォルトの名無しさん
08/04/03 23:48:21
悪さするプログラムを作っても一切に罪には問われません
54:デフォルトの名無しさん
08/04/03 23:53:48
>マルウェア作成技術にはネガティブなイメージを持って当然だろ。
そーなのかー
その辺に自分とほかとの意識の違いがあるらしいことは理解した
(個人的には、いろんなサンプルコード片を書いたり教えたりするけど、
それを第三者がどういう目的で利用しようが関係ないと思ってる)
「既出杉。調べれば判るだろ」ってのは同意だけどね
55:デフォルトの名無しさん
08/04/03 23:57:17
めんどくせぇからwizard bibleでも見てろって感じだな
56:デフォルトの名無しさん
08/04/04 00:11:15
ウザい頻出ネタまとめ
問) 他プロセスのコマンドライン文字列を取得するにはどうすればいいですか?
答) 次のどちらかで取得できる。
・CreateRemoteThreadでGetCommandLineを送る。
・NtQueryInformationProcessでPEBからReadProcessMemoryする。
問) フックしたプロセスでメインウィンドウのHWNDを取得するにはどうすればいいですか?
答) そのものズバリな方法は無い。
ウィンドウクラス名が分かっている時はFindWindow(Ex)する。
分かっていない時はEnumWindowsとGetWindowThreadProcessIdを組み合わせる。
問) 特定のプロセスの音量を制御するにはどうすればいいですか?
答) Vista買え。
57:デフォルトの名無しさん
08/04/04 00:26:46
ochinchin.h を omanko.cpp に include したのに童貞のままです。
どうしたらいいですか。
58:デフォルトの名無しさん
08/04/04 00:29:03
はいはいよかったですね
59:デフォルトの名無しさん
08/04/04 00:29:42
>>57
先っちょだけだからです!
じゃなくて、その ochinchin.h はあなたの物ではありません
60:デフォルトの名無しさん
08/04/04 00:36:50
やり方が間違っている。
まずお前のイチモツをDLL化する。ochinchin.dll
そしてomanko.exeのプロセスにDLLインジェクションでochinchin.dllを挿入すればいい。
61:デフォルトの名無しさん
08/04/04 00:39:20
>>52
周囲の人間に聞いても教えてもらえない or 聞くのが憚られる
匿名ではない掲示板で聞いても教えてもらえない or 聞くのが憚られる
それで2chのこのスレに殺到する
ってことかもしれんな。
62:デフォルトの名無しさん
08/04/04 00:42:23
>>57 のことかーーーーー!!!
ってか親切に解説してくれているサイトを見るの方が
関連情報も一箇所にまとまってるから
よっぽど早く目的達成できるのにな
63:デフォルトの名無しさん
08/04/04 00:45:27
>>57-60
質問して断られて逆恨みして粘着してる人間がいるんだな。
>>56
こういうのはどうだ?
Q. 他プロセスのコマンドライン文字列を取得するにはどうすればいいですか?
A. 他プロセスにコマンドライン文字列を教えるためのインタフェースを設ける。
質問の主が後ろめたいことをやろうとしているのではなく、
複数のプロセスで協調動作するプログラムを書いているという仮定をしてさ。
他のプロセスが他人の書いたプログラムだって言うのなら、
その他のプロセスを自分でCreateProcessして、
その時のコマンドラインを覚えとけ、と。
64:デフォルトの名無しさん
08/04/04 00:52:34
>>63
うしろめたいってか、UNIX系だと簡単にコマンドライン取れるんじゃね。
よく知らんけど。
65:デフォルトの名無しさん
08/04/04 01:00:35
だったらUNIX系を使っとけ
66:デフォルトの名無しさん
08/04/04 02:30:35
Win32サブシステムではなくPOSIXサブシステムを使えばいいんじゃね?
Interixの会社をマイクロソフトが買収してSFUとして無料で提供してるのを使えばいいんじゃね?
67:デフォルトの名無しさん
08/04/04 08:19:30
1ヶ月ぐらい前にウイルス作成方法を公開してた奴が逮捕されたとかいうニュースを見た気がする
68:デフォルトの名無しさん
08/04/04 08:23:02
裁判で有罪になるかどうかは別として、
自力で調べられないようなタイプのハッカーもどきは、
十中八九、簡単に足が付くようなやり方をするから、
あんまり関わらないほうがいい。
69:デフォルトの名無しさん
08/04/04 10:21:37
iniファイルを扱いたいのですけど
WritePrivateProfileSectionつかうと同じセクションの内容を上書きしてしまいますよね
追加はどうすればいいのでしょうか
70:デフォルトの名無しさん
08/04/04 10:26:22
>>69
追加というのは、具体的に、どういうこと?
同一セクション内に同一のキーはダメだよ?
71:デフォルトの名無しさん
08/04/04 10:28:55
>>70
別キーを同じセクションに保存できないのです
説明下手でスマン
72:デフォルトの名無しさん
08/04/04 10:29:39
>>67
ウィルス作成では現行の法運用では罪を問えなかったので
著作権違反の疑いで逮捕した
73:デフォルトの名無しさん
08/04/04 10:36:51
>>71
WritePrivateProfileStringな
74:デフォルトの名無しさん
08/04/04 10:39:17
>>73
ありがとう!
75:デフォルトの名無しさん
08/04/04 11:02:49
WritePrivateProfileSection
> 指定された .ini ファイル(初期化ファイル)の、指定されたセクション内の
> 既存のキー名と値を削除し、
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 指定されたキーとその値のペアを書き込みます。
76:デフォルトの名無しさん
08/04/04 11:34:43
WinXPのタスクバーの自分のアプリ部分の領域に描画することは可能ですか?
プログレスバーのように進捗を表示したりといった感じです。
77:デフォルトの名無しさん
08/04/04 11:43:34
タイトルのこと?アイコンのこと?
まあどっちも可能
78:デフォルトの名無しさん
08/04/04 11:48:49
両方です。その方法を教えてください。
79:デフォルトの名無しさん
08/04/04 12:35:21
UNIXでも他プロセスのコマンドラインを取るのは素直にはできへんよ。
80:デフォルトの名無しさん
08/04/04 12:43:10
タスクバーの奴もボタンなわけだから
フックで入って描画ルーチンをのっとる
下手くそなフックするとExplorerが落ちまくりになるけどNe!
81:デフォルトの名無しさん
08/04/04 12:46:51
タスクバーのフックならTClockのソースでも見るがよろし
82:デフォルトの名無しさん
08/04/04 12:56:27
Jane Styleは空のDLLを注入しただけで落ちるんだけどw
中でとんでもない事をしてそうで気になる
83:デフォルトの名無しさん
08/04/04 14:01:13
>>79
psコマンドで一発じゃね?
84:デフォルトの名無しさん
08/04/04 16:11:16
psでも引数が見えないのはある。
例えばsendmailとか。
85:デフォルトの名無しさん
08/04/04 16:19:57
forkで親はとっくにいないとかじゃなくて?
86:デフォルトの名無しさん
08/04/04 17:35:24
>>80-81
タスクバーなんてOSのバージョンが上がる度に構造が変わるような物を安易にフックすべきでは無かろう
進捗状況を出したいならメインウィンドウのタイトルを"10% 完了"みたいに変えればいい
87:40
08/04/04 19:52:31
>>49
なるほど。
そういった仕様ということはあきらめるしかないですね。
参考になりました、ありがとうございます!
88:デフォルトの名無しさん
08/04/04 19:57:30
ISAPI用のDLLの中でファイルの属性を変更するために
SetFileAttributes()を使いました。
その際、windows2000server、IIS5環境では問題なく動作したのですが
windows2003、IIS6環境ではSetFileAttributes()が失敗します。
原因としてはどのようなことが考えられるでしょうか
89:デフォルトの名無しさん
08/04/04 19:59:16
途中で送信してしまいました。
また、代用となる関数、方法などありましたら教えてください。
90:デフォルトの名無しさん
08/04/04 20:12:08
GetLastErrorの戻り値は?
91:デフォルトの名無しさん
08/04/04 20:35:05
十中八九、アクセス権の問題だと思う。
92:デフォルトの名無しさん
08/04/04 20:46:58
EM_GETLINEを送ってもバッファに文字列が格納されないんですが、
int iLine = 1;
char buf[256]={0};
*(WORD *)buf = (WORD)sizeof(buf);
SendDlgItemMessage(hWnd,IDCEDIT,EM_GETLINE,(WPARAM)iLine,(LPARAM)buf);
93:デフォルトの名無しさん
08/04/04 21:00:48
SendDlgItemMessageの戻り値は?
94:デフォルトの名無しさん
08/04/04 21:36:47
>>93
戻り値はどうやって取得すればいいんですかね?
LRESULT er;
er = Send(ry;
こうですか?
95:デフォルトの名無しさん
08/04/04 21:45:52
MSDN見るなりググるなりヘッダファイルみるなりするナリよ
96:デフォルトの名無しさん
08/04/04 22:07:03
>>67
平気で嘘つくの辞めようぜ
97:デフォルトの名無しさん
08/04/04 22:12:37
>>95
GetLastErrorですか?
98:デフォルトの名無しさん
08/04/04 22:36:30
>>92
EM_GETLINEの説明を読め
99:デフォルトの名無しさん
08/04/04 22:50:28
>>98
WPARAMで行を指定
LPARAMでバッファを指定
バッファの先頭2byteはバッファサイズを入れておく
足りませんか?
100:デフォルトの名無しさん
08/04/04 23:11:52
1. SendDlgItemMessageがSendDlgItemMessageW
2. 対象Editの2行目に1文字も無い
101:デフォルトの名無しさん
08/04/05 00:17:58
>>86
どうせアイコンは小さいのだから、
あらかじめアイコンを5パターンくらい用意して、
Shell_NotifyIcon で切り換えればいいと思う。
102:デフォルトの名無しさん
08/04/05 00:19:42
それはタスクトレイの話じゃないのか?
タスクトレイなら動的にアイコンを描画してアイコン切り替えればいいだけだぜ。
103:デフォルトの名無しさん
08/04/05 01:05:25
タスクバー右クリック->ツールバー で一覧が出てくる
WMPやらGoogleデスクトップ検索みたいに表示したいってことか?
俺はやり方知らないけどググれば出てきそう
104:デフォルトの名無しさん
08/04/05 04:39:10
>>102
× タスクトレイ
○ 通知領域
Win32スレでそういう間違った名称使うのやめとけ
105:デフォルトの名無しさん
08/04/05 05:16:35
メディアプレイヤーのProgIDとインタフェイス名とID(IID_Xxxxみたいなの)教えてください。
CreateWindowとAtlAxGetControlを利用したいのです。
Win32じゃないかもしれないけどお願いします。
106:デフォルトの名無しさん
08/04/05 05:32:09
>>105
OLE/COM Object Viewer
107:デフォルトの名無しさん
08/04/05 05:33:00
帰れw
108:デフォルトの名無しさん
08/04/05 07:09:53
モマエら
よその国の人はどんどん進歩しているのに、日本人同士で足引っ張り合って
自滅するかも知れないと思ったことはないのか。
攻める先を取り違えるな。
109:デフォルトの名無しさん
08/04/05 07:41:03
>>104
つ Microsoft.com Japan サイトの検索
そこまで厳密にしなくてもいいんじゃね?と思った。
110:デフォルトの名無しさん
08/04/05 08:53:03
この件で誰を攻めるとか考えてる時点で終わりだ。
そんなのは無駄な時間だ。
111:デフォルトの名無しさん
08/04/05 09:31:06
アイコンが並んでいる部分はタスクバー上のタスクトレイの中の通知領域だよ
XPではWindows9xの頃とタスクバーの実装が変わっていてタスクトレイと呼べるのか微妙だけど
互換性の為かShell_TrayWndというクラスのWindowは存在している
112:デフォルトの名無しさん
08/04/05 09:36:37
トレイはTrayNotifyWndの方だな
このWindow構成を見るとタスクトレイというのは本来はタスクバー自体の事なのかもしれないな
113:デフォルトの名無しさん
08/04/05 10:10:35
タスクトレイは時計を含む領域だけど、
通知領域は時計は含まないってこと?
114:デフォルトの名無しさん
08/04/05 11:31:27
>>100
出来ませんでした。
115:デフォルトの名無しさん
08/04/05 11:34:10
>>100
自己解決しました。
116:デフォルトの名無しさん
08/04/05 11:42:46
このスレて寒いレスするバカが常駐してるよな
117:デフォルトの名無しさん
08/04/05 12:09:07
>>116
痛い質問して、期待した回答が得られなくて、逆恨み粘着だろうな。
118:デフォルトの名無しさん
08/04/05 12:14:02
>>117
とりあえず、答えればいいんだよバカが
119:デフォルトの名無しさん
08/04/05 12:15:59
>>118
お前みたいなスタンスの人は、
マイクロソフトの有償サポートを使えよ。
120:デフォルトの名無しさん
08/04/05 12:25:38
>>116=寒いレスするバカ
121:デフォルトの名無しさん
08/04/05 12:53:56
何でここの人はやさしさが無いんだろうな。ゆとりがたりないのか?
122:デフォルトの名無しさん
08/04/05 12:54:46
俺は普通に答え取るがな(´・ω・`)
123:デフォルトの名無しさん
08/04/05 12:56:40
>>121
優しさがないのは、約一名の粘着して荒らしている人だけ。
124:デフォルトの名無しさん
08/04/05 12:58:03
なんで仲良くできないの!あなたたちは!
125:デフォルトの名無しさん
08/04/05 13:00:47
あと、自分を正当化ばかりしてる人ってまぁ、リアルでも2chでも多いよな。
自信があるのはいいことだけどさ。
126:デフォルトの名無しさん
08/04/05 14:39:11
>>16のようなレスにいつまでも釣られるお前らの責任でもあるんだよ
2chのしきたりとか分かってない
127:デフォルトの名無しさん
08/04/05 14:58:55
言いたい事も言えないこんな世の中じゃ(ry
128:デフォルトの名無しさん
08/04/05 15:15:26
POISON!
129:デフォルトの名無しさん
08/04/05 15:16:50
>>108
モマエら
よその星の人はどんどん進歩しているのに、地球人同士で足引っ張り合って
自滅するかも知れないと思ったことはないのか。
攻める先を取り違えるな。
130:デフォルトの名無しさん
08/04/05 15:18:29
防衛省もUFO対策を論じるくらいだからやばいな
131:デフォルトの名無しさん
08/04/05 15:21:51
中華対策はしないのにな
132:デフォルトの名無しさん
08/04/05 16:19:36
スレを荒らすのヤメロ。
ちょっと自重しろ。
133:デフォルトの名無しさん
08/04/05 16:59:08
エクスプローラーのフォルダアイコンってどこから取ってくればええんでしょうか。
2kとxpで違ったりしますか?
134:デフォルトの名無しさん
08/04/05 17:19:24
>>133
マイクロソフトに「アイコンください」と言えばもらえるよ。
135:デフォルトの名無しさん
08/04/05 17:22:33
このスレの住人なら知っていますね、あの糞開発ツールのことを
・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる
糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
136:デフォルトの名無しさん
08/04/05 18:05:43
>>106
そういえばそんなのあったの思い出した
さんくす
137:デフォルトの名無しさん
08/04/05 19:57:39
ちなみにOLE/COM Object Viewerの使い方はこの本に載ってるよ
Visual C++プログラマのためのCOM入門
URLリンク(www.seshop.com)
138:デフォルトの名無しさん
08/04/05 23:05:09
MCI_OPEN_PARMS mop;
case WM_CREATE:
mop = MCIOPEN(filename , MCI_DEVTYPE_SEQUENCER, hWnd);
return 0;
case WM_KEYDOWN:
if(wp == VK_UP)
mciSendCommand(mop.wDeviceID , MCI_PLAY , MCI_NOTIFY , (DWORD)&mop);
else
mciSendCommand(mop.wDeviceID , MCI_STOP , 0 , 0);
return 0;
case MM_MCINOTIFY:
mciSendCommand(mop.wDeviceID , MCI_STOP , 0 , 0);
mciSendCommand(mop.wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,0);
mciSendCommand(mop.wDeviceID , MCI_PLAY , MCI_NOTIFY , (DWORD)&mop);
return 0;
}
上記のような、midiファイルを↑キーで再生、他のキーで停止、曲の最後まで行ったらまた初めからループするプログラムを作ったのですが、
↑以外のキーを押して曲を止めても、勝手に曲の初めから流れ始めます。
MCI_PLAYのMCI_NOTIFYを外してみると曲が止まったままにすることが出来たのですが、それだとループになりません。
ループするようにしたmidiを、停止することはできないのでしょうか?
139:デフォルトの名無しさん
08/04/05 23:07:19
>>138
MM_MCINOTIFYのwParam見れ
140:デフォルトの名無しさん
08/04/05 23:15:37
>>139
if(wp == MCI_NOTIFY_SUCCESSFUL) で、できました。
ありがとう。
>>139を見て MM_MCINOTIFY wparam でググったら出てきましたが、
こういう〜に〜が格納されるという情報はどこから仕入れているんですか?
141:デフォルトの名無しさん
08/04/05 23:20:24
>>140
URLリンク(www.google.com)
142:デフォルトの名無しさん
08/04/05 23:20:44
普通はMSDNだろう。
時々ウソ書いてるのと、オンライン版は重たいのが難点だが。
143:デフォルトの名無しさん
08/04/05 23:28:53
ありがとうございました。
英語勉強しないと;
144:デフォルトの名無しさん
08/04/06 08:47:55
ツールバーのボタンをクリックするごとに、そのボタンのアイコン画像が変化するようにしたいのです。
ツールバーを作成するときに
// hwndTB : ツールバーウィンドウ
HBITMAP hBMP = ::LoadBitmap(::GetModuleHandle(NULL), MAKEINTRESOURCE(ID_TOOLBARBMP));
HIMAGELIST hIL = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, NUM_TBICONS);
ImageList_AddMasked(hIL, hBMP, RGB(0, 255, 0));
::SendMessage(hwndTB, TB_SETBITMAPSIZE, 0, MAKELONG(16, 16));
::SendMessage(hwndTB, TB_SETIMAGELIST, NUM_TBICONS, (LPARAM)hIL);
のようにして、マスクつきの画像を使うことにしていまして
クリックのメッセージが飛んできたときに
// hwndTB : ツールバーウィンドウ
// iIcon : アイコンの番号
::SendMessage(hwndTB, TB_CHANGEBITMAP, ID_TBBUTTON1, MAKELPARAM(iIcon, 0));
を呼んでアイコンを変更しています。
XP ではこれで問題ないのですが、
Vista では、前の画像が消えなくて、その上に新しい画像を重ねたような表示になります。
(透過マスク付きなので、前の画像が上塗りされない)
何か使い方を間違えているのでしょうか?
145:デフォルトの名無しさん
08/04/06 10:40:31
VC6で自分のプログラムが組み込んだコンポーネントにキー入力を渡したくて
いろいろ試行錯誤してまつ。BasicでのSendKey的なイメージ。
ActiveXコントロールにtranslateAccellatorのメソッドがあったので、
以下のようなMSG構造体を作って引数として渡す方法で実験してみた。
message <= WM_KEYDOWN
wparam <= VK_RIGHT
するとActiveX Control側では、キーボードの現在の修飾キー状態を読み取ってしまい、
コントロールキーが押されてると、Ctrl+右ボタンになってしまう。
現在の修飾キーの状態にかかわらず、ActiveXに「右ボタン」だけを渡すには
どうすればいいですか?
146:デフォルトの名無しさん
08/04/06 10:43:13
SendInputでも使えば
147:デフォルトの名無しさん
08/04/06 13:20:24
CreateFileの最後の引数って(別に指定する必要が無い場合)NULLを指定するの?それともINVALID_HANDLE_VALUE??
148:デフォルトの名無しさん
08/04/06 13:24:19
>>147
NULL
149:デフォルトの名無しさん
08/04/06 15:14:51
なんでNULL(0)とINVALID_HANDLE_VALUE(-1)があるの?
150:デフォルトの名無しさん
08/04/06 15:18:17
MSの開発者がトンマか、喧嘩してたか、ハンドル0が有効な場合があるか、じゃね?
151:デフォルトの名無しさん
08/04/06 15:28:50
>>149
_lcreatとかの失敗時に-1を返すWin16の関数から
CreateFileへの移植を容易にするためだそう。
URLリンク(blogs.msdn.com)
152:デフォルトの名無しさん
08/04/06 15:40:23
無効な値が NULL か INVALID_HANDLE_VALUE かで型名を変えればいいのに。
同じ型に別名与えるだけでいいんだからさ。
153:デフォルトの名無しさん
08/04/06 16:04:33
>>152
そしたら、CloseHandleは?
154:デフォルトの名無しさん
08/04/06 18:39:45
Win32とかMFCって互換性に縛られすぎてて汚い
.NETFrameworkのクラスライブラリはVB6のソレを焼直した感があってこれまた中途半端
MSはもっと直感的で分かりやすく作れないものなの?
155:デフォルトの名無しさん
08/04/06 18:41:13
1からクリーンに作って普及したものってあまり聞かない気がする。
156:デフォルトの名無しさん
08/04/06 19:20:33
WPFはそこそこ
157:デフォルトの名無しさん
08/04/06 19:43:22
>>153
どっちも CloseHandle でいいじゃないか
WINAPI と APIENTRY と CALLBACK が同じものだったりする感じで。
158:デフォルトの名無しさん
08/04/06 20:29:48
PASCALは
159:デフォルトの名無しさん
08/04/06 21:31:27
Vistaのソースコードゲットした
すげーでけーよw
160:デフォルトの名無しさん
08/04/06 21:34:37
そういえばHalfLife2のソースどこいったっけ・・
161:デフォルトの名無しさん
08/04/06 21:40:39
俺が持ってる
162:デフォルトの名無しさん
08/04/06 21:42:20
俺も預かってやってる
163:デフォルトの名無しさん
08/04/06 22:02:23
XPとVistaのソースコードを手に入れたので、試しにXPにAeroGlassを移植してみた俺が来ましたよ
164:デフォルトの名無しさん
08/04/06 22:06:58
一人で移植できるような規模なのか
Microsoftは五年かかったのにな
165:デフォルトの名無しさん
08/04/06 22:16:43
>>163ならVistaのDirectSound HALを復活させられるに違いない。
とりあえずEAX2.0までのエミュレーションコードも入れといてね。
166:デフォルトの名無しさん
08/04/06 22:16:56
ぶっちゃけソースほしいわ
ReactOSとwineとカーネルデバッガから辿るのは結構しんどい
167:デフォルトの名無しさん
08/04/06 22:46:56
デバッグシンボルを落としてきてdumpbin /disasmでリバースエンジニアリングすればいい
ぶっちゃけこれで十分
168:デフォルトの名無しさん
08/04/06 23:22:15
フィルタドライバ作ったことあるひとがいれば教えて欲しいんだけど、
標準で定義されているハード情報取得するときのコントロールコード
をDeviceIoContorol()にわたして、そのときに返ってくる値を
フィルタドライバのなかでうその値に変換して戻せる?
169:デフォルトの名無しさん
08/04/06 23:26:51
日本語でおk
170:デフォルトの名無しさん
08/04/06 23:53:40
リバースエンジニアといえば
XP の CommandLineToArgvW は argv[argc] に NULL を格納しようとしてし忘れている感じがした記憶がある。
171:デフォルトの名無しさん
08/04/06 23:59:00
>>170
それはきっと前世の記憶だ。さぁ、今すぐMSに行ってバージョンアップしてきなさい。
172:デフォルトの名無しさん
08/04/07 00:02:54
>>170
2000のやつも忘れてた気がする
まあCランタイムの__argc/__targvを使うかUnderTheHoodのやつからパクってくればいいだろう
俺の場合リバースエンジニアして非公開APIを使いまくっていたソフトが
Vistaになって大多数の非公開APIが廃止されたせいでエラーが出て起動しなくなってて泣いた
173:デフォルトの名無しさん
08/04/07 00:18:52
そういうことになるから非公開なんじゃないのかw
174:デフォルトの名無しさん
08/04/07 00:23:46
>>146
即レスどうもありがとう!徹夜プログラムで確認中に寝落ちしますた。
でうまくいかなくてまだ確認中なんだけど、sendInputは、TranslateAccellalatorと違って、
送り先のコンポーネント(hWndなど)を指定することができない。これが原因と関係するのかなあと。
やっぱりWM_KEYDOWNのMSG構造体を作る当初方針でがんばるのが必要なのかな。
175:デフォルトの名無しさん
08/04/07 00:31:28
>>173
だってさ、95〜XPまで問題なく使えたんだぜ? いきなり廃止するとは思わないじゃない
でも互換モードでXPSP2にすると普通に動くあたりがMSらしい
きっと古いMS製品も動かなかったのだろうw
シンボル取ってきて見てみたらAPIの前にRETIRED_とか付いててワロタ
176:デフォルトの名無しさん
08/04/07 00:50:30
互換モードでやることの中には、古いファイルを使うなんてこともなかったっけ?
177:デフォルトの名無しさん
08/04/07 00:52:33
>>175
洒落が聞いてるなw
Vistaにするにあたって、整理したのかねぇ。
で、古い非公開APIは別の所にまとめたとか。
178:デフォルトの名無しさん
08/04/07 01:06:11
そういうスーパーハッカーみたいな技術はどうすればつくんですか
179:デフォルトの名無しさん
08/04/07 01:08:44
DLLを覗けばいいんじゃね
180:デフォルトの名無しさん
08/04/07 02:55:01
>>174
自己レスです。送り先指定がないので自アプリのトップへ送ると固定されてるのかなと思ってたけど
考えてみたら、XKeymacsみたく、外部アプリへキーボード入力を送り込むアプリもあるので、
そういう制限はないはず。なのでよくわからんが、Xkeymacsのソースを解析中。
そもそも単にキーボードカスタマイズの自由度を広げるためにやってたんだが、深みにはまりそうな予感してきたw
181:デフォルトの名無しさん
08/04/07 05:01:11
>>180
だれも気にしてないと思うけど、知識共有になるかもなので、うまくいったコードおば。
void Hander_For_Ctrl_F() {
MSG oMsg = { m_hWndObj, WM_KEYDOWN, VK_RIGHT, 0, 0, 0 };
BYTE cKeyStates0[ 256 ], cKeyStates[ 256 ];
ZeroMemory( (void *)cKeyStates0, 256 );
GetKeyboardState( cKeyStates );
SetKeyboardState( cKeyStates0 );
m_pAxObj->TranslateAccelerator( &oMsg ); <= 修飾なし右ボタンをActiveXへ
SetKeyboardState( cKeyStates );
}
ActiveXにそれ用のコマンドがなかったので、偽装キー入力で対応したんだが、
キーボードのEmuは奥が深い…。というか泥臭い。なんかあとからバグりそうねw
182:デフォルトの名無しさん
08/04/07 13:35:42
>>178
デペンデンシー・ウォーカー眺めてると楽しいよ。
183:デフォルトの名無しさん
08/04/07 14:13:12
指定のウィンドウにWM_DROPFILESを投げるとき、
DROPFILES構造体のために確保した領域は
投げてからすぐ解放してしまっていいのでしょうか?
サンプルを探したら、しているものといないものがあって
判断に迷います。
184:デフォルトの名無しさん
08/04/07 14:23:56
WM_DROPFILESそういう使い方をするもんではない
思うに、COMのOLED&Dと勘違いしてないか?
185:デフォルトの名無しさん
08/04/07 14:45:10
>184
では、ウィンドウにファイルをドロップするには何のメッセージを使えばいいのでしょうか?
186:デフォルトの名無しさん
08/04/07 14:54:03
>>183
別のプロセスに送るなら、すぐに解放しても構わないはず。
187:デフォルトの名無しさん
08/04/07 14:57:19
>>184
そういう使い方"も"出来る訳だが
知らないのか?
>>183
対象アプリがDragFinishで開放するからいらないんじゃないの?
188:デフォルトの名無しさん
08/04/07 15:03:09
知らないならレスしないでください
189:デフォルトの名無しさん
08/04/07 15:06:17
知ったか厨うぜえ
勘違いしてるのはお前だろw
190:デフォルトの名無しさん
08/04/07 15:08:19
誰が誰に言ってるのかも書いてクレヨン
191:デフォルトの名無しさん
08/04/07 15:11:50
とにかく知らないクズはレスしないでくださいよ。うざい
192:デフォルトの名無しさん
08/04/07 15:14:44
お前らレスアンカーぐらいつけろ
193:デフォルトの名無しさん
08/04/07 15:20:28
>>184
194:デフォルトの名無しさん
08/04/07 15:22:22
だから知らないならレスするなよクズ
195:デフォルトの名無しさん
08/04/07 15:29:08
また荒れてきたなあ
とりあえず>>184は切腹
196:デフォルトの名無しさん
08/04/07 15:29:44
>>184
197:デフォルトの名無しさん
08/04/07 15:29:49
>>195
荒らすなよお前
198:デフォルトの名無しさん
08/04/07 15:55:34
VistaでもWin16アプリって動くの?
199:デフォルトの名無しさん
08/04/07 15:58:41
>>お前らへ
>>121
200:デフォルトの名無しさん
08/04/07 15:58:50
>>198
空気読めよ
201:デフォルトの名無しさん
08/04/07 16:18:02
オマエモナー
202:デフォルトの名無しさん
08/04/07 16:34:38
これまた懐かしい
203:デフォルトの名無しさん
08/04/07 16:45:32
(・∀・)ジサクジエンデシタ
204:デフォルトの名無しさん
08/04/07 16:46:45
もう、ぬるぽ
205:デフォルトの名無しさん
08/04/07 16:56:24
わっしょいわっしょい
206:デフォルトの名無しさん
08/04/07 17:51:02
ファイル又はメモリ内のデータを圧縮するAPIと解除するAPIを教えてください
207:デフォルトの名無しさん
08/04/07 18:21:58
zlib
208:デフォルトの名無しさん
08/04/07 18:54:51
cabinet.dllの簡単な使い方を教えてくださいよ
209:デフォルトの名無しさん
08/04/07 18:59:14
知らないならレスしないでください に一致する日本語のページ 約 141,000 件中 1 - 100 件目 (0.69 秒)
210:デフォルトの名無しさん
08/04/07 19:05:07
>>206
RtlCompressBuffer / RtlDecompressBuffer
211:デフォルトの名無しさん
08/04/07 19:14:15
>>209
お前>>184だろ
知らない癖に主観で嘘を書いたら叩かれて当然
そんな当然の事も分からず被害者ヅラするぐらいなら最初から書くな
212:デフォルトの名無しさん
08/04/07 19:16:36
>>210
すんません、それぐぐっても悲しいくらいにヒットしないんですが
それって簡単なんですか?
213:デフォルトの名無しさん
08/04/07 19:28:22
>>212
あるじゃんwww
しっかり検索しようよ
URLリンク(undocumented.ntinternals.net)
214:デフォルトの名無しさん
08/04/07 19:33:02
>>213
あ、これは失礼しますた。
WEB全体からぐぐるとある程度でてきました。
215:デフォルトの名無しさん
08/04/07 19:45:25
>>214
∧∧
ヽ(・ω・)ノ ズコー
\( \ ノ
、ハ,、  ̄
 ̄
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4968日前に更新/111 KB
担当:undef