- 1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
- Win32APIについての質問はこちらへどうぞ。
■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/
- 357 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 12:17:03.67 ID:Nq0thOwX.net]
- Shell_NotifyIconでないならこれのことかな
https://msdn.microsoft.com/en-us/library/windows/desktop/cc144099(v=vs.85).aspx
- 358 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:37:19.22 ID:386srHJg.net]
- >>353
情報ありがとうございます。やりたい内容と、ちょっと違います。 windows8.1/10とかだと、タスクバーが上か下にあるとき、タスクトレイの右側か左側にTrayNotifyWndに [IME]、[タッチパネル向けのキーボード]、[通知]などが表示されていますよね? それらの場所に、自作のアプリアイコンを作りたいのです。 スパイでみると、 通知 ハンドル 001016E キャプション 通知センター クラス TrayButton キーボード ハンドル 0010172 キャプション タッチキーボード クラス TIPBand IME ハンドル 0010156 キャプション 無し クラス Button となっています。 親ハンドルからたどってクラスを見るとTrayNotifyWndとなっています。 知りたいのは、SHAppBarMessageを使ったタスクバーみたいなウインドウではありません。
- 359 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:49:49.54 ID:386srHJg.net]
- googleの画像検索で googleimeとかってやると下のような画面がでますよね?
https://www.google.co.jp/search?q=googleime&biw=1280&bih=607&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwiZzey0zfDRAhUJbrwKHQ4dBuAQ_AUICCgD#imgrc=j130VRRhjR7jdM: TrayNotifyWndでにて、設定メニュをいじっているような画面のようなプログラムを作りたいのです。
- 360 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:52:18.95 ID:89UtyOev.net]
- Shell_NotifyIconで登録して、クリックされたらメニュー表示すればそれになる
- 361 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 14:17:43.87 ID:386srHJg.net]
- >>356
一般的な、Shell_NotifyIconでタスクトレイの登録ではないです。 タスクトレイの横に登録する手続きが知りたいのです。 mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。 comクラスとかでTrayNotifyWndに追加するような機能があるのかなぁ。。
- 362 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 14:36:09.97 ID:89UtyOev.net]
- すまん。通知領域はその右側か盲目だった
直接CreateWindowでぶらさげちゃうとかできないかな
- 363 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 15:53:49.61 ID:8dKrrq5G.net]
- IMEツールバーみたいにタスクトレイにドッキングしたいってこと?
- 364 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 16:11:08.48 ID:386srHJg.net]
- >>359
機能はIMEではないですが、そんなかんじです。
- 365 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 18:11:54.04 ID:gbCpBU15.net]
- TrayNotifyWndを親にしてCreateToolbarExで作ればいいんじゃないのかな
- 366 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 19:12:40.06 ID:qO0hDPsp.net]
- >>357
> mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。 ならそのソースを読めばいいんじゃね?
- 367 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 20:07:51.95 ID:Eu4e1EaI.net]
- >>362
多分ソースは言語バーのcomクラス呼び出しだけで、実際の実装はWindows側
- 368 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 23:04:33.49 ID:386srHJg.net]
- >>363
ざっくり調べたところ、おっしゃる通り言語バーのcom呼び出してるだけっぽかったです。 >>361 HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL); HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); hButton = CreateWindowEx(0,L"button",L"@",WS_CHILD | WS_VISIBLE,0,0,48,24,hTrayNotify,0,hInst,0); 一瞬ボタンが表示されて消えましたw 登録のさせ方がたぶん違いますよね。 TBBUTTON tbButton = { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 }; SendMessage(hTrayNotify, TB_ADDBUTTONS, 1, (LPARAM)&tbButton); なにも起こらず。。orz
- 369 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 23:11:43.26 ID:386srHJg.net]
- HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL);
HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); だと、タスクトレイの内部に描画されてました。 やりたいことと違う;;
- 370 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 01:27:36.38 ID:3xPmzf3n.net]
- >>364
親側をsubclassしてボタン用のエリア常に用意してないからじゃない?
- 371 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 09:17:19.56 ID:pF10NEzN.net]
- >>364
TrayNotifyWndが、もしツールバーのクラスを内部で保持してたら登録できるかなーと思いついての実験でした。。 ウインドクラスTrayNotifyWndにそんな機能はなかった。うまくいかないものですね。
- 372 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 09:34:28.94 ID:pF10NEzN.net]
- HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL);
HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); HWND hToolbarWindow32 = FindWindowEx(hTrayNotify, NULL, L"ToolbarWindow32", NULL); printf("handle %p %p %p ", hTaskBar, hTrayNotify, hToolbarWindow32); SendMessage(hToolbarWindow32, TB_ADDBUTTONS, 1, (LPARAM)&tbButton); 実験してだめだったコード。。こんな感じでした。ウインドハンドルは普通に取得は成功していたみたいなんですけどね〜
- 373 名前:デフォルトの名無しさん [2017/02/03(金) 11:42:55.01 ID:mwiWK7Ca.net]
- 指定したソフトが生きてるかフリーズしてるかを判断できるAPI教えてくださいよ
- 374 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 12:11:25.19 ID:oHw8NUL1.net]
- メッセージ投げて帰ってくるかどうか
- 375 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 13:01:49.10 ID:3xPmzf3n.net]
- >>368
>>364の上のコードでいいでしょ。あとはボタン用の領域作るだけでいけるよ i.imgur.com/26zlYcY.png
- 376 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:07:18.26 ID:pF10NEzN.net]
- >>371
その画像だと、ウインドウが、タスクトレイの位置にありませんか? タスクトレイの内部にアプリアイコンを作るのであれば、Shell_NotifyIconで登録すればいいだけです。 やりたいのは、その画像でいうと、時計の右横の通知領域の右にウインド領域を追加したいのです。
- 377 名前:デフォルトの名無しさん [2017/02/03(金) 14:11:00.00 ID:mwiWK7Ca.net]
- >>370
それだと帰ってこなかったら出した側も固まりませんか?
- 378 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:13:38.31 ID:oHw8NUL1.net]
- >>373
別スレッドからメッセージ投げて、メインでスレッド監視して待機時間オーバーしたかどうかで判定するとか
- 379 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:20:41.69 ID:mwiWK7Ca.net]
- >>374
なるほど。 メッセージ投げてから返答が帰るまでの待ち時間で判断するって事ですね。 ありがとうございます。さっそくやってみます。
- 380 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:22:20.52 ID:3xPmzf3n.net]
- >>372
タスクトレイの左側にある隠れたアイコンを表示するための ^ ボタンの上に作ったボタンが表示されてる ウインドウ表示位置だけの問題で期待してる通りだと思うよ i.imgur.com/dyVnefi.png >>373 無限ループで処理してるかもしれないから、生き死にの定義による
- 381 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:39:36.19 ID:Q4UhsfCm.net]
- >>375
IsHungAppWindow
- 382 名前:デフォルトの名無しさん [2017/02/03(金) 15:40:26.62 ID:mwiWK7Ca.net]
- >>376
今ターゲットソフトをwhile(1)で固めて 監視ソフトでPostMessageやGetWindowRectをしたら正常に帰ってきました。 while(1)だとウィンドウの移動もできたのでこれは死亡にはならないですね >>377 そんなのあったのですね、ありがとうございます試してみます
- 383 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 17:34:15.41 ID:Q4UhsfCm.net]
- >>378
PostMessageは相手の処理を待たないから当然。 GetWindowRectも相手のプロセスが情報を返すわけじゃないから当然。 その方法を試すならSendMessage。 >while(1)だとウィンドウの移動もできたので コンパイラの最適化によって(無意味な)無限ループが消されているかも。
- 384 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:01:24.26 ID:Q4UhsfCm.net]
- あと参考までに
SendMessageTimeout https://msdn.microsoft.com/ja-jp/library/cc411010.aspx
- 385 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:07:05.86 ID:mwiWK7Ca.net]
- >>379
失礼、PostMessageじゃなくてSendMessageでした。 while(1)はウィンドウは動かせますがフォーム自体は固まった状態でした(マウスカーソルがくるくるになります) IsHungAppWindowで指定間隔で数回みて連続でTRUEなら落ちてると判断できそうな感じでした しかしwhile(1)ではなく実際にどこかのDLL関数内で落ちてる場合とかにFindWindowでハンドルは取れるのでしょうか?
- 386 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:08:21.50 ID:mwiWK7Ca.net]
- >>380
こんな関数あったんですね・・・ これは良い情報を頂きましたありがとうございます
- 387 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 13:09:50.99 ID:koQjiQcQ.net]
- メッセージ投げといてタイムアウトしたらあとは知らないって
まるで鍵垢へのフォロリクか2ちゃんの独り言のようだ
- 388 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 13:21:18.26 ID:cCtqcbdk.net]
- ピンポーン 宅配便でーす お留守ですかー ピンポーン ピンポーン
- 389 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 15:21:09.56 ID:e9aNESBj.net]
- 帰りに台車を放り投げて荷物を蹴とばすんですね判ります
- 390 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 11:14:06.81 ID:bZw/U4Ow.net]
- 使い道が想像できない
- 391 名前:デフォルトの名無しさん [2017/02/05(日) 19:54:32.92 ID:ajRW1B46.net]
- GetWindowRectで得た値から計算して
MoveWindowに使うとズレるんですがこれは仕様なんですか? 例えばGetWindowRectで left=100 right=200 top=100 bottom=200 だったとして、これだと幅と高さが 101になるので MoveWindow(hwnd,100,100,101,101,TRUE) としたら幅と高さが1ドットずつ膨らんでしまいます
- 392 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 19:59:38.66 ID:lBwes1rb.net]
- WindowsAPIのRect系は右と下の1ドットは含まれないはずだったが
- 393 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:00:15.60 ID:Kv3SwlRy.net]
- ピクセルの左上の隙間の位置を返す仕様(Javaと同じ)
なので単純に差を出して指定しないと膨らむ
- 394 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:02:41.46 ID:wagcFIA6.net]
- >>387
画面DPI100%以外になってない?vista以降はそれ原因で従来のAPIの扱いが面倒になってる
- 395 名前:デフォルトの名無しさん [2017/02/05(日) 20:05:12.27 ID:ajRW1B46.net]
- MSDNを見ると
GetClientRectはleftとtopが常に0で rightとbottomには幅と高さが入ってくると書かれていて 事実その通りになっていますが GetWindowRectのほうは ウインドウの左上座標と右下座標と表記されてるので right-left+1 が幅になるはずです なのでこの仕様はおかしいと思います
- 396 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:08:48.13 ID:DkYFBwwC.net]
- >>391
英語版みたらちゃんと書いてあったよ ていうかこの関数に限らず Rect構造体の定義としてbottomとrightは1ピクセル外側を示すことになってる
- 397 名前:デフォルトの名無しさん [2017/02/05(日) 20:19:29.52 ID:ajRW1B46.net]
- オセロでなく碁盤で数えろってことですね
納得しました
- 398 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 11:44:22.96 ID:atuXlQHb.net]
- >>392この辺ちゃんと理解してないと1ドット足りないみたいな事態になるんだよな
VBerとか1オリジンでUboundとか慣れてるとドはまりしそう
- 399 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 15:30:39.87 ID:sNAkUIYE.net]
- >>391
GetClientRectの話だけど left=top=0だとして right=bottom=1だったら 幅と高さは1で ウィンドウは(0,0)-(0,0)で1ピクセルのウィンドウだから やっぱり幅と高さは1だし矛盾しない
- 400 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 16:17:17.14 ID:atuXlQHb.net]
- 画像の部分クリップとかやりだすとちょっと混乱したりする教訓か
ドトネトなんかではx y width heightなプロパティを別に持っている
- 401 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 17:51:48.08 ID:2YUAIh/k.net]
- SetWindowPosとMoveWindowとで
ウィンドウを動かした時に何か違いはあるんでしょうか? SetWindowPosでウィンドウは動かせるのに MoveWindowは何のために用意されてるんですか?
- 402 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/02/06(月) 18:06:24.84 ID:myCEQNc2.net]
- >>397
SetWindowPosの方がフラグ指定や挿入位置指定など、できることが多い。
- 403 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 08:29:41.33 ID:g0+JjgLn.net]
- >>398
ではMoveWindowは何のために存在しているの
- 404 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 09:23:30.46 ID:mtDQmVBr.net]
- フラグとか触らないでただ動かす時のため
- 405 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 11:23:40.44 ID:IHNU1ydF.net]
- 昔のことは知らないけど SetWindowPos が後から追加されたんじゃないの
- 406 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 11:40:48.78 ID:+LdvU0fQ.net]
- 理由も昔のことも知らないけど 今はMoveWindowの内部でSetWindowPosが呼ばれてたと思う
- 407 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 15:19:54.85 ID:LuCsRke8.net]
- 後方互換性のため
- 408 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 22:51:17.46 ID:m2J0GXa0.net]
- DeferWindowPos
- 409 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 18:42:29.90 ID:xKxGFEhy.net]
- 実行ファイルの埋め込みマニフェストの実体をいじらずに
内容を修正した上で起動したり、任意の外部マニフェストファイルを読めるように 操作できませんか? 具体的には、マニフェストのcompatibilityの項目なんですが。。。
- 410 名前:デフォルトの名無しさん [2017/02/17(金) 19:08:12.47 ID:yGnzX63H.net]
- OSのバージョンにより異なる
ttps://msdn.microsoft.com/ja-jp/library/ms235342%28VS.80%29.aspx ttp://www.taosoftware.co.jp/blog/2008/02/windows_1.html ttp://nekojiru.blog.so-net.ne.jp/2007-09-03
- 411 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 19:35:32.23 ID:xKxGFEhy.net]
- Windows7以降は埋め込み優先で、
実行ファイルのマニフェスト自身を書き換える方法、レジストリでOS自体の設定をいじる方法、 ActivateActCtx()でcommctl.dllは変更できるっぽい? ってのはわかったんですが、個別に実行ファイルをいじらずに操作する方法があるかな、と思った次第です。
- 412 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 19:51:35.09 ID:Z3/lG4/1.net]
- ショートカット作って、そのプロパティにアクセスして、互換性編集して、そのショートカットで起動させるとか?
- 413 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:41:47.62 ID:GhHUeiw5.net]
- windows8.1/10 マルチモニター環境で、ウインドウの位置がタッチパネルデバイスを
有するモニターであるかを調べたい場合どうすればよいですか? HMONITOR hMonitor = MonitorFromWindow(hWnd,MONITOR_DEFAULTTONEAREST); これで、モニターのハンドルは調べられるのですが、 このモニターがタッチパネルを有するモニターを調べる場合どうすればいいかわかりません。
- 414 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:53:26.09 ID:IeB4TnBd.net]
- Win32_PointingDeviceあたりだろうな
- 415 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 16:15:18.67 ID:35Ccu8m+.net]
- Win32 Pointhig Device軽く調べたんですが、それっぽいのないですね;;
- 416 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 16:33:06.48 ID:j0RdOmJS.net]
- それでタッチかどうかわかるでしょ
あとはWin32_VideoController、Win32_DesktopMonitor、GetMonitorInfoあたりと情報突き合わせたら その座標がタッチ対応かわかる
- 417 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 17:34:40.28 ID:HWkXh2UP.net]
- 応用がきくプログラマーを目指せ
- 418 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:31:01.50 ID:ZV5SMkF2.net]
- ここさわって
っていううメッセージを描いておく
- 419 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:19:05.81 ID:HWkXh2UP.net]
- 俺ならそのメッセージでもマウス操作しかしなさそうだわw
- 420 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 21:11:15.50 ID:35Ccu8m+.net]
- ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれとダイアログだろうかと思いましたが、
プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
- 421 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 21:14:09.87 ID:35Ccu8m+.net]
- ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれと、ダイアログを出そうかと思いましたが、
プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
- 422 名前:デフォルトの名無しさん [2017/03/03(金) 12:32:15.32 ID:IUFykjWp.net]
- Windowsじゃ何やっても無駄ですよ。
生産性はないです。 まともにタブで操作すると考え方をタブに合わせて全体を設計し直さないとダメでです。 ポインターの概念を画像で処理する必要ががります。 マルチで接触してる部分の個々の中心点を求めて 接触している部分にボタンの候補があるかどうか そういう処理を行わないとだめ Windowsが使えないのは、ポインティングデバイスから無理に 座標変換してるので誤操作と誤作動だらけになる。 マイクロソフトにはこの分野は作れないと思いますよ。
- 423 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 12:56:20.62 ID:Loi48FLt.net]
- 入
- 424 名前:力なんていう低レベルからシェア捕れる可能性を秘めてる
集金システムもまともなのがないからそこもね ハードからソフトまでガチガチなiphoneやandroidと違ってビジネスチャンスに溢れた自由なOS。それがWindows [] - [ここ壊れてます]
- 425 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 16:55:05.95 ID:7kccr9GO.net]
- >>418
窓板に何年も毎日貼り付いてるキチガイタイポマカーのコピペじゃねえかw
- 426 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 13:10:48.65 ID:aE/wnzST.net]
- どんなに優れていても誰にも使われなければ意味が無い。
- 427 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 13:24:45.44 ID:il8vJgV1.net]
- 使われてるやん
って言ったら使ってる奴がアホってか?
- 428 名前:デフォルトの名無しさん [2017/03/04(土) 14:25:59.12 ID:GRvQ2lmz.net]
- シェア獲得率と優劣は比例しない
- 429 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 14:32:38.90 ID:svzWwCAT.net]
- そう言っておかないとシェア4%のMacなんか何の立場もないもんな
- 430 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 14:46:44.82 ID:nGVyMKq0.net]
- シェア獲得率が高いものは、シェアに優れてる
- 431 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 15:10:40.29 ID:aE/wnzST.net]
- 別に使われてると思ってるなら良いんでない?
俺は趣味でもあり金を稼ぐ道具でもあるからMacなんて使わんけど。 だいたい、知らんもんで金は稼げない。
- 432 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 18:17:19.42 ID:ZJLt6oM8.net]
- MacをPCだとするとシェア4%になるが
DTMコンソールやCG用レンダラーだとするとシェアが何倍にもなる不思議
- 433 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 13:07:20.68 ID:Fl7T0tas.net]
- >>419
でも優良見込み客を囲い込んでるのは i & a なんだよなぁ
- 434 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 13:41:54.91 ID:1JomNGIg.net]
- >>427
2015年での世界におけるAppleのシェアは7.5%だそうです。 ascii.jp/elem/000/001/104/1104428/20160113_yohiro_PCShipment_03_767x659.png
- 435 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 14:27:40.01 ID:zkc5hO4d.net]
- ベンダー出荷シェアとかOSの販売数ってのは利用率なシェアとは別モンだからな
- 436 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 17:20:05.73 ID:KDLljhIv.net]
- 光学ドライブのAutoRunを無効にしてると、ディスクを入れ替えたことに気付けないみたいですが、
どうやったらディスクの情報をリフレッシュさせることができるのでしょうか? ディレクトリ一覧を取得しようとしても、入れ替え前のディスクのディレクトリが出てきて困ってます
- 437 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:16:54.98 ID:zkc5hO4d.net]
- 今のOSはAutoRun最初から無効だから、それが本当ならほとんどのPCでまともに取得できないってことになるな
ソースどっかミスってるんでしょ
- 438 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:23:58.07 ID:91bxBwXE.net]
- もちろんエクスプローラーで開けば情報は更新されます。プログラムからトレイを開閉しても情報は更新されます。
光学ドライブのボタンで開閉すると、情報が更新されないままなのです。
- 439 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:45:45.34 ID:1JomNGIg.net]
- >>431
この辺、参考にならないかな https://support.microsoft.com/ja-jp/help/163503/how-to-receive-notification-of-cd-rom-insertion-or-removal
- 440 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 01:12:03.58 ID:5qliBH2Z.net]
- https://ideone.com/i4fQGS
Win32API勉強中なんですが、ウィンドウを作ることができません、hWndがNULLになってしまって途中で終わってしまいます ウィンドウクラスの登録も失敗していないみたいなので原因がわかりません、どこが悪いのか教えてください
- 441 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 03:42:45.84 ID:Vp9TD86Z.net]
- 自分のウインドのZオーダーが変化したタイミングを調べたいのですが、
ウインドメッセージでなにかありましたっけ?
- 442 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 03:48:47.30 ID:G57q42um.net]
- >>435
× defalut 〇 default >>436 WM_WINDOWPOSCHANGEDかな
- 443 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 04:07:50.94 ID:Vp9TD86Z.net]
- WM_WINDOWPOSCHANGEDは、だめでした。
ちなみにウインドウはCreateWindowExで、WS_EX_TOPMOSTしています。 ウインドウのスタートメニューが重なっと時にそれよりも前面に表示したいのですが。。 WM_WINDOWPOSCHANGEDにメッセージ来てないっぽいです。 今は、代案として1秒ごとに、SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);を入れているのですが、 もっといい方法ないでしょうか? いま、GetWindowあたり調べているのですが、GetWindow(hWnd, GW_HWNDPREV);だと imeのハンドルが取れるっぽいのでなんか違う。。orz
- 444 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 05:09:47.00 ID:j91K0HTy.net]
- ランサムウェアですねわかります
- 445 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 05:17:14.60 ID:Vp9TD86Z.net]
- >>439
悪さするアプリじゃないんだが?
- 446 名前:デフォルトの名無しさん [2017/03/10(金) 07:10:36.82 ID:n8W4k0Sb.net]
- 異教徒の大量虐殺をためらわない一神教の思想性を理解するのに役立つ。
いずれ日本がアメリカに復讐する日が来るだろう。
- 447 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 07:13:07.30 ID:n8W4k0Sb.net]
- >>441 誤爆失礼
- 448 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 08:47:49.51 ID:Lkoti1g0.net]
- >>440
昔からこういう奴はいるから気にするな
- 449 名前:デフォルトの名無しさん [2017/03/10(金) 14:11:40.65 ID:wwCDmvkp.net]
- 図星ですねわかります
- 450 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/10(金) 14:29:16.92 ID:iyjWrKHK.net]
- NG: (HBRUSH)COLOR_BACKGROUND
OK: (HBRUSH)(COLOR_3DFACE + 1) ShowWindow(hWnd, SW_SHOW);の後にUpdateWindow(hWnd);がない。
- 451 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/10(金) 14:30:21.93 ID:iyjWrKHK.net]
- ShowWindow(hWnd, SW_SHOW);
じゃなくて、ShowWindow(hWnd, nCmdShow); かShowWindow(hWnd, SW_SHOWNORMAL);にしろ。
- 452 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 14:40:49.87 ID:ALHJU+Fn.net]
- >>437
ありがとうございますこれでいけました
- 453 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 16:29:28.86 ID:ALHJU+Fn.net]
- すいませんまた質問させてください
テトリスを作る動画を見ながらこれを作っているのですが、リソースの画像を一度表示されたんですが、画像のサイズが変だったので訂正したところ表示されなくなりました どこが悪いのか教えて頂けないでしょうか? https://ideone.com/i4fQGS
- 454 名前:デフォルトの名無しさん [2017/03/10(金) 17:21:39.95 ID:wwCDmvkp.net]
- r.right = 24 * 10;
r.bottom = 24 * 20;
- 455 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 21:56:50.24 ID:EdU52Ynw.net]
- タスクトレイのShell_NotifyIcon();について質問です。
タスクトレイのアイコンサイズは32x32または16x16が一般的っぽいのですが、 64x32などの長方形サイズなどのカスタムアイコンを設定できるのでしょうか? icdata.dwInfoFlagsで NIIF_LARGE_ICONっていうパラメーターを設定したのですが、 反映されていないっぽいです。 case WM_CREATE: { ZeroMemory(&icdata, sizeof(icdata)); hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1)); icdata.cbSize = sizeof(NOTIFYICONDATA); icdata.hWnd = hWnd; icdata.uID = 0; icdata.uFlags = NIF_MESSAGE | NIF_TIP | NIF_SHOWTIP | NIF_ICON; icdata.dwInfoFlags = NI
- 456 名前:IF_LARGE_ICON;
icdata.uCallbackMessage = WM_USER; icdata.uVersion = NOTIFYICON_VERSION_4; icdata.hIcon = hIcon; wcscpy_s(icdata.szTip, sizeof(icdata.szTip), L"左クリックで終了"); Shell_NotifyIcon(NIM_ADD, &icdata); } [] - [ここ壊れてます]
- 457 名前:450 mailto:sage [2017/03/12(日) 22:56:10.20 ID:EdU52Ynw.net]
- LoadIconは、LoadIconMetricでした。
HRESULT hr = LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_ICON1), LIM_LARGE, &hIcon); しかし、変化なし。。
|

|