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


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

Win32API質問箱 Build81



1 名前:デフォルトの名無しさん [2009/08/02(日) 00:20:49 ]
スレ立てるまでもない、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質問箱 Build80
pc12.2ch.net/test/read.cgi/tech/1244057140/l50

341 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:35:39 ]
>>340
そうだよ。ファイルシステムに存在しないものに対して使うと失敗すると解説されているとおり。
msdn.microsoft.com/en-us/library/bb762194.aspx

342 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:43:15 ]
>>341
有難う!
コントロールパネルそれぞれのパスが欲しいんだけど、ITEMIDLISTからは無理か
良い解決策ないかな?

343 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:00:21 ]
コントロールパネルの項目って実体があるとは限らないから無理じゃないの?
まあ大抵はsystem32\*.cplだろうけど

344 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:06:17 ]
コンパネはいじったことないがあるとすればレジストリかなぁ
レジストリ用のSHGetFolderPathみたいなのがあればなぁ・・・

345 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:38:08 ]
つーかパスなんか取得して何をするつもりなの?

346 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:02:36 ]
>>343
やっぱり今の手法じゃ無理かな…
管理ツールとか、只そのカテゴリ分けされてるだけだしね

>>344
コントロールパネルもdllだから、GetProcAddressから内部情報を取得する方法があるんだけど
どうやらこれは任意らしいので、必ずしも情報を返さないんだよね…
調べると大部分がレジストリで管理とのこと

>>345
只起動するだけなら、ITEMIDLISTからで大丈夫だけど
今は*.cplを取得して、それぞれのcplの場所が知りたいの

347 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:53:21 ]
だったらsystem32\*.cplを片っ端からLoadLibrary→GetProcAddress("CPlApplet")で調べればいいだろ

348 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:00:44 ]
>>347
それは試したよ。片っ端からCPL_NEWINQUIREで情報貰おうとしても
プログラムの追加と削除”とかのコメントが取得出来ない
調べると、CPL_NEWINQUIREで情報取る仕様のはずが、殆どがレジストリ管理とのこと

349 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:15:26 ]
そいつはレジストリ側に登録されるタイプだからだろ。



350 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:26:47 ]
コントロールパネルの実体がcplとは限らないのに、
cplの場所が知りたいとか矛盾してないか?

351 名前:デフォルトの名無しさん [2009/08/20(木) 22:43:33 ]
質問お願いします

ChooseFontのフックプロシージャに適用ボタンを押したときの処理を書いてますが
サイズコンボボックスの値が999を超える場合の処理を
以下のように書いてみましたが


SendDlgItemMessage(hDlg, cmb3, WM_GETTEXT, sizeof(TCHAR) * 6, (LPARAM)FontSizeText);
if(wcstoul(FontSizeText, NULL, 0) > 999) //サイズコンボボックスの値が999を超える場合
{
MessageBox(hDlg, L"サイズには 0 から 999 ポイントを指定してください。", L"フォントの設定", MB_OK | MB_ICONINFORMATION);
}


これは例えばSendMessage(hDlg, WM_CHOOSEFONT_GETLOGFONT, NULL, (LPARAM)&Font)みたいに
SendMessageでメッセージを送信して一発で出来るメッセージは何かありますか?
(ChooseFont構造体のnSizeMaxメンバに999を設定済み)

352 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:46:28 ]
そんな事より sizeof(TCHAR) * 6 は間違いだろ

353 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:19:23 ]
>>352
すいません、まだC言語とWin32APIを始めて半年ちょっとの初心者なので
(TCHAR FontSizeText[6](サイズコンボボックスの最大文字数が5文字の為))
と宣言したので(sizeof(TCHAR) * 6)としてしまいました
模範的な方法はどうしたらいいですか?

354 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:13:48 ]
WM_GETTEXTLENGTH の戻り値を使う。

355 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:23:37 ]
そしてGetDlgItemIntのことも思い出してやってください
え、サイズは0.5ポイント単位で入れられる? いいんだよ細けぇことは

356 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 03:54:07 ]
Vistaで自プロセスが昇格しているかしていないかを取得するにはどうしたら良いのでしょうか
ご指導のほどお願いします

357 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 04:18:00 ]
GetTokenInformationでTokenElevationTypeかTokenElevation

358 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 04:57:21 ]
>>357
なんとかなりました
こんな夜中にありがとうございました

359 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 06:05:22 ]
IsUserAnAdminじゃ駄目なの?



360 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:07:11 ]
ダメ

361 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:29:16 ]
駄目じゃないだろ

362 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:35:01 ]
UACがONの状態でProgram Files配下のファイルを書き換えても
VirtualStoreにリダイレクトされていないようなのですが
Windows 7からUACの挙動は変わったのでしょうか?
エクスプローラに"互換性ファイル"ボタンも表示されません。
けどなぜか新しくファイルを作成するのには失敗するんです・・・

363 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:27:25 ]
ハァ?

364 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 12:29:23 ]
>>362
そのプログラムにマニフェストがついているのでは?
例えUAC関連の記述がなかったとしても、マニフェストがあると
UAC対応済みとして扱われ、仮想化が働くなる。

365 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:02:31 ]
64bitじゃないの?

366 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:53:04 ]
VisualStudioが自動的にUAC関連のマニフェストを組み込んでいたみたいです
おさわがせしました

367 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 23:10:06 ]
>>354
ありがとうございます、3文字以内に制限する方法があったんですね

>>355
そんな便利な関数知りませんでした、500ポイント以内とかにする場合にいいですね
細かい事は気にせず使ってみたいと思います、ありがとうございました

368 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 23:23:04 ]
そういえばWM_GETTEXTLENGTHで0x10000000とか返してくるソフトがあったな

369 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 23:27:19 ]
アバウトな・・・



370 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 23:59:23 ]
WM_GETTEXTLENGTHで0x7fffffff以上の値を返すコントロールを仕込んでおけば脆弱なソフトを落とせそうだw

↓こういうの
int len = SendMessage(hwnd,WM_GETTEXTLENGTH,0,0)+1;
LPWSTR buffer = malloc(len*sizeof(wchar_t));

371 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:35:03 ]
やるなよ
絶対やるなよ

372 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:08:08 ]
WM_TIMERからTrackPopupMeueを呼ぶと
表示したポップアップメニューの関係無い所をクリックしても
ポップアップメニューが消えないんだが
マウスフックを使わずにポップアップメニューを消す方法ないかな?

373 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 00:36:42 ]
試したところ普通に消えたぞ
消してもWM_TIMERがまた送られたら表示されるが

374 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 01:17:05 ]
Windows7で試したのだが、
ポップアップ表示前に他アプリのウィンドウをアクティブにしておくと、
表示後はポップアップのメニュー項目をクリックするか、
親アプリをクリックしない限り消えない。

GetForegroundWindowが自アプリでなけれぱ表示しない、
とかの消極的な解決方法しか思いつかないな。

375 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 01:51:42 ]
>ポップアップ表示前に他アプリのウィンドウをアクティブにしておくと、
>表示後はポップアップのメニュー項目をクリックするか、
>親アプリをクリックしない限り消えない。
なるほど、そういうことか
こっちvistaだけど同じようになったわ
ようは、他アプリのウインドウ上でメニューが表示されたらまずいわけか

これは難しいね
確かにマウスフックして、親アプリのスレッドからEndMenuを呼び出すしかなそう

376 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 03:36:58 ]
aho hakken

377 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 09:06:46 ]
DirectInputでも出来るらしいが、それならフックした方が簡単
フック無しで消す方法は俺は知らない

378 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 10:38:50 ]
>>375
あるいは自アプリを強制的にフォアグラウンドにしてからメニューを出すかだろ。

379 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 13:10:59 ]
>>378
試してみたが駄目だった



380 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 15:28:33 ]
>ポップアップ表示前に他アプリのウィンドウをアクティブにしておくと、
>表示後はポップアップのメニュー項目をクリックするか、
>親アプリをクリックしない限り消えない。

こんなの常識だろ
通知領域でポップアップメニュー出したこと無いのか?

381 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 16:31:21 ]
キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。. .。.:*・゜゚・*!!

382 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 18:30:52 ]
>>380
アフォ発見w

383 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:18:20 ]
>>379
Win98以降、単にSetForegroundWindowを使っただけでは
フォアグラウンドウィンドウにならない場合があるが、それも考慮済み?

384 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:27:35 ]
>>382
アフォはお前だよw

385 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 19:38:25 ]
WM_TIMERでポップアップメニューとかどんなウイルスだよw

386 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:02:28 ]
そんな事よりexplorerが落ちた後ちゃんと
通知領域に復帰するように作っとけよ

387 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:06:53 ]
>>383
それは知らなかった
確実にフォアグラウンドする方法ってまた別にあるの?

388 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:11:55 ]
MSがするなって言ってんだよ

389 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:47:40 ]
Win95の頃は、皆が好き勝手にフォアグラウンド化しようとして
えらい事になっていたからなあ。
あまりの鬱陶しさにユーザーが切れた結果、Win98以降でこうなった。



390 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:50:07 ]
>>386
explorerが面倒見ろっつーの
なんでポンコツなシェルの尻拭いをアプリ側がせにゃならんのだ

391 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:56:03 ]
>>389
想像で物を語るな

392 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:00:22 ]
>>391
では真実を教えてたもれ。

393 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:17:01 ]
むかしむかし、Win98がまだベータ版だった時代のお話。
Win98はWin95に比べて多くのコードを書き直したため、
SetForegroundWindowでフォアグラウンドできないという
バグが混入してしまった。
しかし、今からこのバグを修正するにはスケジュールが
間に合わなくなるという事態が発覚。
ただでさえ、Win97を出すつもりが延期してしまっている。
もうこれ以上の延期は許されない。
散々悩んだ挙句、開発チームの出した結論は
「仕様ということにして何とかユーザーに納得してもらう」
だった。で、社内で尤もらしい言い訳を公募して採用されたのが

「好き勝手にフォアグラウンドしてはいけません。だから、・・・できません!」

394 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:29:29 ]
>>393
想像で物を語るな

395 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:43:49 ]
妄想には妄想で返せってこった

396 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:53:46 ]
>>389 って事実だろ。漏れMSの中の人に同じこと聞いたことあるお。

397 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:07:44 ]
自己フォロー乙

398 名前:デフォルトの名無しさん [2009/08/24(月) 01:09:42 ]
>>397
事実じゃないって事?

399 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:29:05 ]
Win98/2000の頃のMSDNライブラリを持ってくれば、
ユーザーフィードバックを理由に変更した事の旨が書かれているんだろうけど。
流石に10年近く昔の話だしなあ。
そもそも、Win95/NT4まで好き放題できていた事実自体、どれだけ知っている人がいるのやら。



400 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:42:20 ]
>>399
書かれてない。嘘はつかないように

401 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 01:53:50 ]
>>399
おっさんの妄想乙

402 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:10:21 ]
>>380
これ、英語版MSDNにはちゃんと書いてあるんだが日本語版にはないんだよな。
msdn.microsoft.com/en-us/library/ms648002.aspx

403 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:26:10 ]
explorerが落ちたことを検知するにはポーリングするしかないの?

404 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:30:30 ]
なんのために?

405 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:50:07 ]
>>403
通知が来る

406 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 10:46:40 ]
落ちたことを検知する方法なんて無いでしょ

407 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 10:51:58 ]
ログオフなどによる正常な終了と落ちたことを区別するのは困難だな

408 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:42:20 ]
>>404
>>386
タスクマネージャー消失が地味に困る

409 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:55:43 ]
>>408
それはexplorerが落ちたときにどうするつもりなの?
普通は再起動時に何とかするもんじゃないかね。
TaskbarCreated を RegisterWindowMessageして通知来たら再登録でいいじゃない。



410 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:14:57 ]
GetOpenFileNameでファイル選択ダイアログを開くと
選択したファイルを右クリックしても、ポップアップメニューが表示されない事があるんだが
これはどういう場合に発生する?

411 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:48:06 ]
・シェルが落ちて再起動したらTaskbarCreatedを送ってあげるのでソフト側で対応しろ
・シェルが4秒以上ハングアップしてるとタイムアウトしてあげるので
APIが失敗した場合はLastErrorチェックしてソフト側で対応しろ

落ちたりハングアップしないシェルを作れよw

412 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:50:00 ]
いやユーザーが強制的に落とすこともできるし

413 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 15:19:01 ]
タスクバーのプロセスをシェルから分離して、フックなどの侵入を許さない設計にすればいいのにねぇ

ま、そうなるとTClock愛好者は困るだろうけどw

414 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 03:49:44 ]
case WM_TIMER:
hoge() ;
break ;

見たいな感じでsettimerでセットした時間で呼び出す関数hogeがあったとして
前回のhogeの実行が終わってない状態で時間が来てhogeが呼び出された
場合どういう風に処理されるんでしょうか?

415 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 03:55:41 ]
どうしてそういう心配をしないといけないのかさっぱりわからない

416 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 06:51:48 ]
メッセージのヘルプぐらい読めよとしか言いようがない。

417 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 09:45:31 ]
>>414
メッセージは1つずつ順番に処理される。
1回目のWM_TIMER呼び出しからreturnされていないのなら、その他のメッセージが処理されることはない。

ついでにいうと、hoge()が処理している間ウインドウを動かすメッセージとかも処理されないわけだから、
ウインドウが固まったようにユーザーは思うはず。
メッセージ処理の中であまり思い処理をやらないように

418 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:11:44 ]
WM_TIMER のなかで無限ループしてる人ときどき見かけるよね

419 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:43:24 ]
その場合はhogeが延々と呼び出され続けるのでプログラムがハングアップしてしまう
そこでメッセージ処理の中ではあまり重い処理をやらないようにしなければならない

初期のWindowsのころはハードウェアの処理能力が少なかったのでよくPCがフリーズしたが
最近は十分な処理能力があるので少々重い処理をしても大丈夫になった



420 名前:名無し学生 [2009/08/25(火) 10:56:43 ]
Visual Basic の課題で困っております。
誰かお答えください。本当に助けてください。

1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて

2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
  その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。

3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
  何故そのような制限があるかについて理由を答えよ
  1) 48 x 100 - 81
  2) 12 ÷ 9.3 x 247
  3) 0.2 - 12 ÷ 69
  4) -12 ÷ 100 + 100

421 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:06:23 ]
www.google.co.jp/search?hl=ja&source=hp&q=CStr()%E3%81%A8Str()%E3%81%AE%E9%81%95%E3%81%84&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=

422 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:54:10 ]
助ける訳ねーだろ
このスレには弱者蹴り落として喜ぶサドしかいねーよ

423 名前:デフォルトの名無しさん [2009/08/25(火) 11:56:18 ]
>>420
スレ違いしねくず

424 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:03:54 ]
>>419
ウィンドウプロシージャは10ミリ秒以内に処理を返せみたいな制限があったはず
今はどうだか知らないけど

425 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:17:58 ]
マルチポスト報告スレ
pc12.2ch.net/test/read.cgi/tech/1251165265/

ttp://pc12.2ch.net/test/read.cgi/tech/1225268851/688
ttp://pc12.2ch.net/test/read.cgi/tech/1158410544/183
ttp://pc12.2ch.net/test/read.cgi/tech/1245309571/793
ttp://pc12.2ch.net/test/read.cgi/tech/1136788500/388
ttp://pc12.2ch.net/test/read.cgi/tech/1200175247/601
ttp://pc12.2ch.net/test/read.cgi/tech/1249687283/408
ttp://pc12.2ch.net/test/read.cgi/tech/1239996587/711
ttp://pc12.2ch.net/test/read.cgi/tech/1248487404/279
ttp://pc12.2ch.net/test/read.cgi/tech/1193667819/60
ttp://pc12.2ch.net/test/read.cgi/tech/1164783092/937
ttp://pc12.2ch.net/test/read.cgi/tech/1206835319/963
ttp://pc12.2ch.net/test/read.cgi/tech/1247937958/547
ttp://pc12.2ch.net/test/read.cgi/tech/1247636661/861
ttp://pc12.2ch.net/test/read.cgi/tech/1249140049/420

426 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:20:22 ]
運営に報告すればいいだろ

427 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 13:59:18 ]
アプリケーション内でユニークなIDを発行するAPIはありますか?
インスタンス全てにIDを付けたいのですが・・・


428 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 14:05:33 ]
>>420
課題やってみた。

1.CStr は漢数字 (chinese string の略)、Str はアラビア数字。

2.
Function Func() As String
 Return "違い"
End Function
'確認
MessageBox.Show(Func())

"違い" と書かれたメッセージ ボックスが表示されることから、
関数 Func() において、戻り値の "違い" が確認できる。

3.
1) “約 4000”
2) “約 300”
3) “約 0”
4) “実行時エラー: -12 って何?おいしいの?”

以上から、Visual Basic の中の人は算数が苦手な小学生と考えられる。

429 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 14:05:37 ]
カウントしてけばいいだけ



430 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:50:08 ]
>>427
インスタンスのアドレスはユニーク。


431 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:54:55 ]
>>430
不要物を解放できなくないか

432 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:01:33 ]
ハァ?

433 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:06:47 ]
不要物って何だ

434 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:19:20 ]
老廃物にきまってるだろ

435 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:30:47 ]
nullpo

436 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:45:17 ]
>>417-419
丁寧にありがとうございます!
やっと今自分のプログラムで起きてることが
理解できました(^ω^;)

437 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:24:40 ]
>>427 uuidなんかどうよ

438 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:45:43 ]
だからそもそもインスタンス自体がユニークだろが

439 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:47:00 ]
アプリケーション内でって言ってんだからアドレスで十分だわ



440 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:00:18 ]
解放後に同じアドレスを割り当てられても問題が無いのか

441 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:01:49 ]
開放後もID持ち続けるとかどういうクソ構造だよ

442 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:42:53 ]
438-441
ワロタ

443 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:36:44 ]
笑う所なんて無いじゃん
頭おかしいのか?

444 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:38:01 ]
ユニークだからか?

445 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:53:26 ]
Vous ette original hahaha.

446 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:23:06 ]
UNICODEにも対応するプログラムを書くときに
文字列を受け取る処理を書くときって

TCHAR szBuffer[256];
sizeof(szBuffer) / sizeof(szBuffer[0])

ってやらないと駄目だよね?

UNICODEだと、szBufferはwchar_tだから、sizeof(szBuffer)だと512になるから
文字列を受け取るバッファサイズは512になるから、問題出てくるよね?

447 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:26:16 ]
>>440 そのアドレスをどこからも参照しなくなるから開放するわけで、仮に同じアドレスが割り当てられたとしても問題ない。
開放したアドレスの参照を持ち続けているほうが問題。

shared_ptrを使えばアドレスをオブジェクトを区別するユニークなIDとして使える。

448 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:29:36 ]
このスレ的にはshared_ptrよりむしろIUnknown継承+_comptr_t

449 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:01:26 ]
普段画面を隠して、マウスがある位置に来たら表示するようにしたくて

ShowWindow
SetForegroundWindow
SetFocus

を利用して表示してるんだが
中途半端な表示されてるのか
一度画面をクリックして完全にアクティブにしないと
フォーカスがセットされない

何かいい解決策ないかな?



450 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:44:28 ]
いい方法はない

悪い方法1
SPI_SETFOREGROUNDLOCKTIMEOUT
悪い方法2
グローバルフックなどのコードインジェクションでアクティブスレッドから無理矢理変更

451 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:54:48 ]
悪い方法3
AttachThreadInput

452 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:00:10 ]
>>450-451
悪い方法しかないのかw
一応一通り試してみるよ
有難う!

453 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 13:03:08 ]
>>452
いや、だって、普通に操作してるとき、唐突に他のウインドウがフォーカス奪ったら嫌じゃね?
しかも奪いっぱなしだったらさらに嫌じゃね?
だからできないようにできてるんだって。

454 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 13:07:54 ]
妄想で物を語る人が出てくる予感。

455 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:26:58 ]
というかそんなのウィルスだろ。

456 名前:デフォルトの名無しさん [2009/08/26(水) 14:32:05 ]
お前の脳みそがな

457 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:52:21 ]
MSDNの低帯域モードで表示がバグってるんだが俺だけ?
ttp://msdn.microsoft.com/en-us/library/bb773397(VS.85,loband).aspx

FirefoxどころかIEでもおかしいので困ってる。

458 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:54:24 ]
いや、バグってる確かに

459 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 15:36:01 ]
開発者ツールでつついて見たんだが、とりあえずユーザーCSSに↓を追加で回避できた。
div.libCScode { clear: none !important; }

IE8で互換表示をオンにすると崩れないのがワロスw
なんでIE6/7向けのCSSをIE8や火狐に送ってんだよwww



460 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 12:23:42 ]
>>435
ga

461 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 21:51:29 ]
>>212なんですが、重ねて質問します
Web上でのコードなどはGetDC(hwnd)などとして描画していて、wParamの値を使っていませんが
メッセージのwParamで渡されるハンドルは一体何に使えるんでしょうか

462 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:16:37 ]
クリッピングされていると書いてあるだろう。
いったい何が聞きたいんだ?

463 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:29:00 ]
そのFillRgnしたらずれた位置に描画が起こってしまうんですけど、
どういった領域をあらわしてるんでしょうか

464 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:31:25 ]
クライアント領域のDCを取得してるからだろ

465 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:43:25 ]
では>>212のページに書いてあるのとは違う方法でHDCを取得する必要があるということですか

466 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:49:51 ]
See also: GetWindowDCと書いてないか

467 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:46:00 ]
つーか非クライアント領域に描画するのは行儀が悪いからやめとけ。

468 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 09:22:38 ]
UNICODEでビルドしたらアプリってWin9x系でも動く?

469 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 11:29:51 ]
動かない
98の関数ってUnicode版は定義してあるだけの奴が多い
中身も実装されてるのはほとんど描画関係



470 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 11:37:13 ]
有難う
じゃあ一つのバイナリでANSIとUNICODEへの切替は無理か…

471 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 11:41:21 ]
LoadLibraryして自分で呼ぶ方切り替えればいけるんじゃね?糞面倒そうだが。

472 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 12:27:24 ]
サービスが作成した名前付パイプに,通常のプロセスから
CreateFile(L"\\\\.\\pipe\\pipename", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
とアクセスしたところ,アクセス拒否が帰ってきてCreateFileに失敗してしまいます
プロセスを管理者権限で起動すると,上記のCreateFileは成功します.
なんとか管理者権限で起動することなく,サービスのパイプに接続する方法はないでしょうか?
環境はVista SP2です.

473 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 12:34:08 ]
権限の違う奴にアクセスしようとしてるのだから当たり前の動作のような気がするがな

474 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 12:57:30 ]
SECURITY_ATTRIBUTEでアクセス権限を設定しないと駄目

475 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 15:48:46 ]
TextOut関数のテキスト表示座標には浮動小数点が与えられるにもかかわらず
DrawText関数はRECT構造体をあさんでいるため、浮動小数点での渡し方がわかりません。
どうすればよいのでしょうか?RECT構造体のメンバ(座標を表すLeft, Top, Right, Bottom)がintで定義されてしまっています。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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