[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 09/26 11:03 / Filesize : 178 KB / Number-of Response : 859
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build85



1 名前:デフォルトの名無しさん mailto:sage [2010/01/02(土) 20:07:21 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build84
pc12.2ch.net/test/read.cgi/tech/1259478896/

89 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 12:59:50 ]
>>88
お前来ると荒れるから出てくんなよクズ

90 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 13:10:12 ]
すみません。ISAPIフィルタの質問ってここでよいでしょうか?

91 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 13:31:41 ]
>>88
モーダルループ中だろうと、ちゃんとメッセージは処理されるが?
自分が勘違いしてるだけなのに顔真っ赤にして怒ってるのは、傍から見てて恥ずかしい。

92 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 18:37:57 ]
モーダルでも一階層もぐった再帰状態でメッセージは処理される。
おそらく親ウインドウが入力を受け付けないので勘違いしている可能性が高いが、
単純に入力関連メッセージが無効になっているだけで、その他のメッセージは処理される。
たとえば親ウインドウに重なっているオブジェクトを動かせば、
きちんと親ウインドウ側にWM_PAINTが渡り再描画される。
もしこれがないと、モーダルを使った親ウインドウは描画がおかしくなる。

という話をすればいいだけで、いちいち煽り文句を入れないと発言できない意味が分からない。

93 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 19:27:36 ]
>>90
ISAPIフィルタならATLかMFCスレじゃないか?

94 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 21:58:12 ]
モーダルループ中ではちゃんとメッセージがディスパッチされるとは限らない
どのメッセージがディスパッチされる・されないかはモーダルループの実装に拠る

95 名前:デフォルトの名無しさん mailto:sage [2010/01/05(火) 22:26:19 ]
>>92
モーダルダイアログとモーダルループを混同してる気がする。

> 親ウインドウが入力を受け付けない
これはDialogBoxやMessageBoxがモーダルダイアログを表示する直前に
親ウインドウをEnableWindow(FALSE)しているが故の動作であって
モーダルループ云々とは別の話。

96 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 07:03:22 ]
親ウインドウをそのままにしたらモーダルループとは呼べないと思うんだけど、
そうなるとモーダルループの定義をはっきりさせないと。

97 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 07:28:52 ]
モーダルループの定義はMSDNにしっかりと書いてあるんだけどねぇ



98 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 07:30:48 ]
モーダルループを理解しようとしない馬鹿がいる限り
水掛け論はどこまでも続く

99 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 07:43:49 ]
自分の見解を述べない限り、誰にも自分の意見は伝わらないよ。

100 名前:デフォルトの名無しさん [2010/01/06(水) 07:57:26 ]
msdnすら探さない馬鹿は死ね

101 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 08:00:09 ]
すみません教えてください。

マウスで選択状態になっているファイル名を取得したいのですが、
取得したつもりのファイル名が "□!!" と文字化けしてしまいます。
---

HWND hWnd = GetForegroundWindow();
EnumChildWindows( hWnd, EnumChildProc, 0 );
int count = ListView_GetSelectedCount(phWnd);
char A[512];
int index = -1;
while( (index = ListView_GetNextItem(phWnd,index,LVIS_SELECTED)) != -1 ) {
ListView_GetItemText(phWnd, index, 0, A, sizeof(A) );
MessageBox(NULL, A, "TEST", MB_OK);
}

---
phWndにはEnumChildProcでSysListView32のハンドルが入っています。
よろしくお願いします。

102 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 08:01:35 ]
どうせ他プロセスとかそういうオチだろ

103 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 08:56:20 ]
>>101
ターゲットプロセス用のメモリを確保して、そのポインタを渡し、
受け取ったら自分のプロセスに側に読み出す。

104 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 09:03:50 ]
phWnd が HWND* 型で SendMessage に失敗してるんじゃね?

105 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 09:08:20 ]
まずは戻り値を調べて何のエラーなのかを確認するところから。

106 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 09:17:18 ]
後出し情報で申し訳ないですが、
 ListView_GetSelectedCount(phWnd);
で選択状態のファイル数は正しく取得出来ているようです。

107 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 09:22:12 ]
>>105
ListView_GetNextItem() の戻りは整数値(index)が入っていました
ListView_GetItemText() の戻りはvoid



108 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 09:51:16 ]
ターゲットは同一プロセスなのかというところに回答がないんだけど?

109 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 10:05:14 ]
該当プロセスに侵入してもLVS_OWNERDATAスタイルが付いていれば上手くいく保証がない

110 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 10:20:53 ]
シェルのリストビューならIShellViewやIFolderViewで取得できる

111 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 11:07:08 ]
>>109
誰もそんな話はしていないよ。
まずはプロセスが別なのかどうかを確定してから。
話の流れを読もうよ。

112 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 11:18:10 ]
ただ煽りたいだけの基地外はお引き取りください。

113 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 11:31:56 ]
スクリーンセーバーを作ってるんですが、HDDのスピンドルを停めるAPIを教えてください。
電源の管理の中にあるやつは選択できる時間が限られているので、自分で停めたいんです。
対応OSはXP Home以降です。

114 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 11:42:32 ]
電源管理系のAPIをあたってみたら?

115 名前:101 mailto:sage [2010/01/06(水) 16:34:57 ]
御返事遅くなりまして申し訳ありません。

デスクトップやエクスプローラ等で選択した状態のファイル名を
自作アプリ側で取得したいので、別プロセスとなります。

別プロセスでも、ListView_GetSelectedCount(phWnd) で選択ファイル数が
取得出来ていたので、ファイル名も取得できるかと思っていたのですが、
できないのでしょうか。

116 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 16:50:24 ]
>>115
すでに>>103に回答が書かれている。

117 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 16:55:31 ]
数値はもらってもそのまま使えるが
文字列はアドレスをもらうんだから、他のプロセスのアドレスだけもらって
そこを読もうとしたって自分のプロセス空間のアドレスだから、そこに文字列は存在しない。



118 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 17:09:21 ]
WM_SETTEXTとかだとプロセス跨げるから初心者は勘違いすんのかもね

119 名前:デフォルトの名無しさん mailto:sage [2010/01/06(水) 22:10:12 ]
phWnd
sizeof(A)

てか、これを何とかしろw

120 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 05:02:38 ]
>>119
そんなことは本質じゃない

121 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 05:08:14 ]
そんなことも本質だ

122 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 05:17:01 ]
本質というかWin32の基本

123 名前:101 mailto:sage [2010/01/07(木) 07:46:56 ]
あまり理解出来ませんでしたが、>>103 の内容勉強してきます。
みなさんレスありがとうございました。


124 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 08:11:46 ]
これでも見れ勉強しとけ
www.yoshibaworks.com/ayacy/inasoft/lv2csv/lvcsvcom/chapter1.html

125 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 09:03:20 ]
直後の>>102-103で解決してる話題を引っ張るなよ

126 名前:101 mailto:sage [2010/01/07(木) 11:39:31 ]
>>124
ありがとうございます。私が考えていたことがNG例で
ガッツリ書いてありました。とても勉強になりました。

127 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 16:15:45 ]
Ctrl+Wでウィンドウを閉じたりすることがありますけど
これってなにかメッセージが割り当てられているのでしょうか?




128 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 16:18:51 ]
板違い

129 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 17:03:08 ]
板違いってレベルじゃねえぞ!気違いだ!

130 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 17:13:21 ]
……。

131 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:35:00 ]
質問です。
WinMainで始まるメインスレッドのスレッド優先度を変えたいのですが、
スレッドIDがわからないためSetThreadPriorityが使えません。
メインスレッドの優先度を変える方法はないでしょうか?

別スレッド(_beginthreadで作った)描画スレッドが重くなった時に、ウインドウメッセージの処理が重くなってしまうようで困っておりまして。
ウインドウメッセージで通信内容を受け取っているのですが、描画スレッドが重くなると通信を受け取ることができず…。(数秒後に一気に受信される。この数秒遅延が困るケースなのです)

132 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:42:34 ]
>>131
スレッドIDとスレッドハンドルは全く別のものだが、スレッドIDが知りたいの?
スレッドIDならGetCurrentThreadId、ハンドルならGetCurrentThreadで取得できる。

133 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:47:36 ]
GetWindowThreadProcessIdもあるな

134 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:50:24 ]
すいません、読み間違えていました。
SetThreadPriorityを使うのには、スレッドハンドルが必要なようです

135 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 20:53:44 ]
別スレッドを優先度下げて実行すればいいんじゃね?

136 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 21:00:38 ]
OpenThreadでどうだ

137 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 21:55:51 ]
通信側を、優先度を上げた別スレッドでやった方が良いような……



138 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:09:22 ]
左上のアイコンででてくるシステムメニューが表示中はウィンドウの更新が
止まるんですが、なんとかなりませんか?

139 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:32:30 ]
全然止まらないが?

140 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:35:06 ]
そうですか。システムメニュー表示中もソケットからのデータ受けて
画面更新してるはずなんですが、何か間違えてるかな。

141 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 22:45:28 ]
メニュー表示中はモーダルループだから作り方によっては止まる事もある。

142 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:26:03 ]
はじめまして、C#板より誘導されました。
指定したレジストリの値を読み書きされるのを検知するためのAPIはありますか?
もしくは、そのレジストリの書き込みを防ぎたいのですが、何か方法はありませんか?

143 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:30:06 ]
C#スレと同じ回答
APIフック

144 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:33:13 ]
スレ違い
C#スレへ

145 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:34:14 ]
権限奪っちゃえば、誰も書き込めないよ。

146 名前:デフォルトの名無しさん mailto:sage [2010/01/07(木) 23:34:23 ]
C#板ってどこ?

147 名前:デフォルトの名無しさん [2010/01/09(土) 00:36:34 ]
SHFileOperation() を使ってコピーや移動をしていますが、
途中でキャンセルしたり、エラーが出てストップして終わった場合など
とにかく正常終了した場合以外は、ゼロ以外が返ってくるとありがたい
のですが、その辺を細かく知ることはできるでしょうか。
(今はキャンセルしてもゼロが返ってきているようなのです)



148 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 00:41:54 ]
>>147
fAnyOperationsAbortedは?

149 名前:147 [2010/01/09(土) 00:48:32 ]
>>148
あー、そういうフラグを使うのですか!わかりました。やってみます!
ありがとうございました!!助かりました。

150 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 01:54:25 ]
>>128
>>129
あなたたちは本当に馬鹿ですね。アクセラレータはWin32の機能ですよ。

151 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 04:21:57 ]
アプリ固有なアクセラレータキーについての質問はスレ違いです

152 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 09:50:36 ]
ctrl-wでアプリケーションを閉じる機能の実装方法に関して聞いていると思
われるので板違いではない。
そして、アクセラレータ使えと回答が出ている。いつまで引っ張るんだ?

153 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:03:11 ]
いつまで引っ張るって

>>128-129で完結したのを>>150の馬鹿が引っ張っただけだろ

154 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:13:17 ]
>>153
つまり、お前が乏しい想像力で質問妨害をした張本人(>>128)という事だな。

155 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:17:17 ]
一、 APIを使った開発中に出てきた質問ではないのでスレ違い。
二、 「○×(ソフト)の△□(機能)はどうやって実現しているのですか」という質問は
   そのソフトのスレか作者に直接訊けば良い。よって板違い。

156 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:18:14 ]
>>127=>>150=>>153
誰も教えてくれなかったので自分で調べたんですね^^

157 名前:156 mailto:sage [2010/01/09(土) 11:19:28 ]
訂正
× >>127=>>150=>>153
>>127=>>150=>>154



158 名前:デフォルトの名無しさん [2010/01/09(土) 11:25:16 ]
質問です。
モードレスダイアログの場合は、Enterキーを押したときに
DEFPUSHBUTTONが機能しないのだけど、
これを機能させるにはどうすればいいでしょうか?

159 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:27:10 ]
メッセージなんてspy++見りゃ分かる
自分で調べもしないで質問する基地外にまともに答えてくれる人間なんているわけないでしょ
特にここは性格の悪い人が集まってるからな

160 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:35:55 ]
>>158
IsDialogMessageを呼び出し忘れていないか?
ダイアログ固有のメッセージ処理はこれを呼ばないと実行されないぞ。

161 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:38:32 ]
>>155
APIを使った開発中に、他のプログラムの挙動を模倣したくなったのかもしれない。
MSが使っているからCTRL-Wで閉じるプログラムは沢山ある => 何か標準的なAPIがあるかもしれない。

質問妨害やめろ。クズ。

162 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:41:48 ]
Spy++でチェックしてから質問しろ。クズ。

163 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:45:02 ]
ローカルルールにさえ無い事を強要するな。クズ。

164 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:45:35 ]
調べてから質問しなかったキミが悪いんだからもう諦めろ

165 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:47:35 ]
はぁ? オレは質問者じゃないが…
質問や議論を妨害するクズは死ね。

166 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:51:00 ]
質問者本人じゃないならなぜ馬鹿な質問者の肩を持つんだ?
スレ住人に難癖付けるのが目的のキチガイか?

167 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:52:24 ]
質問妨害を目的に住み着いているのは住人とは言わない。ただのクズだ。



168 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:53:06 ]
スレ違いの質問に妨害も何もないでしょ

169 名前:デフォルトの名無しさん [2010/01/09(土) 11:54:31 ]
>>160
ありがとうございます

170 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:56:56 ]
質問妨害を目的に住み着いている張本人が一体何を言ってるんだ?

171 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:58:47 ]
難癖厨はスルーで

172 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 11:59:17 ]
質問妨害を正当化するな。クズ。

> ctrl-wでアプリケーションを閉じる機能の実装方法
ぜんぜんスレ違いじゃない。

173 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:01:09 ]
> ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
調べずに質問するのはスレ違いですよ

174 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:06:51 ]
検索してない事なんてわからないし、例え検索してなくてもローカルルールに
抵触したのであって、スレ違いじゃ無いね。
詭弁を弄しても、スレ違いじゃない質問をお前が妨害した事は覆せないよ。
消えろ、クズ。

175 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:07:30 ]
顔真っ赤ですよ

176 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:10:42 ]
また必死なキチガイか
リアルで嫌な事でもあったの?w

177 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:11:55 ]
そうやってお前らが構うから調子に乗るんだろ



178 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:18:33 ]
>>175
IDでなくても自演はミエミエ。死ね。クズ。

179 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:25:40 ]
ローカルルールに反したらスレ違い・板違いですよ
分かったら二度と来ないで下さいねクズ^^

180 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:27:13 ]
ローカルルールに反して、検索しなかった事を立証しなさい。
死ねよ。クズ。

181 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:28:35 ]
>>127=>>180
君が立証すれば?

182 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:35:22 ]
>>181
「調べて出直せ」とか言うべきでしたね。w でも後の祭り。
お前がスレ違いだといって議論妨害して事実はひっくり返せない。

183 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:42:16 ]
二日経ってからわざわざ質問妨害されたとか書いてるのが
検索していなかった証拠じゃないか。

184 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:45:20 ]
つまり、二日前は検索していなかった事もわからずに妨害したと言う事だね。
死ねよ。クズ。

185 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:47:38 ]
何かメッセージはあるか、なんてちゃんと検索していれば出ない表現だから。

186 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:49:39 ]
2日かかってアクセラレータキーを知って自分を叩いた連中に一矢報いたくなったのがバレバレ
痛々しい奴だなぁ

187 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:50:11 ]
万人が2chに毎日張り付いていると思うなよ。



188 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:51:21 ]
で、結局アクセラレータは板違いじゃなかったわけだよな。

189 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 12:52:01 ]
「ちゃんと検索しろ」はローカルルールにはないな。
ローカルルール捏造するなよ。クズ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef