Win32API質問箱 Build123©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/10/08(土) 12:33:02.29ID:0jaJMPXG
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
2017/03/03(金) 12:56:20.62ID:Loi48FLt
入力なんていう低レベルからシェア捕れる可能性を秘めてる
集金システムもまともなのがないからそこもね
ハードからソフトまでガチガチなiphoneやandroidと違ってビジネスチャンスに溢れた自由なOS。それがWindows
2017/03/03(金) 16:55:05.95ID:7kccr9GO
>>418
窓板に何年も毎日貼り付いてるキチガイタイポマカーのコピペじゃねえかw
2017/03/04(土) 13:10:48.65ID:aE/wnzST
どんなに優れていても誰にも使われなければ意味が無い。
2017/03/04(土) 13:24:45.44ID:il8vJgV1
使われてるやん
って言ったら使ってる奴がアホってか?
423デフォルトの名無しさん
垢版 |
2017/03/04(土) 14:25:59.12ID:GRvQ2lmz
シェア獲得率と優劣は比例しない
2017/03/04(土) 14:32:38.90ID:svzWwCAT
そう言っておかないとシェア4%のMacなんか何の立場もないもんな
2017/03/04(土) 14:46:44.82ID:nGVyMKq0
シェア獲得率が高いものは、シェアに優れてる
2017/03/04(土) 15:10:40.29ID:aE/wnzST
別に使われてると思ってるなら良いんでない?
俺は趣味でもあり金を稼ぐ道具でもあるからMacなんて使わんけど。

だいたい、知らんもんで金は稼げない。
2017/03/04(土) 18:17:19.42ID:ZJLt6oM8
MacをPCだとするとシェア4%になるが
DTMコンソールやCG用レンダラーだとするとシェアが何倍にもなる不思議
2017/03/05(日) 13:07:20.68ID:Fl7T0tas
>>419
でも優良見込み客を囲い込んでるのは i & a なんだよなぁ
2017/03/05(日) 13:41:54.91ID:1JomNGIg
>>427
2015年での世界におけるAppleのシェアは7.5%だそうです。

http://ascii.jp/elem/000/001/104/1104428/20160113_yohiro_PCShipment_03_767x659.png
2017/03/05(日) 14:27:40.01ID:zkc5hO4d
ベンダー出荷シェアとかOSの販売数ってのは利用率なシェアとは別モンだからな
2017/03/05(日) 17:20:05.73ID:KDLljhIv
光学ドライブのAutoRunを無効にしてると、ディスクを入れ替えたことに気付けないみたいですが、
どうやったらディスクの情報をリフレッシュさせることができるのでしょうか?
ディレクトリ一覧を取得しようとしても、入れ替え前のディスクのディレクトリが出てきて困ってます
2017/03/05(日) 19:16:54.98ID:zkc5hO4d
今のOSはAutoRun最初から無効だから、それが本当ならほとんどのPCでまともに取得できないってことになるな
ソースどっかミスってるんでしょ
2017/03/05(日) 19:23:58.07ID:91bxBwXE
もちろんエクスプローラーで開けば情報は更新されます。プログラムからトレイを開閉しても情報は更新されます。
光学ドライブのボタンで開閉すると、情報が更新されないままなのです。
2017/03/05(日) 19:45:45.34ID:1JomNGIg
>>431
この辺、参考にならないかな

https://support.microsoft.com/ja-jp/help/163503/how-to-receive-notification-of-cd-rom-insertion-or-removal
2017/03/10(金) 01:12:03.58ID:5qliBH2Z
https://ideone.com/i4fQGS
Win32API勉強中なんですが、ウィンドウを作ることができません、hWndがNULLになってしまって途中で終わってしまいます
ウィンドウクラスの登録も失敗していないみたいなので原因がわかりません、どこが悪いのか教えてください
2017/03/10(金) 03:42:45.84ID:Vp9TD86Z
自分のウインドのZオーダーが変化したタイミングを調べたいのですが、
ウインドメッセージでなにかありましたっけ?
2017/03/10(金) 03:48:47.30ID:G57q42um
>>435
× defalut
〇 default
>>436
WM_WINDOWPOSCHANGEDかな
2017/03/10(金) 04:07:50.94ID:Vp9TD86Z
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
2017/03/10(金) 05:09:47.00ID:j91K0HTy
ランサムウェアですねわかります
2017/03/10(金) 05:17:14.60ID:Vp9TD86Z
>>439
悪さするアプリじゃないんだが?
441デフォルトの名無しさん
垢版 |
2017/03/10(金) 07:10:36.82ID:n8W4k0Sb
異教徒の大量虐殺をためらわない一神教の思想性を理解するのに役立つ。
いずれ日本がアメリカに復讐する日が来るだろう。
2017/03/10(金) 07:13:07.30ID:n8W4k0Sb
>>441 誤爆失礼
2017/03/10(金) 08:47:49.51ID:Lkoti1g0
>>440
昔からこういう奴はいるから気にするな
444デフォルトの名無しさん
垢版 |
2017/03/10(金) 14:11:40.65ID:wwCDmvkp
図星ですねわかります
2017/03/10(金) 14:29:16.92ID:iyjWrKHK
NG: (HBRUSH)COLOR_BACKGROUND
OK: (HBRUSH)(COLOR_3DFACE + 1)

ShowWindow(hWnd, SW_SHOW);の後にUpdateWindow(hWnd);がない。
2017/03/10(金) 14:30:21.93ID:iyjWrKHK
ShowWindow(hWnd, SW_SHOW);
じゃなくて、ShowWindow(hWnd, nCmdShow);
かShowWindow(hWnd, SW_SHOWNORMAL);にしろ。
2017/03/10(金) 14:40:49.87ID:ALHJU+Fn
>>437
ありがとうございますこれでいけました
2017/03/10(金) 16:29:28.86ID:ALHJU+Fn
すいませんまた質問させてください
テトリスを作る動画を見ながらこれを作っているのですが、リソースの画像を一度表示されたんですが、画像のサイズが変だったので訂正したところ表示されなくなりました
どこが悪いのか教えて頂けないでしょうか?
https://ideone.com/i4fQGS
449デフォルトの名無しさん
垢版 |
2017/03/10(金) 17:21:39.95ID:wwCDmvkp
r.right = 24 * 10;
r.bottom = 24 * 20;
2017/03/12(日) 21:56:50.24ID:EdU52Ynw
タスクトレイの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 = NIIF_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);
}
451450
垢版 |
2017/03/12(日) 22:56:10.20ID:EdU52Ynw
LoadIconは、LoadIconMetricでした。
HRESULT hr = LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_ICON1), LIM_LARGE, &hIcon);
しかし、変化なし。。
2017/03/13(月) 06:26:15.42ID:cVbgmuk1
右クリックとかでよく出るポップアップメニューの
フォントの大きさを変更したい場合どうすればよいですか?
case WM_RBUTTONDOWN:
{
POINT pt;
pt.x = LOWORD(lParam);pt.y = HIWORD(lParam);
ClientToScreen(hWnd, &pt);
TrackPopupMenu(hMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL);
}
break;
2017/03/13(月) 06:47:05.65ID:cVbgmuk1
自己解決。。調べたら、メニュー・オーナードローについて詳しいページが出てきました。
2017/03/13(月) 08:55:13.87ID:hLVIfrQc
紀平さんのか
2017/03/13(月) 13:01:19.28ID:VNPYsRzK
>>450
shell icon sizeで画一的に決まってる。
2017/03/13(月) 13:43:30.21ID:N3DmujAP
>>450
オーナードロー
2017/03/13(月) 13:49:46.45ID:wbj+4uLG
>>456
それだけじゃ答えから遠い
2017/03/13(月) 17:27:27.81ID:RCZql05q
>>449
違うみたいです・・・
2017/03/13(月) 20:18:35.18ID:DGoKmeFN
https://ideone.com/i4fQGS
VC++で見ているんですが24行目のhBitmapにはちゃんとアドレスが確保されているのになぜか描画されません
どういった原因が考えられるでしょうか?
2017/03/13(月) 20:24:18.16ID:VNPYsRzK
>>459
SelectObjectは、BeginPaintの後に呼ばないといけない。HDCが違う。
2017/03/13(月) 23:00:39.35ID:cCiuixm4
>>459
コンパイルして実行してみたけど表示されたよ。bmpファイルがおかしいんじゃない?
あとWM_DESTROYでhMemDCとhBlockDCをDeleteObjectしてるけどDeleteDCじゃないとダメ
462デフォルトの名無しさん
垢版 |
2017/03/14(火) 10:21:04.36ID:vbV/Jpv3
>>459
テトリスのひとか
がんがれ
463459
垢版 |
2017/03/14(火) 23:58:45.78ID:MclzPbbI
環境も書いたほうがいいですね、Win7 x64でVC++2010 Expressです、rcファイル作って「BLOCKS BITMAP "block.bmp"」と書いてます
ファイル名は間違えていないですし、リンクしてoファイルは作っていないですけど間違っていますか?
最初は自作のbmpファイルでやっていたんですけど、途中から作られたbmpファイルでやろうとして表示されなくなりました
ここにあるblock.bmpというやつです
https://github.com/DQNEO/CppTetris

動画を見てロジックを理解しながら学習したいのですが、なかなか捗らないです

>>460
ごめんなさい、何行目のことかわからないです

>>461
修正しました!

>>462
ありがとうございます
2017/03/15(水) 12:08:58.48ID:7YWEdixI
馬鹿には無理
2017/03/15(水) 12:54:33.61ID:rPK+nkkO
用意されてたbmpでは動く。自作bmpでは動かない。ってことかよ。だとしたら原因ひとつじゃん
2017/03/15(水) 13:11:54.57ID:h6gBY/+f
>>463
imgurにでも自分で作ったbmp上げてみてよ
2017/03/15(水) 13:37:27.01ID:7YWEdixI
imgurって内容変わるんじゃね
2017/03/15(水) 13:42:29.19ID:h6gBY/+f
マジかごめん
2017/03/15(水) 16:58:13.14ID:0QbqsbzH
>>463
たぶん表示されてるんだと思う
WM_CREATE内の//debugの下の行を
BitBlt(hMemDC, 0, 0, 24, 24, hBlockDC, 0, 24, SRCCOPY);
にするとどうなる?
2017/03/15(水) 18:59:14.47ID:Jw8FgjFy
ちょっと見てみたよ
bmpのIDだけど、BLOCKS と "BLOCKS" は別だからね
BLOCKSは数値に置き換えられてるけどLoadBitmapは文字列の"BLOCKS"で読もうとしてる
初心者の頃はやりがちなやつだな
2017/03/15(水) 20:15:49.77ID:5s+i++Yx
>>469
ありがとうございます、これで表示されました
でもhttp://dqn.sakusakutto.jp/2012/11/cpp_tetris.htmlこの動画とは別の画像が表示されます
動画上では灰色ブロックが出てきているのに、自分の環境では赤色のブロックが出てきている状況です

>>470
動画では「"BLOCKS"」と定義されていたので自分は「TEXT("BLOCKS")」と定義したんですが両者は違うものなのでしょうか?
472デフォルトの名無しさん
垢版 |
2017/03/15(水) 20:16:40.91ID:LU+w+iAT
rcの方だろ
2017/03/15(水) 21:50:38.03ID:5BC7GJpQ
USBメモリなどUSB機器の接続検知をおこないたいのですが、WM_DEVICECHANGEを使用すると
https://qanda.rakuten.ne.jp/qa5211631.html
のようにUSBメモリによってはDBT_DEVICEARRIVALが何度か来てしまいます。
↑のQ&Aにあるように、正常に認識されたときを検出するにはどうすればよいでしょうか?
2017/03/15(水) 23:07:40.31ID:5s+i++Yx
>>472
rcのほうが間違えているということですか?
では「"BLOCKS" BITMAP "block.bmp"」ってことですか?
2017/03/16(木) 09:34:05.83ID:fy4K8iiJ
こうやって手取り足取りな奴はイライラする
2017/03/16(木) 11:58:27.68ID:bBZQNLcb
>>475
じゃあ来なければいいよ
2017/03/16(木) 15:14:09.34ID:Oq2mLnGK
お前が手足を完全にもいでトドメを刺せばいい
478デフォルトの名無しさん
垢版 |
2017/03/16(木) 17:17:19.21ID:Xe646fvV
モイっ!
2017/03/16(木) 22:29:13.60ID:xw1bzJ/c
>>473
((PDEV_BROADCAST_HDR)lParam)->dbch_devicetype が全部同じなの?
2017/03/19(日) 01:08:24.24ID:bawtCMkE
SHAppBarMessage(ABM_QUERYPOS, &abd);が正しい値を取得できない場合どうすればいいですか?

Windows10の設定:システム:ディスプレイ:ディプレイカスタマイズ画面
テキスト、アプリ、その他の項目サイズを変更する
で100%から175%までいろいろ変化させてみると表示位置のずれが発生します。
2017/03/19(日) 04:28:36.19ID:yhAiVzME
>>473
デバイスイベントが来たら、タイマーで少し時間が経ってからデバイスをチェックする。
時間が経つ前に次のデバイスイベントが来たら、タイマーをセットしなおしてまた少し時間が経つまで待つ。
2017/03/20(月) 10:38:14.59ID:px9bK4BM
タスクトレイの自動的に隠すになっているかを調べる場合どうすればよいですか?
2017/03/20(月) 11:02:11.90ID:OlmnVrTw
レジストリでも見ればわかるんじゃない?
484482
垢版 |
2017/03/20(月) 11:03:48.79ID:px9bK4BM
自己解決・・
APPBARDATA appbardata;
appbardata.cbSize = sizeof(APPBARDATA);
appbardata.hWnd = FindWindow(L"Shell_TrayWnd", 0);
if(SHAppBarMessage(ABM_GETSTATE, &appbardata))
{
// 自動的に隠れている
}
2017/03/20(月) 23:28:19.28ID:pgDQQg6b
最近、win32 はいつまで残るんだろうな、とふと不安になる
.net とか妙なものが蔓延ってるけど。
2017/03/21(火) 00:19:55.43ID:3zup+qvo
MS32bitOSが居る限りはなくならないだろ
.netだって内部的にWin32API呼び出しているし
2017/03/21(火) 02:42:20.25ID:dRq3wtLU
ここまで来て過去の莫大な資産を捨てることなんてあるの?
過去のwindowsアプリが新しいwindowsで動かなくなる日が来たら、それはもうwindowsじゃないと思う
2017/03/21(火) 03:05:14.83ID:RH/+/4vn
.NetですらFormsもWPFも放置でUWPに移行させようとしてるし、本音では過去のを全て捨ててUWPに一本化したいんだろう。
現実的には自らの強み(過去の資産)を手放すことになるから、やりたくてもやれないのだろうけど。
2017/03/21(火) 03:48:34.60ID:5huRZA1V
> FormsもWPFも放置でUWPに移行

MSって過去にも色々出しては無かったことにしてきたよな・・・
UWPすらどうなることか
2017/03/21(火) 04:41:12.33ID:ScjZQ1Ox
新しいものを出してきても、古いOSに対応させないから状況的に使えなくて、
使ってもいいかなと思える状況になった頃には古い技術になっているという悪循環
2017/03/21(火) 14:27:42.86ID:6WWBsw/3
>>485
windowsが無くなるまでは残るだろうと思ってたが

windowsが無くなりそうだしな
2017/03/21(火) 14:35:53.84ID:3zup+qvo
Win32APIは過去の莫大な資産であり、過去の莫大な負債でもある
2017/03/21(火) 17:25:00.36ID:ghEa3fZg
WindowsRuntimeを使わないといけなくなって
c++でコーディングし始めたけどかなり面倒くさい。
c++/cx使えっていうことだろうけど。
windows runtimeがwin32apiの代わりになるのかな?
2017/03/21(火) 23:26:33.91ID:y88e15JH
しっかし、なんで win32 はあんなに作るのが面倒くさいんだろうな・・・
1〜10まで教える感じではなく、1、10、100、1000まで教えてやっと動く感じ。
その分痒い所に手が届くが。。。
だんだん倦厭されているということは、今の納期!納期!の文化とは合わないんだろうな。
2017/03/22(水) 00:22:36.94ID:153gnM05
>>493
CX糞

https://github.com/Microsoft/cppwinrt
↑正解
2017/03/22(水) 00:24:51.70ID:Qoic3+WX
工程の短縮というのもあるけど
「どのアプリケーションでも同じことをしたければ同じ操作をすればいい」と言うのを求めると
同じ操作(同じ動作)をひとつの部品として提供するほうが良い
そういう開発者独自の機能より、一般化された機能や操作性が重要視されるようになったのも一因だと思う
2017/03/22(水) 00:30:45.76ID:oXk4FtJ8
>>495
これってまだいろいろ未完成じゃないん?
sdkにも含まれてないし扱いが不鮮明なんだよな。
2017/03/22(水) 00:48:25.76ID:KP40M7fU
https://msdn.microsoft.com/en-us/magazine/mt745094
https://msdn.microsoft.com/en-us/magazine/mt745090

C++/CXを置き換えてくのか平行してくのか知らんけど言語プロジェクションを
純C++のヘッダのみで提供するコンセプトなのかしら
ただ肝心の.winmdからヘッダを生成するコンパイラが(まだ)未提供だから
Win2Dみたいな標準に含まれてないランタイムコンポーネントは使えん感じ

ちょっと試してみた感じ/ZWも不要で既存のC++ライブラリとマージしやすそうだし
VS2017+CUの時点で使い物になってて欲しいなあ
2017/03/23(木) 12:03:55.36ID:39On3zda
>>494
APIの粒度の問題を言われてもな
2017/03/23(木) 20:22:15.45ID:NUnQTAC3
でも結局どの言語でもAPIインポートするんだよな
意味ないな
2017/03/26(日) 14:21:34.35ID:bO2o38VX
>>494
>痒い所に手が届く

これ重要
2017/03/26(日) 15:20:48.57ID:6+wpTDFL
代わりに痒くもないところが腫れあがる
2017/03/27(月) 08:29:30.36ID:S+/FPMiq
そりゃ掻いてる場所が違うんだ
2017/03/27(月) 08:31:23.68ID:CkZovUeE
痒いところをかくといけないのでかけないようになってます
2017/03/29(水) 15:32:52.21ID:Si2XZHCG
ショートカットの.lnkとかあと特殊なフォルダとかに出る
アイコン右下のやつってなんて名前なんでしょうか?
2017/03/29(水) 15:39:16.42ID:uG+6tdKu
overlay icons
2017/03/29(水) 15:40:33.19ID:F9h34aTY
IDがqz
https://www.youtube.com/watch?v=9zzRg-rBpOQ
https://twitter.com/NomuraShuya/status/846159908542169088
2017/03/29(水) 15:41:59.56ID:3SDK0DLs
右下ってシールドか?
キャプチャぐらい貼れよ無能
2017/03/29(水) 15:43:11.84ID:F9h34aTY
これやろ

矢印
2017/03/29(水) 16:02:42.50ID:3SDK0DLs
矢印は左下だろ
アイコンオーバーレイって名称のことかな。ま、どうでもいいや
511デフォルトの名無しさん
垢版 |
2017/04/01(土) 18:40:58.67ID:m+AYjiBS
Win32APIサポート終了のお知らせ
2017/04/01(土) 18:56:32.68ID:Q4azjyiD
>>511
ソース希望
2017/04/01(土) 19:30:55.19ID:WcYopVS3
>>512
今日の日付
2017/04/03(月) 01:29:34.83ID:BKde4+E+
嘘をついていいのは午前中なんだが。
2017/04/03(月) 02:36:19.44ID:EQsFkd4r
それもウソだよ
2017/04/03(月) 20:45:49.66ID:fIAaSCsY
ウソだってのがウソなんだよ
2017/04/03(月) 20:47:03.89ID:DvppQH2R
4/1だけにしとけよ
2017/04/03(月) 21:39:52.92ID:gWDrFV4S
昭和64年は短命
64も短命?
128移行か
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況