Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build126
https://mevius.5ch.net/test/read.cgi/tech/1588339011/
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2020 Part1 https://mevius.5ch.net/test/read.cgi/tech/1634166667/
Visual Studio 2019 Part7 https://mevius.5ch.net/test/read.cgi/tech/1634178709/
Visual Studio 2017 Part7 https://mevius.5ch.net/test/read.cgi/tech/1558179898/
【C++】 DirectX初心者質問スレ Part41 【C】 https://mevius.5ch.net/test/read.cgi/tech/1521786252/
探検
Win32API質問箱 Build127
■ このスレッドは過去ログ倉庫に格納されています
2021/12/09(木) 21:32:56.60ID:sYLpmj89
377375
2022/09/05(月) 23:27:10.40ID:ViUtFxr1 >>376
GetCharABCWidthsで取得しても1文字単位でしか取得できないので、筆記体やアラビア文字のように前後の文字や位置によって大きさが変わるような場合には対応できないので、ABCの値は参考程度にしか使えないと思います。
フォントリンク先のフォント情報(LOGFONT)は、メタファイルに出力後そのメタファイルを解析するというちょっとトリッキーな方法で可能です。
https://stackoverflow.com/questions/54050095/how-to-tell-if-a-surrogate-pair-unicode-character-is-supported-by-the-font
GetCharABCWidthsで取得しても1文字単位でしか取得できないので、筆記体やアラビア文字のように前後の文字や位置によって大きさが変わるような場合には対応できないので、ABCの値は参考程度にしか使えないと思います。
フォントリンク先のフォント情報(LOGFONT)は、メタファイルに出力後そのメタファイルを解析するというちょっとトリッキーな方法で可能です。
https://stackoverflow.com/questions/54050095/how-to-tell-if-a-surrogate-pair-unicode-character-is-supported-by-the-font
378デフォルトの名無しさん
2022/09/06(火) 20:18:06.15ID:H7QyPUx+ 大変有用な情報、ありがとうございます。
確かに、筆記体のような手を繋ぐフォントの場合、うまくいきませんね。
これは気づきませんでした。
実際にはそういったフォントが使われることはまれなので、大きな問題にはならないかな、と思います。
確かに、筆記体のような手を繋ぐフォントの場合、うまくいきませんね。
これは気づきませんでした。
実際にはそういったフォントが使われることはまれなので、大きな問題にはならないかな、と思います。
379デフォルトの名無しさん
2022/09/10(土) 21:08:59.03ID:eGqDTe4p HBITMAP hBitmap; に既に bitmap image が load されているとき
BITMAP bm = {0};
GetObject(hBitmap, sizeof(BITMAP), &bm);
で bm.bmBits の指す場所に pixles data があることは確認出来るのですが
bm.bmBits は何時 GlobalFree(bm.bmBits); すれば良いのでしょうか?
放置しても memory leak の心配はありませんか?
BITMAP bm = {0};
GetObject(hBitmap, sizeof(BITMAP), &bm);
で bm.bmBits の指す場所に pixles data があることは確認出来るのですが
bm.bmBits は何時 GlobalFree(bm.bmBits); すれば良いのでしょうか?
放置しても memory leak の心配はありませんか?
380デフォルトの名無しさん
2022/09/11(日) 13:04:53.74ID:4ex9Us8K DeleteObject(hBitmap);
381デフォルトの名無しさん
2022/09/13(火) 22:06:19.57ID:V8hEwwJT ウインドウのキャプションを SetWindowText で変更したいのですが
そのウインドウはブラウザ(クローム系)でして
SPY++が使えなくなっているので自作のウインドウ一覧で調べると
ブラウザのトップレベル・ウインドウは、アクティブなタブのキャプションが
ウインドウのキャプションになっており、クラス名は"Chrome_WidgetWin_1"でした
これで取得したウインドウ・ハンドルを使って、ブラウザの位置を操作したり
最小化したりできるので、このハンドルで間違いないはずですが
SetWindowText でキャプションを変更することはできません
ブラウザには使えないということでしょうか
御存じの方、教えて下さると幸いです
そのウインドウはブラウザ(クローム系)でして
SPY++が使えなくなっているので自作のウインドウ一覧で調べると
ブラウザのトップレベル・ウインドウは、アクティブなタブのキャプションが
ウインドウのキャプションになっており、クラス名は"Chrome_WidgetWin_1"でした
これで取得したウインドウ・ハンドルを使って、ブラウザの位置を操作したり
最小化したりできるので、このハンドルで間違いないはずですが
SetWindowText でキャプションを変更することはできません
ブラウザには使えないということでしょうか
御存じの方、教えて下さると幸いです
382デフォルトの名無しさん
2022/09/14(水) 01:18:29.10ID:LQT6KG16 ウインドウというよりタブなんじゃね?
383デフォルトの名無しさん
2022/09/14(水) 09:06:44.89ID:bpmiLen5 そうです
ウインドウのキャプションを変更したいけど
それはブラウザでは、タブのキャプションを変更したいということですね
ブラウザのトップレベルのウインドウハンドルで、GetWindowTextを使って
そのタブのキャプションが取得できるのに
逆に、そのハンドルでタブのキャプションはSetWindowTextでは変更できない
ということのようです
タブが子ウインドウになっていてアクセスできればいいのですが
そこらへんブラウザは色々と特殊な作りなので無理っぽい気はしてます
ウインドウのキャプションを変更したいけど
それはブラウザでは、タブのキャプションを変更したいということですね
ブラウザのトップレベルのウインドウハンドルで、GetWindowTextを使って
そのタブのキャプションが取得できるのに
逆に、そのハンドルでタブのキャプションはSetWindowTextでは変更できない
ということのようです
タブが子ウインドウになっていてアクセスできればいいのですが
そこらへんブラウザは色々と特殊な作りなので無理っぽい気はしてます
384デフォルトの名無しさん
2022/09/14(水) 09:46:31.10ID:mWSu9Hj1 ふーんGetはできるんだタスクバー用かな?
どう見てもオーナードローだし
htmlのtitle変える方が早そうだね
どう見てもオーナードローだし
htmlのtitle変える方が早そうだね
385デフォルトの名無しさん
2022/09/14(水) 12:31:23.77ID:NjIHRu5t SetWindowText実行後にGetWindowTextしたら変更後のキャプション取得できてるんじゃない?
表示処理が別なだけで
表示処理が別なだけで
386デフォルトの名無しさん
2022/09/14(水) 15:26:33.97ID:bpmiLen5 >>385
その通り、内部的には変更されてました!!
ありがとうございました
聞いて良かった、自分だけで考えていたら堂々巡りで違う発想は出てこないものですね
見た目のキャプションはどうでも良くて
ブラウザを複数起動して、全て同じサイトを開かせるので
それをUWSCで操作しようとすると、どれが処理済なのか区別つかないので
処理済のやつのキャプションを変えてやろうということだったのです
その通り、内部的には変更されてました!!
ありがとうございました
聞いて良かった、自分だけで考えていたら堂々巡りで違う発想は出てこないものですね
見た目のキャプションはどうでも良くて
ブラウザを複数起動して、全て同じサイトを開かせるので
それをUWSCで操作しようとすると、どれが処理済なのか区別つかないので
処理済のやつのキャプションを変えてやろうということだったのです
387デフォルトの名無しさん
2022/09/14(水) 18:41:01.15ID:Ktn65RkO 処理未済のテーブルのキーは
windowハンドルつこたらあかんの?
windowハンドルつこたらあかんの?
388デフォルトの名無しさん
2022/09/14(水) 21:36:59.23ID:bpmiLen5 386の話?
そんなことないですよ
ウインドウキャプションと、クラス名が同じウインドウがいくつもあるので
UWSCはそれのどのウインドウが処理対象か分からないってことです
YouTubeから動画をDLするサイトを自動で開いて
新着の動画アドレスを自動入力してDLさせるんですが
一つがDL処理中に、別の新着動画が来ることがあるので
そんなことないですよ
ウインドウキャプションと、クラス名が同じウインドウがいくつもあるので
UWSCはそれのどのウインドウが処理対象か分からないってことです
YouTubeから動画をDLするサイトを自動で開いて
新着の動画アドレスを自動入力してDLさせるんですが
一つがDL処理中に、別の新着動画が来ることがあるので
389デフォルトの名無しさん
2022/09/14(水) 21:56:53.98ID:RXLSqQDl 入力されたキーコードをキーボードの文字に変換してくれるAPIとかありますか?
それかC/C++の関数とかで。
SHIFTのコードを渡すと、"SHIFT"みたいに文字が返ってくるみたいな。
それかC/C++の関数とかで。
SHIFTのコードを渡すと、"SHIFT"みたいに文字が返ってくるみたいな。
390デフォルトの名無しさん
2022/09/15(木) 10:19:13.76ID:HISUe1p2 どとねとにはあるけどお
スレ違いかな
大した手間でもないしご自分で用意すれば
そもそもC/C++ならマクロを糞すればリテラルを文字列に変換できるんだし
ちょっとは頭使え?
スレ違いかな
大した手間でもないしご自分で用意すれば
そもそもC/C++ならマクロを糞すればリテラルを文字列に変換できるんだし
ちょっとは頭使え?
392デフォルトの名無しさん
2022/09/15(木) 18:28:39.47ID:gUiebKpt >>389
GetKeyNameText
GetKeyNameText
393デフォルトの名無しさん
2022/09/16(金) 10:16:25.50ID:4htE7L2M 385さんと相談に乗ってくれた方にお礼の動画を持ってまいりました
https://www.youtube.com/watch?v=uJxOP1s4Xo4
https://www.youtube.com/watch?v=uJxOP1s4Xo4
394デフォルトの名無しさん
2022/09/18(日) 13:46:05.81ID:KpBP36NG395デフォルトの名無しさん
2022/09/18(日) 18:20:24.44ID:JcdidFMx こんな釣りじゃあ誰も見んわなw
396デフォルトの名無しさん
2022/09/22(木) 19:31:36.45ID:5qbo/wEx 可愛いよね
名前知らない?
名前知らない?
397デフォルトの名無しさん
2022/09/23(金) 02:06:12.74ID:gD4It3Ab STUのがかわいい
398デフォルトの名無しさん
2022/10/31(月) 14:20:10.23ID:un31Hzpa VisualStudio2022で
C++でGdiplusを利用して、メタファイルとして描画した図形を保存するプログラムを作成しました。
(描画時メタファイルのパラメータはGdiplus::EmfTypeEmfPlusDualを使用して作成しました。)
保存した図形ファイルをエクセルで開いて、Ctrl+Cでクリップボードにコピーしました。
この状態で、EnumClipboardFormatsを使用して、クリップボードのフォーマットを取得しました。
予想だと、WinUser.hで定義されている
#define CF_ENHMETAFILE 14
になるのかと思っていたら、実際は49161が取得されました。
質問ですが、この時取得された49161は何のフォーマットを意味しているのでしょうか?
C++でGdiplusを利用して、メタファイルとして描画した図形を保存するプログラムを作成しました。
(描画時メタファイルのパラメータはGdiplus::EmfTypeEmfPlusDualを使用して作成しました。)
保存した図形ファイルをエクセルで開いて、Ctrl+Cでクリップボードにコピーしました。
この状態で、EnumClipboardFormatsを使用して、クリップボードのフォーマットを取得しました。
予想だと、WinUser.hで定義されている
#define CF_ENHMETAFILE 14
になるのかと思っていたら、実際は49161が取得されました。
質問ですが、この時取得された49161は何のフォーマットを意味しているのでしょうか?
399デフォルトの名無しさん
2022/10/31(月) 14:25:56.86ID:cPgJ75vw 汎用データオブジェクト
400デフォルトの名無しさん
2022/10/31(月) 15:48:17.35ID:un31Hzpa >>399
ありがとうございます。
すいません、質問なのですが
Gdiplusを利用して作成したメタファイルをAPIを使用して汎用データオブジェクトとしてクリップボードに設定したいのですが、
参考になる書籍、ホームページ等ありましたらお教えいただけないでしょうか?
ありがとうございます。
すいません、質問なのですが
Gdiplusを利用して作成したメタファイルをAPIを使用して汎用データオブジェクトとしてクリップボードに設定したいのですが、
参考になる書籍、ホームページ等ありましたらお教えいただけないでしょうか?
401デフォルトの名無しさん
2022/10/31(月) 21:10:12.34ID:Y7EKu9E5 EnumClipboardFormats()使ってるんだからOpenClipboard(),SetClipboardData()はわかるよね
何を聞きたいんだろう?
何を聞きたいんだろう?
402デフォルトの名無しさん
2022/11/01(火) 00:53:41.11ID:8bbAESJs >>401
昔からあるGdiで拡張メタファイルを作成して
OpenClipboard()
SetClipboardData(CF_ENHMETAFILE, handle_enhanced_metafile)
CloseClipboard()
で問題なく、拡張メタファイルがクリップボードに設定されていました。
それをGdiplusを使用してメタファイルを作成して
OpenClipboard()
SetClipboardData(CF_ENHMETAFILE, handle_enhanced_metafile)
CloseClipboard()
に改造したら問題が発生しました。
問題というのはエクセルにクリップボードからペーストすると、「図の書式設定」で「高さの倍率」「幅の倍率」が100%以下の数字になり
意図していたサイズより小さく表示されるようになってしまいました。
クリップボードに設定したメタファイルを、ファイル出力して、エクセルからファイルを開いて描画した図形を表示すると問題なく意図したサイズで表示されていました。
以上の事により、問題が発生する原因はクリップボードへの設定に問題があるのではと考えました。
エクセルにペーストしたGdiplusメタファイル図形を、さらに、エクセルでコピーすると、クリップボードには、なんのフォーマットとして扱われているのか調べてみました。
EnumClipboardFormatsを使用して、クリップボードのフォーマットを取得するとCF_ENHMETAFILEではなく、49161でした。
以上のことによりSetClipboardDataの第一引数はCF_ENHMETAFILE:14ではなく汎用データオブジェクト:49161を設定すべきかと考えました。
しかし、単純にCF_ENHMETAFILEを49161に変えただけでは、クリップボードにGdiplusメタファイル図形は設定されず、エクセルに何もペーストされませんでした。
希望は、Gdiplusメタファイル図形を汎用データオブジェクトとしてクリップボードに設定する方法を知りたいということです。
何かご存じの事がありましたら、お教えお願いします。
昔からあるGdiで拡張メタファイルを作成して
OpenClipboard()
SetClipboardData(CF_ENHMETAFILE, handle_enhanced_metafile)
CloseClipboard()
で問題なく、拡張メタファイルがクリップボードに設定されていました。
それをGdiplusを使用してメタファイルを作成して
OpenClipboard()
SetClipboardData(CF_ENHMETAFILE, handle_enhanced_metafile)
CloseClipboard()
に改造したら問題が発生しました。
問題というのはエクセルにクリップボードからペーストすると、「図の書式設定」で「高さの倍率」「幅の倍率」が100%以下の数字になり
意図していたサイズより小さく表示されるようになってしまいました。
クリップボードに設定したメタファイルを、ファイル出力して、エクセルからファイルを開いて描画した図形を表示すると問題なく意図したサイズで表示されていました。
以上の事により、問題が発生する原因はクリップボードへの設定に問題があるのではと考えました。
エクセルにペーストしたGdiplusメタファイル図形を、さらに、エクセルでコピーすると、クリップボードには、なんのフォーマットとして扱われているのか調べてみました。
EnumClipboardFormatsを使用して、クリップボードのフォーマットを取得するとCF_ENHMETAFILEではなく、49161でした。
以上のことによりSetClipboardDataの第一引数はCF_ENHMETAFILE:14ではなく汎用データオブジェクト:49161を設定すべきかと考えました。
しかし、単純にCF_ENHMETAFILEを49161に変えただけでは、クリップボードにGdiplusメタファイル図形は設定されず、エクセルに何もペーストされませんでした。
希望は、Gdiplusメタファイル図形を汎用データオブジェクトとしてクリップボードに設定する方法を知りたいということです。
何かご存じの事がありましたら、お教えお願いします。
403デフォルトの名無しさん
2022/11/01(火) 02:33:36.53ID:F5k3ZiCa CF_ENHMETAFILEがあるのに49161をセットするなんておかしいよ
倍率以外はうまくいってるんだし
同じ図形でGDIのとGDI+のでENHMETAHEADERのメンバの値で違うのはない?
「DataObject 49161」でググったら以下のページが出た
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/5a85a9a6-88a3-4cba-8b19-31c979eea7fa/clipboard-unable-to-enum-registered-clipboard-formats-as-local-system?forum=vcgeneral
49161はこれなのか?
倍率以外はうまくいってるんだし
同じ図形でGDIのとGDI+のでENHMETAHEADERのメンバの値で違うのはない?
「DataObject 49161」でググったら以下のページが出た
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/5a85a9a6-88a3-4cba-8b19-31c979eea7fa/clipboard-unable-to-enum-registered-clipboard-formats-as-local-system?forum=vcgeneral
49161はこれなのか?
404デフォルトの名無しさん
2022/11/01(火) 09:43:25.52ID:23hVAbRk スレ立てるまでもない質問スレで詳しいこと言ってたら教えてやったんだがな
流したやつに教えてやる気にはならんわ
流したやつに教えてやる気にはならんわ
405デフォルトの名無しさん
2022/11/01(火) 10:48:01.32ID:8bbAESJs406デフォルトの名無しさん
2022/11/01(火) 11:42:30.98ID:8bbAESJs >>403
レスありがとうございます。
ENHMETAHEADERについてですが精査してみます。
(出力先をクリップボードでなくファイルにした場合、エクセルで開いても問題が発生していないのでメタファイルには問題ないかと、あたりをつけていました)
CF_ENHMETAFILEについてですが、メタファイルは以下の3種類があるようです
・Windows メタファイル形式 (WMF)
・拡張メタファイル (EMF)
・EMF+
描画時メタファイルのパラメータはGdiplus::EmfTypeEmfPlusDualを使用して作成しましたので
EMF+として作成されているのかとも思っています。
そうするとENHMETAHEADER←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
リンクありがとうございます。検討してみます。
レスありがとうございます。
ENHMETAHEADERについてですが精査してみます。
(出力先をクリップボードでなくファイルにした場合、エクセルで開いても問題が発生していないのでメタファイルには問題ないかと、あたりをつけていました)
CF_ENHMETAFILEについてですが、メタファイルは以下の3種類があるようです
・Windows メタファイル形式 (WMF)
・拡張メタファイル (EMF)
・EMF+
描画時メタファイルのパラメータはGdiplus::EmfTypeEmfPlusDualを使用して作成しましたので
EMF+として作成されているのかとも思っています。
そうするとENHMETAHEADER←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
リンクありがとうございます。検討してみます。
407デフォルトの名無しさん
2022/11/01(火) 11:53:24.91ID:8bbAESJs >>406
すいません、一部訂正です。
【誤】そうするとENHMETAHEADER←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
【正】そうするとCF_ENHMETAFILE←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
すいません、一部訂正です。
【誤】そうするとENHMETAHEADER←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
【正】そうするとCF_ENHMETAFILE←拡張メタファイル (EMF) を使用しても良いものか疑問に思っています
408デフォルトの名無しさん
2022/11/03(木) 03:29:06.05ID:lhbjAvOX マルチするアホは原則スルー
ネットマナーおじさんとの約束だぞ
ネットマナーおじさんとの約束だぞ
409デフォルトの名無しさん
2022/11/03(木) 10:41:37.80ID:tn2ZhR3p ?
他スレを勧められて続きはそっちでやることを宣言したのに、マルチ警察はこの上何を望むんだろう。
他スレを勧められて続きはそっちでやることを宣言したのに、マルチ警察はこの上何を望むんだろう。
410デフォルトの名無しさん
2022/11/03(木) 10:49:58.97ID:dhtr0mvL 前スレで詳しいやつが回答してるのにアスペから自分にはわからんから移動しろと言われてここに来てるだけのアホだから
411デフォルトの名無しさん
2022/11/03(木) 11:18:16.59ID:tn2ZhR3p マルチがどうこうより、せっかく回答したのに無視されたのが気に入らないってことね。
412デフォルトの名無しさん
2022/11/03(木) 11:28:13.59ID:irjlHMAb 回答があるのに他で聞くのはマルチだろ
マルチがなぜ嫌われるのか理由までは知らないのか
マルチがなぜ嫌われるのか理由までは知らないのか
413デフォルトの名無しさん
2022/11/03(木) 11:47:59.65ID:tn2ZhR3p マルチをしないからといって回答が無視されなくなるわけではないからそこは的外れだと思うぞ。
414デフォルトの名無しさん
2022/11/03(木) 11:57:08.08ID:irjlHMAb アスペかな?
415デフォルトの名無しさん
2022/11/03(木) 14:53:14.39ID:XfULePpa >>408
スレ立てるまでもない質問はここで 162匹目 に質問を出しました。
253 で49161は何のフォーマットか質問しました。
254 で汎用DataObjectだとレスを頂きました。
256 で254に対するお礼のレスをしました。
257 でWin32API質問箱 Build127の方が良いのでは?とレスを頂きました。
258 で そちらで聞いてみます と257にレスしました。
その後Win32API質問箱 Build127 に移って 398 で質問を始めました。
以上が今までの経緯なのですが、何か問題があるのでしょうか?
スレ立てるまでもない質問はここで 162匹目 に質問を出しました。
253 で49161は何のフォーマットか質問しました。
254 で汎用DataObjectだとレスを頂きました。
256 で254に対するお礼のレスをしました。
257 でWin32API質問箱 Build127の方が良いのでは?とレスを頂きました。
258 で そちらで聞いてみます と257にレスしました。
その後Win32API質問箱 Build127 に移って 398 で質問を始めました。
以上が今までの経緯なのですが、何か問題があるのでしょうか?
416デフォルトの名無しさん
2022/11/03(木) 15:08:57.81ID:SIQRCQUk 面倒くさいから追いかけないけど、別に問題あるようには見えない
>>410が正解書いてるような空気醸しだしてるから、その回答レス番書いてくれたら話が変わるかもしれんけど
実は正解ではない別のレスを書いててスルーされた恨みで警察に転職した可能性も感じる
>>410が正解書いてるような空気醸しだしてるから、その回答レス番書いてくれたら話が変わるかもしれんけど
実は正解ではない別のレスを書いててスルーされた恨みで警察に転職した可能性も感じる
417デフォルトの名無しさん
2022/11/03(木) 15:26:38.66ID:76hysst1 恨みとか知らんし警察は俺じゃないけど雑な質問だからそれなりの回答しかしてない
詳しく聞けば教えてやったけど
こっちの方が詳しい人がいると聞いてすぐ移ったから回答しなかっただけだが回答しなきゃいけない理由もないだろ
こっちの詳しい人()に聞けばいいだけ
それで何か問題あるか?
詳しく聞けば教えてやったけど
こっちの方が詳しい人がいると聞いてすぐ移ったから回答しなかっただけだが回答しなきゃいけない理由もないだろ
こっちの詳しい人()に聞けばいいだけ
それで何か問題あるか?
418デフォルトの名無しさん
2022/11/03(木) 15:43:26.06ID:/zL/TWh/ 向こうのスレみて来たけど、マルチ嫌いの俺ですら全く問題ないなw
なにを拗ねてるんだこやつは
なにを拗ねてるんだこやつは
419デフォルトの名無しさん
2022/11/03(木) 15:46:54.91ID:76hysst1 知ってることを回答しないだけで非難される言われはないぞw
お前が教えてやればいいだけ
本人でないならな
お前が教えてやればいいだけ
本人でないならな
420デフォルトの名無しさん
2022/11/03(木) 15:47:33.06ID:76hysst1 俺より詳しいやつがいるスレだからそれで問題ないはずだが何を怒ってるのか
421デフォルトの名無しさん
2022/11/03(木) 15:48:42.41ID:SIQRCQUk422デフォルトの名無しさん
2022/11/03(木) 16:06:19.20ID:GeJ34bDq 49161は何のフォーマットか?なんてのは枝葉で
本質は同じフォーマットになるような方法はないのか?なんだよな
わからん
本質は同じフォーマットになるような方法はないのか?なんだよな
わからん
423デフォルトの名無しさん
2022/11/03(木) 16:13:11.60ID:GeJ34bDq 枝葉への回答は前もココにも付いてる通り 汎用データオブジェクト
これで最初の質問は完了してるん
これで最初の質問は完了してるん
424デフォルトの名無しさん
2022/11/04(金) 00:59:05.47ID:TddW6oN3 この手のマニアックなのはstackoverflow漁るか英語で聞いた方が早いよ
425デフォルトの名無しさん
2022/11/05(土) 00:48:25.93ID:mvfmSa9B EMFは糞
GDI+も糞
GDI+も糞
426デフォルトの名無しさん
2022/11/06(日) 21:20:50.65ID:ZfA7UEIS 特定のウィンドウがFlashWindowしてるかどうか知りたいのですが、何か方法はありませんか?
画像取得して色確認するとかしかないですか?
画像取得して色確認するとかしかないですか?
427デフォルトの名無しさん
2022/11/07(月) 05:59:08.49ID:SWCRxCfW SetWindowsHookEx() を使用して、シェル フック HSHELL_FLASH (0x8006) をコールバックに登録します。
https://stackoverflow.com/questions/69806213/is-there-a-way-to-detect-when-a-specific-process-is-flashing-its-window-taskbar
https://stackoverflow.com/questions/69806213/is-there-a-way-to-detect-when-a-specific-process-is-flashing-its-window-taskbar
428デフォルトの名無しさん
2022/11/07(月) 17:30:23.05ID:4qt4VSUI ありがとうございます
429デフォルトの名無しさん
2022/11/16(水) 18:14:29.04ID:wmtCAqUs OEM製品だな
430デフォルトの名無しさん
2022/11/18(金) 21:22:52.50ID:zsUVThtH セッションID=0のタスクスケジューラーのプロセスから他のセッションID=1以上のGUI持ってるプロセスの操作したいんだけど
同じセッションIDのプロセスを作ってやらないと無理だったかな
同じセッションIDのプロセスを作ってやらないと無理だったかな
431デフォルトの名無しさん
2022/12/06(火) 11:39:49.01ID:63yxghiR スレッドが自身のスタック領域の開始アドレスを知る方法はありますか?
サイズならTEB構造体から取得できるようなんですが
参考
https://ja.stackoverflow.com/questions/47840/windows-visual-studio-2015-c-%E3%81%A7%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
サイズならTEB構造体から取得できるようなんですが
参考
https://ja.stackoverflow.com/questions/47840/windows-visual-studio-2015-c-%E3%81%A7%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%AE%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95
432デフォルトの名無しさん
2022/12/06(火) 18:52:16.04ID:uLZynctc >>431
サンプルソースは見たの?
>サイズならTEB構造体から取得できるようなんですが
正確にはStackBase, StackLimit を取得できるので、その差分からサイズを求めている。
teb->Reserved1[1] を使えばよいはず。
サンプルソースは見たの?
>サイズならTEB構造体から取得できるようなんですが
正確にはStackBase, StackLimit を取得できるので、その差分からサイズを求めている。
teb->Reserved1[1] を使えばよいはず。
433デフォルトの名無しさん
2022/12/08(木) 05:02:17.43ID:7N/fyoNc434デフォルトの名無しさん
2022/12/19(月) 11:12:22.75ID:aTW+qgB5 ディスクへの書き込みを別の場所へ書き込むようにインターセプトすることってドライバじゃないと不可能?
ReadDirectoryChangesやFindFirstChangeNotificationって通知だけでディスク変更操作に手を加える事は出来ないよね
パスが常に一定の物であればジャンクションやシンボリックで対応可能なんだけど
ReadDirectoryChangesやFindFirstChangeNotificationって通知だけでディスク変更操作に手を加える事は出来ないよね
パスが常に一定の物であればジャンクションやシンボリックで対応可能なんだけど
435デフォルトの名無しさん
2022/12/25(日) 08:27:23.13ID:z6jdEPeL その程度の知識の素人が手を出せるレベルの処理じゃないだろ
仮想デバイスとかどうすんの
仮想デバイスとかどうすんの
436デフォルトの名無しさん
2023/01/19(木) 12:53:53.04ID:RyyxmaOy 古い32bitプログラムをVS(ツールセット2010)でx64でビルドしてるんですが
「外部シンボル "sprintf" は未解決です」などのリンクエラーが大量に出て困ってます。
「legacy_stdio_definitions.lib」を使えという情報もあったんですが
2010ベースだと恐らくない?為か見つからないと怒られます。
色々事情があって最新版には移行出来ません。64bit化は諦めるしかないでしょうか?
「外部シンボル "sprintf" は未解決です」などのリンクエラーが大量に出て困ってます。
「legacy_stdio_definitions.lib」を使えという情報もあったんですが
2010ベースだと恐らくない?為か見つからないと怒られます。
色々事情があって最新版には移行出来ません。64bit化は諦めるしかないでしょうか?
437436
2023/01/19(木) 14:01:27.21ID:RyyxmaOy >436
チマチマと自分で設定弄ったりしてたら解決出来そうでした。
チマチマと自分で設定弄ったりしてたら解決出来そうでした。
438デフォルトの名無しさん
2023/01/20(金) 00:30:28.27ID:a17vtIUU ちゃんと無いなら自分で作るのもあり
439デフォルトの名無しさん
2023/01/22(日) 10:35:53.94ID:JlW1CBNq Windows Explorerではファイルに由来する属性、例えば画像のサイズとか、
MP3のタイトル、プログラムの説明とか表示できるけど、
それを取得するAPIは用意されててつかえたりしますか?
それともあれはExplorerで頑張って色んなフォーマットに対応してるの?
MP3のタイトル、プログラムの説明とか表示できるけど、
それを取得するAPIは用意されててつかえたりしますか?
それともあれはExplorerで頑張って色んなフォーマットに対応してるの?
440デフォルトの名無しさん
2023/01/22(日) 12:15:09.84ID:6SRGa8RT >>439
このあたり↓ではないか?
MP3ファイルからタイトルやアーティスト名などを取得するには?[C#、VB] - @IT
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
Shell Interface (Shell32) | Microsoft Learn
https://learn.microsoft.com/en-us/dotnet/api/shell32.shell
間違ってたらごめんね
このあたり↓ではないか?
MP3ファイルからタイトルやアーティスト名などを取得するには?[C#、VB] - @IT
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
Shell Interface (Shell32) | Microsoft Learn
https://learn.microsoft.com/en-us/dotnet/api/shell32.shell
間違ってたらごめんね
441439
2023/01/22(日) 13:35:39.24ID:JlW1CBNq >>440 Shell32.dllのGetDetailsOfを使うのずばりでした。
ありがとう!自前で全部揃えるのは嫌だとおもってたから。
ありがとう!自前で全部揃えるのは嫌だとおもってたから。
442デフォルトの名無しさん
2023/01/22(日) 18:45:34.11ID:6SRGa8RT >>440
2つ目のURLは違ったね。多分こっち↓だ
Shell object (Shldisp.h) - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/shell/shell
訂正します
2つ目のURLは違ったね。多分こっち↓だ
Shell object (Shldisp.h) - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/shell/shell
訂正します
443デフォルトの名無しさん
2023/01/27(金) 14:29:22.14ID:BWAW0Di3 >436-437
もう解決したみたいだけど
文字通り legacy_stdio_definitions.lib をリンクすれば良い
あるいは sprintf をやめて安全な snprintf (それ以外の legacy があればそれらも) 等を使うコードに変更する
もう解決したみたいだけど
文字通り legacy_stdio_definitions.lib をリンクすれば良い
あるいは sprintf をやめて安全な snprintf (それ以外の legacy があればそれらも) 等を使うコードに変更する
444デフォルトの名無しさん
2023/01/28(土) 15:17:14.74ID:SSo2rJoB 俺もそろそろANSI32bitアプリをunicode64bitアプリに更改したいなあ
まあ64bitにする意味は全く無いんだけど
せめてunicode化して、流行りの顔文字ぐらい表示できるようにしたい
あれのレンダリングはどうやるんだろうね
TextOutみたいなレベルのAPIじゃ無理だよね?
まあ64bitにする意味は全く無いんだけど
せめてunicode化して、流行りの顔文字ぐらい表示できるようにしたい
あれのレンダリングはどうやるんだろうね
TextOutみたいなレベルのAPIじゃ無理だよね?
445デフォルトの名無しさん
2023/01/28(土) 16:02:05.59ID:u99kbCnW >>444
Direct2Dなので描画ハンドラ関数の丸ごと書き換えが必要
Direct2Dなので描画ハンドラ関数の丸ごと書き換えが必要
446デフォルトの名無しさん
2023/01/28(土) 22:31:52.79ID:xHLhsNzv 正確にはDirect2D+DirectWriteだね
447デフォルトの名無しさん
2023/02/01(水) 03:54:55.92ID:axeNk+I4 QueryPerformanceFrequencyで取得した値が10MHzになってるんですが
何時からこの値になったのか、時期と実装が変わった経緯分かる方いますか??
何時からこの値になったのか、時期と実装が変わった経緯分かる方いますか??
448デフォルトの名無しさん
2023/02/01(水) 07:50:03.36ID:9aEQ8dCa もともとハードウェア次第だし、実装を変えたというわけじゃないんじゃね?
https://ja.wikipedia.org/wiki/High_Precision_Event_Timer
https://ja.wikipedia.org/wiki/High_Precision_Event_Timer
449デフォルトの名無しさん
2023/02/06(月) 00:05:16.01ID:diZedZj+450デフォルトの名無しさん
2023/02/06(月) 00:41:55.57ID:bCXM4GAa451デフォルトの名無しさん
2023/02/12(日) 10:07:22.45ID:/9PGWL3V ResEditが無くなってしまったみたいだけど、何があったんや?
単に需要がなくなっただけ?
単に需要がなくなっただけ?
452デフォルトの名無しさん
2023/02/12(日) 11:39:51.87ID:beRYzW3b 統合環境と一体化した
453デフォルトの名無しさん
2023/02/13(月) 02:53:34.52ID:S9jIVDl5 ウィンドウメッセージキューと socket を WaitForMultipleObjects みたいに同時に待ち受ける方法はある?
現状は通信処理は別スレッドでやってるけど、これを敢えて GetMessage のループでやりたい。
というのも、好奇心上の取り組みでメモリ使用量を極限まで減らしたくて、まずスレッドを減らしてみようと思って。
あとちょっと API の話からは逸れるんだけど、VisualStudio で C++ のデスクトップアプリの雛形をビルドしただけのものでもメモリをコミットサイズで 2MB とか食ってて、スレッドも 4つくらい動いてるんだけど、これって何?
起動してから少し放っておくとスレッドは 3つくらい終了するから、いらないものなら排除したい。
いろいろ削ぎ落とすリンカオプションの設定とかあったら教えてほしい。
スタックサイズやヒープサイズは数十KBに設定してみたけど、あんまり違いは見えない。
現状は通信処理は別スレッドでやってるけど、これを敢えて GetMessage のループでやりたい。
というのも、好奇心上の取り組みでメモリ使用量を極限まで減らしたくて、まずスレッドを減らしてみようと思って。
あとちょっと API の話からは逸れるんだけど、VisualStudio で C++ のデスクトップアプリの雛形をビルドしただけのものでもメモリをコミットサイズで 2MB とか食ってて、スレッドも 4つくらい動いてるんだけど、これって何?
起動してから少し放っておくとスレッドは 3つくらい終了するから、いらないものなら排除したい。
いろいろ削ぎ落とすリンカオプションの設定とかあったら教えてほしい。
スタックサイズやヒープサイズは数十KBに設定してみたけど、あんまり違いは見えない。
454デフォルトの名無しさん
2023/02/13(月) 03:36:15.30ID:X7RxD/JY >>453
MsgWaitForMultipleObjects を使う
MsgWaitForMultipleObjects を使う
456デフォルトの名無しさん
2023/02/14(火) 08:25:48.17ID:WQfmJH2L ソケットなら WSAAsyncSelect でソケットのイベントを WindowMessage に連動させる案もある
458デフォルトの名無しさん
2023/02/15(水) 11:23:09.93ID:bSshLO82 シンプルにやるならGetMessageじゃなくPeekMessageでノンブロックループして定点観測するという事も出来る
459デフォルトの名無しさん
2023/02/15(水) 12:21:16.78ID:bwlsc68o460デフォルトの名無しさん
2023/02/15(水) 13:10:37.60ID:J40TkLkU ところで、メッセージループで GetMessage したメッセージを DispatchMessage せずに、そのループ内で処理しちゃってもいい?
ウィンドウプロシージャに書いてる switch やら DefWindowProc をループ内に直接書いちゃうの。
ウィンドウプロシージャに書いてる switch やら DefWindowProc をループ内に直接書いちゃうの。
461デフォルトの名無しさん
2023/02/15(水) 13:33:51.32ID:bSshLO82 >>459
いや何も処理する事がなければSleep(1)でも挟むのが常套手段
GetMessageの内部だってそうなってるはず
GetMessageの場合はカーネル空間でループ回してるだろうからPeekMessageループよりIO回数が減ってパフォーマンス上は有利だろうが
いや何も処理する事がなければSleep(1)でも挟むのが常套手段
GetMessageの内部だってそうなってるはず
GetMessageの場合はカーネル空間でループ回してるだろうからPeekMessageループよりIO回数が減ってパフォーマンス上は有利だろうが
462デフォルトの名無しさん
2023/02/15(水) 13:43:45.82ID:N1k6+oAn >> 460
ダメです
DispatchMessageは自プロセスに飛んできたOSとか他プロセスのメッセージも振り分ける
>> 461
待つならSleep(1)よりもWaitForSingleObjectのほうが軽い
ダメです
DispatchMessageは自プロセスに飛んできたOSとか他プロセスのメッセージも振り分ける
>> 461
待つならSleep(1)よりもWaitForSingleObjectのほうが軽い
463デフォルトの名無しさん
2023/02/15(水) 13:48:07.11ID:S4bShmel >>461
常套手段ってw
そしたら到着したメッセージを即座に処理できないでしょうよ。
イベントを待つというのは待ちながらもシグナル時は即座に反応できるというのが最大の利点なのに、わざわざそれを殺してどうするの。
そしてカーネル空間でも GetMessage は sleep しながらのループでなんか回してないと思うよ。
アプリケーションが何かを待ってる時には、スケジューラがそのアプリの実行を止めてしまう(タイムスライスをあげない)。
GetMessage で言えば OS がメッセージをキューに入れた段階で GetMessage してるプロセスにタスクスイッチする。
ディスクI/O しかり、socket しかり、タイマーしかり。
本当に CPU が何もしないときなら HALT してハードウェア割り込みを待ってる。
常套手段ってw
そしたら到着したメッセージを即座に処理できないでしょうよ。
イベントを待つというのは待ちながらもシグナル時は即座に反応できるというのが最大の利点なのに、わざわざそれを殺してどうするの。
そしてカーネル空間でも GetMessage は sleep しながらのループでなんか回してないと思うよ。
アプリケーションが何かを待ってる時には、スケジューラがそのアプリの実行を止めてしまう(タイムスライスをあげない)。
GetMessage で言えば OS がメッセージをキューに入れた段階で GetMessage してるプロセスにタスクスイッチする。
ディスクI/O しかり、socket しかり、タイマーしかり。
本当に CPU が何もしないときなら HALT してハードウェア割り込みを待ってる。
464デフォルトの名無しさん
2023/02/15(水) 16:44:48.20ID:STPisL/8 WM_KEYDOWN
Ctrl+0(ゼロ)とかShift+0は来るのに、Ctrl+Shift+0は来ないのはなんでなん?
Ctrl+0(ゼロ)とかShift+0は来るのに、Ctrl+Shift+0は来ないのはなんでなん?
465デフォルトの名無しさん
2023/02/17(金) 22:01:39.95ID:rxib1RET 定番のSleep(1)にこれだけ噛みつけるのも面白いな
466デフォルトの名無しさん
2023/02/18(土) 05:24:38.57ID:c4QxGie2 今時sleep(1)が定番とかw
467デフォルトの名無しさん
2023/02/18(土) 11:10:10.06ID:7GI8GwXH マルチコア、メニーコアでスレッド単体だけ見てもな
468デフォルトの名無しさん
2023/02/18(土) 16:35:58.18ID:nz9Z1NDi イベント待ちはSleep(1)のポーリングでもどうでもいいと思うぞ
シングルスレッドで全部処理する場合問題はそこではないし
扱う内容によっては毛局スレッドを分けた方がいいって結論になる
シングルスレッドで全部処理する場合問題はそこではないし
扱う内容によっては毛局スレッドを分けた方がいいって結論になる
469デフォルトの名無しさん
2023/02/18(土) 21:28:29.45ID:CT5am8vz 今時とかじゃない
>>463を読むほど笑えるという話
>>463を読むほど笑えるという話
470デフォルトの名無しさん
2023/02/18(土) 23:58:40.40ID:hE3AXWNH イベントキャッチは1msほどの間隔の粒度でいいの?
471デフォルトの名無しさん
2023/02/19(日) 01:06:15.57ID:svaemBcP タイマーの精度が高くないからSleep(1)でも30msくらいウエイトかかるけどな
472デフォルトの名無しさん
2023/02/19(日) 01:28:55.07ID:15y14fHP 1つの応答基準の60fpsが16.7ms間隔だからその間に処理が終わってれば常人の目には判らないし
待ち行列にメッセージが溜まってたりイベント処理が発生した場合、処理してる間にコンテキストスイッチが何度も起きて場合によっては1msなんて超えてくる
Sleep(1)はOSに時間を明け渡す気がありますよ程度の意味しかない
待ち行列にメッセージが溜まってたりイベント処理が発生した場合、処理してる間にコンテキストスイッチが何度も起きて場合によっては1msなんて超えてくる
Sleep(1)はOSに時間を明け渡す気がありますよ程度の意味しかない
473デフォルトの名無しさん
2023/02/19(日) 01:46:44.83ID:QabSn9vm マウス、キーボードの処理、ダイアログの更新のメッセージ処理くらいなら事足りる
昔のゲームもOllyDbgやIDAつかって覗いてみるとPeekMessageやGetTickCount等を使って一定時間間隔のメッセージ処理ループをやってた
昔のゲームもOllyDbgやIDAつかって覗いてみるとPeekMessageやGetTickCount等を使って一定時間間隔のメッセージ処理ループをやってた
474デフォルトの名無しさん
2023/02/19(日) 08:53:33.42ID:zBhvMYFK >>473
それはウィンドウメッセージ以外の処理を並行してやるためでしょ。
均等時間で処理を進めたいとかそういう事情が無ければ大人しくイベント待ちすればいいのに、そうせずわざわざ Sleep するとどんないいことがあるの?
それはウィンドウメッセージ以外の処理を並行してやるためでしょ。
均等時間で処理を進めたいとかそういう事情が無ければ大人しくイベント待ちすればいいのに、そうせずわざわざ Sleep するとどんないいことがあるの?
475デフォルトの名無しさん
2023/02/19(日) 10:13:58.24ID:xSIr/CQB 昔の知識否定されてファビョってるだけだろ
わざわざ昔のゲームとかw
わざわざ昔のゲームとかw
476デフォルトの名無しさん
2023/02/19(日) 10:23:12.36ID:QabSn9vm 前レスよく読まなかったけど、GetMessage()で済むところをPeekMessage();Sleep(1);でループしてメッセージのポーリングするってことか。
なんでわざわざそんなことを?w
なんでわざわざそんなことを?w
477デフォルトの名無しさん
2023/02/19(日) 10:54:48.53ID:jNkDtxGh WinFormsのソースもPeekMessageでWindowメッセージがあればそれの処理、無ければタスクキュー処理って流れだったはず
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- Apple Arcade凄い。ゲーム遊び放題。言うなればゲームの食べ放題。サブスク
- 犯罪者たち「刑事罰受けて罪は償った!被害者への賠償金?もう反省済みだから一円も払わねーよばーかwww」 [177178129]
- ㊗157円 [194819832]
- 【高市会談】 長年、日本初の女性首相を目指し争った 百合子と早苗「国と都の補正予算で連携するわよ!」 首相官邸で初会談 [485983549]
