X



Win32API質問箱 Build127
0001デフォルトの名無しさん
垢版 |
2021/12/09(木) 21:32:56.60ID:sYLpmj89
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/
0653デフォルトの名無しさん
垢版 |
2023/05/19(金) 20:19:56.03ID:c7UfD3kr
ReactOSはかなり似てるけどね
アイコンはTangoのを使ってるけど、形的なものはそっくりだな
テーマ機能があるから、訴えられても簡単に変えられるし、大した問題でもないが
0654デフォルトの名無しさん
垢版 |
2023/05/19(金) 20:39:13.36ID:OUfVoMDF
https://monolith-law.jp/corporate/design-ui-copyright-law

レイアウトや色の使い方ぐらいじゃ侵害にはならないだろうって判断と
あとは「思想又は感情を創作的に表現」したものであるかが関わる
それと著作権法に触れなくても意匠法にに触れる場合はあるとさ

>>651
複雑なデザインのボタンがあってそれを丸コピしたなら危ないけど
WinAPI程度のボタンだと「レイアウトや色の使い方」の範疇に思う
0656デフォルトの名無しさん
垢版 |
2023/05/19(金) 22:40:34.19ID:9QPyu6+L
悪目立ちしなきゃ大丈夫って感じかな
どうもありがとう
素直に使いこなせれば変なことしなくていいんだけど
0658デフォルトの名無しさん
垢版 |
2023/05/20(土) 15:28:47.38ID:GL6RWJiS
あの立体的に飛び出たボタンは誰が最初にやったかを少し調べてみたら、やっぱりMotifが最初にやった可能性が高いな
Windowsも旧Mac OSもMotifより前にリリースされてるけど、ボタンは黒い線で縁取られてるだけだからね
Motifがリリースされた1989年の直後、1990年にWindows3.0がリリースされてボタンが立体的になった
ただ、リリース直後のMotifの見た目は確認出来なかった
0659デフォルトの名無しさん
垢版 |
2023/05/21(日) 05:50:22.86ID:wNzdA/GS
誰も突っ込まないけどWin32APIのGUIってなんだよ?
0663デフォルトの名無しさん
垢版 |
2023/05/21(日) 17:54:29.28ID:BWx6f6vD
CreateWindow() のどこがGUIなんだって話なんだけど。
GUIを構成するためのAPIの一つではあるがGUIと言われても違和感しかない。
0664デフォルトの名無しさん
垢版 |
2023/05/21(日) 18:18:37.48ID:Ifo/fxoU
皆行間読んで回答してるんだよ
そういうのを読み取れずにいちいち突っかかってくるお前に違和感しかないわ
0665デフォルトの名無しさん
垢版 |
2023/05/21(日) 20:46:54.79ID:BWx6f6vD
行間が読み取れてないわけでも突っかかったわけでもなくて
気になる人いないの?って問うただけなんだけどね。
0667デフォルトの名無しさん
垢版 |
2023/05/21(日) 21:06:29.15ID:WLjUQB8s
GUIのデザインパクっていいっすか?だろ?
左上にシステムメニューと閉じるボタン
右上にアイコン化、全画面化がWindows3.1のGUIだ
0668デフォルトの名無しさん
垢版 |
2023/05/21(日) 22:29:14.29ID:5ynrmfbS
よく読めよ
ボタンのビットマップとかのGUIパーツについて言ってるだろ
GUIのメソッドについてはパクるまでもなくAPI呼び出せば自然にそうなるから
0671デフォルトの名無しさん
垢版 |
2023/05/22(月) 11:33:40.49ID:Omf9ofNg
Win32API の話ならム板
Win32API の著作権の話ならマ板
Win32APIのGUI?(ツールのデザイン)? の著作権の話なら著作権板
だろうな
遠すぎる
0672デフォルトの名無しさん
垢版 |
2023/05/22(月) 22:29:16.30ID:DLlnfzHn
うるせー馬鹿
0673デフォルトの名無しさん
垢版 |
2023/06/01(木) 18:53:13.24ID:hCiag/wO
winsqlite3って勝手に最新版のsqlite3でstdcallにしてコンパイルして上書きしても問題起こらないんかな
0674デフォルトの名無しさん
垢版 |
2023/06/06(火) 23:10:55.17ID:VJFPZJIc
テキストカーソルインジケーターをアプリに組み込みたいんですが、どこかにサンプルコードないですか?
0682デフォルトの名無しさん
垢版 |
2023/06/08(木) 21:52:05.26ID:xczGeZ8q
キャレットもそうだけど、最近なんか範囲選択表示で、半透明の矩形上に重ねるだけのエディタ多くね?
あれ見づらいんだよなぁ・・・フルスクラッチで作るなら確かに横着できて楽なんだろうけど
0683デフォルトの名無しさん
垢版 |
2023/06/08(木) 22:08:34.87ID:asQ3aAAN
エディットコントロール自作はやめたほうがいい

IMEが機能してるように見えても、音声入力や音声入力編集、読み上げで制限があるのが大半だから
キャレットもOSの強調表示機能があるし、知らないところで多機能を要求される
0684デフォルトの名無しさん
垢版 |
2023/06/09(金) 00:33:21.65ID:HaYoNzhW
自作エディットコントロールわざわざ作るときって巨大ファイル編集したいとかじゃないの
OSが勝手に後付けしたアクセシビリティ機能とか知らんでいいよ
0690デフォルトの名無しさん
垢版 |
2023/06/09(金) 21:43:38.94ID:KphHYdc7
>>686
emEditor世話になっているけど意外に保存遅いんだな
まぁ頻繁に保存するような用途じゃないんだけど

そういや日本語フォント最速表示って今なんなんだろう、DirectWrite?
アルファベットなら予めテクスチャに全部落とせばいいんだろうけど
0691デフォルトの名無しさん
垢版 |
2023/06/09(金) 22:38:21.40ID:9anYwuVY
>>686,688はフリーじゃない

>>690
>意外に保存遅い
emEditorは今でも活発に最適化に努めてるから最新ではどうなのか不明

飽くなき高速化への挑戦! 「EmEditor」はマルチスレッド・SIMD命令・仮想メモリをフルに使って進化
https://forest.watch.impress.co.jp/docs/special/1483714.html

freetypeが早いけどDWはOSがキャッシュしてくれる(ctfmon.exe)のが有利
harfbuzzもラスタライズしてくれるけどbitmapヒンティング切捨て、速度は不明
GDIはカラー絵文字ないから新規では厳しい

古い記事だけど 2017-05-21 GDI vs DirectWrite vs FreeType
https://i.imgur.com/8nDxIa3.png
https://silight.ハテナblog.jp/entry/2017/05/21/220505

TATEditorはfreetype (本来の速度より遅い気がする)
MeryはDW選択可能

今のnotepadはDWだと思うけどパラメータのせいなのか、同じ日本語フォントでもMeryの方がキレイ
一度気が付くと気になって仕方ない
0692デフォルトの名無しさん
垢版 |
2023/06/10(土) 16:44:39.28ID:Yvl44ooC
昔はメモ帳やらエディットボックスが32KBだかしか開けなかったせいでちょっと長いテキスト表示したいなら自作するしかなかったし
今のエディットボックスも使いやすいというわけでもないし
0697デフォルトの名無しさん
垢版 |
2023/06/13(火) 16:26:23.21ID:u7AmJNUj
>>693
むしろエディタには完全自作しかない
エディタにあるような複雑な禁則事項はエディトボックスでは扱えない
0698デフォルトの名無しさん
垢版 |
2023/06/14(水) 08:13:22.34ID:EjsNogN3
高校生の頃からHTML直打ち自前サイト始めたから、秀丸にはお世話になったわw
0699デフォルトの名無しさん
垢版 |
2023/06/14(水) 23:13:37.25ID:8tGzhu5T
>>691
690だけど遅レスですいません、詳しくありがとうございます
社内で使う遊びツールに活かさせて頂きます

というかここまで詳しい人ってもう
0700デフォルトの名無しさん
垢版 |
2023/06/19(月) 14:24:30.00ID:x2sgiUfE
FindWindowで他プロセスの生存確認を行っているのですが、その該当プロセスが死んではないものの
応答無しレベルで重い場合にFindWindowがNULLを返すことはあるのでしょうか?
ここでは他プロセスのトップウィンドウを検索しています。

該当プロセスが本当に死んでるなら当然でしょうが、それ以外でNULLを返す可能性があるならば
対策をしようと思いつつも、そんな可能性がないなら無駄なのでご存じの方よろしくお願いいたします。

さっとググった感じでは、他プロセスの子ウィンドウを検索する場合は問題ありのような感じですが、
本件はそうではないですしほとんどの場合NULLではなく正常にウィンドウハンドルを返してくれています。
0703デフォルトの名無しさん
垢版 |
2023/06/19(月) 16:12:12.17ID:x2sgiUfE
>>701
その通りなのでその辺の修正を視野に入れていますが、中々再現性が薄いのもあり、そもそもの仕様として
どうなのかなという確認の意味で質問しました。

>>702
どうもすみません。説明に抜けというか間違いがありました。
生存確認だけではなく、WM_APP+nメッセージも送るためウィンドウハンドルが必要となります。
(実際、死んでいるなら起動処理も入れていますが)

要はプロセス間通信をしているのですが、データ自体はファイルマッピングによる転送、転送のトリガー通知を
メッセージ送信にしています。
0704デフォルトの名無しさん
垢版 |
2023/06/20(火) 13:30:15.15ID:Dvlv0UV+
FindWindowで見つからないならHWNDも取れないんだし居ない者でいんじゃね
つかそこ悩むことじゃなくね
0706デフォルトの名無しさん
垢版 |
2023/06/20(火) 16:49:06.07ID:Dvlv0UV+
まずプロセス間通信するなら相手が居ない場合を必ず想定すべきでFindWindowの1度の呼び出しで一喜一憂すべきではない
プロセスの起動し直しも前提に数秒おきのFindWindow呼び出しポーリングはしたっていいと思うよ
メインウィンドウなんて高々数十個だしそんな負荷にならない
0707デフォルトの名無しさん
垢版 |
2023/06/20(火) 20:40:34.74ID:1lEw2nNB
該当プロセスを他プロセスから起動してたりするとどうなんだろ
あとFindWindowじゃなくてEnumWindowsなら拾えないことって無い印象だなぁ、ハンドルも取れるし

あまり関係ないけど、うちのクソシステムだとブラウザからサーバー上にあるエクセル開くんだけど、
Workbooksで拾えたり拾えなかったりするのよね(ExcelVBA)
0708デフォルトの名無しさん
垢版 |
2023/06/21(水) 03:06:59.92ID:xVHig5c/
>>704
複数起動しないようmutexかけてるので、プロセス生きてるにもかかわらずFindWindowがNULL返すのなら好ましくないなと。

>>705
古いよ。保守だけで毎月3桁くれるんだからおいしい。

>>706
とりあえず見つからないならエラーも取得しつつ数秒間再試行かけてみました。
これで様子を見ます。

>>707
該当プロセスは他のプロセスからも起動したりテスト作業で自分で起動したりしてますが、一応拾えてますね。
0709デフォルトの名無しさん
垢版 |
2023/06/21(水) 08:17:17.70ID:HzwHqkRi
mutex の排他って CreateWindow する前 & メッセージループする前だから
プロセスは存在してるけど、window は無いって 中間的な状態じゃね?
0715デフォルトの名無しさん
垢版 |
2023/07/23(日) 16:38:12.26ID:eEbrANA6
POSIXのopenatとかをWindowsで実装したいんだけど、
NtCreateFileを使えとは見るんだけど、
実際のコードは見たなことない。

gnulibから実装した方がいいのかな?
0716デフォルトの名無しさん
垢版 |
2023/07/24(月) 12:54:52.49ID:IGsOjAN4
不特定多数に文字だけで意思疎通するには答えやすい尋ね方というのがあると思うが、そんなことよりスクリーンセーバー作ろうぜ
0718デフォルトの名無しさん
垢版 |
2023/08/04(金) 11:13:07.90ID:2Yu2Iz7N
IME のオンとオフの実装で以前は
ImmGetContext
ImmSetOpenStatus
ImmReleaseContext
の3点セットで完全にオンとオフが機能していたように記憶しているのですが
今のWindowsでは機能しないことがあります(Windows 11 Home 22H2 OS Build 22621.2070)
この原因や解決策をわかる方がいたら教えてほしいです
Windows の公式サンプルでもこの3点セットでオンオフを実装しています
github.com/microsoft/Windows-classic-samples/blob/ac06e54a15e9a62443e400fffff190fb978ea586/Samples/Win7Samples/winui/input/ime/fullime/Main.C#L237
0721デフォルトの名無しさん
垢版 |
2023/08/14(月) 19:56:12.96ID:53r0CZc5
y=f(x)のグラフを描こうとした場合、GDIのLineTo()で書けますが
グラフとx軸の間の領域を背景とは異なる色で描画しているアプリを
見かけることがあります。
ベタにやろうとすると(x,0)から(x,f(x))までを別のペンでLineToすれば
できそうですが、それだとあまりにも遅そうなんでどのようにするのが
一般的なんでしょうか?
0722デフォルトの名無しさん
垢版 |
2023/08/14(月) 19:58:40.11ID:KSpEuPpD
polygon
0723デフォルトの名無しさん
垢版 |
2023/08/14(月) 23:17:07.87ID:Vf3oM49A
>>721
グラフを描画するのであれば、さすがにそういうのに向いたプログラミング言語を使ったほうが
本質的な所に時間を使えるんじゃないか?
0724デフォルトの名無しさん
垢版 |
2023/08/14(月) 23:53:10.89ID:hsUNKBWX
(分かりやすく)グラフが丁度収まる矩形サイズの描画メモリをCreateDIBSectionとかで確保して
掛け算や条件文をなるべく使わずに、直接メモリを塗りたい色で書き換えて、
最後にその描画メモリをバックバッファへ転送する、とか
0725デフォルトの名無しさん
垢版 |
2023/08/15(火) 08:10:50.28ID:eu+UdA0l
PathTo
0726デフォルトの名無しさん
垢版 |
2023/08/15(火) 10:10:52.28ID:whQn6DUa
データ左端,Y軸下端 to データ左端,Y値 to データX値,Y値 to
... to データ右端,Y値 to データ右端,Y軸下端 (to データ左端,Y軸下端)
0728デフォルトの名無しさん
垢版 |
2023/08/15(火) 11:44:42.91ID:5h6JYYPu
自分で線描画してメモリDCでダブルバッファするか
既製のチャートコントロールを使う
jもしくはavascriptにグラフ描画のは沢山あるからそ!をwebview2か何かで表示する
0730デフォルトの名無しさん
垢版 |
2023/08/16(水) 10:30:08.97ID:tgyEZLGb
>jもしくはavascript

斬新ですね
0731デフォルトの名無しさん
垢版 |
2023/09/23(土) 00:28:12.62ID:aQUNS12d
メール関係のライブラリを知っていたら教えてください。
Windowsで使えるライブラリってないのでしょうか。
0732デフォルトの名無しさん
垢版 |
2023/09/23(土) 04:00:25.45ID:kn75UD+k
まああるかないかで答えればあるんだけどさ
メール関係って言われても色んな技術の集合だしなあ
その質問をこのスレで聞いちまう所がまずセンスないよね
0734デフォルトの名無しさん
垢版 |
2023/09/23(土) 14:43:48.51ID:60UGXAh5
送受信はたいしたことないけど
お行儀悪いのを忖度して可視化するのがとても大変
0737デフォルトの名無しさん
垢版 |
2023/09/24(日) 09:35:27.98ID:2YTVyUlC
EHLO
0739デフォルトの名無しさん
垢版 |
2023/09/25(月) 13:09:43.15ID:RmxLVxNP
ERO
0740デフォルトの名無しさん
垢版 |
2023/09/26(火) 13:29:13.68ID:6+Zop4bX
GetTempPathで取得できるフォルダ(AppData\Local\Temp)の中を見ると、
固定名と思われるサブフォルダを作っているアプリが結構あるのですが、
こういうアプリって、その固定名のサブフォルダが他のアプリと競合したり、
同じ名前のファイルがすでに存在していてサブフォルダを作るのに失敗したりするケースは、
ちゃんと想定しているものなんですか?
0742デフォルトの名無しさん
垢版 |
2023/09/26(火) 16:13:27.26ID:6+Zop4bX
>>741
想定していないアプリなんかは、事前に同じ名前の空ファイルでも置いておけば、
テンポラリフォルダを作れなくて正しく動かなくなってしまうということですよね?
0743デフォルトの名無しさん
垢版 |
2023/09/26(火) 16:59:03.55ID:mqYR7ljA
同名のファイルが存在してサブフォルダが作れずに阻害された後
どうなるかも作り手次第だろうね
名前を変えて悪あがきするか、エラー報告して終わるか、だんまりするか・・・
0744デフォルトの名無しさん
垢版 |
2023/09/26(火) 19:44:54.79ID:a3/CUfz+
単なるファイルのコピーすら気を付けても穴だらけだしな
その時点の知識で最良を目指すしかない
0745デフォルトの名無しさん
垢版 |
2023/09/27(水) 02:22:24.50ID:5xG4BOfj
>>740
そもそもTempは一時的なフォルダでしょ
本アプリは上書きで使っていくだけだから影響はないでしょ
キャッシュや恒久的に使用するデータをそこに保存している場合は不具合のもとだろうけど
データ検証しない場合はエラー吐いて落ちるだけじゃね?
0746デフォルトの名無しさん
垢版 |
2023/09/27(水) 08:45:50.87ID:KtsI0JaQ
Tempフォルダの中身は削除されても文句言えない物だから
なんなら同名あったら問答無用で削除して自分用作るすらあると思うわ
0747デフォルトの名無しさん
垢版 |
2023/09/27(水) 11:42:51.73ID:OOPn+kCl
その通り
既存の同名があって作成者が自分じゃなければ消して新しく同名で造れば良い
0748デフォルトの名無しさん
垢版 |
2023/09/27(水) 11:55:22.18ID:rbbJx+dJ
>>740
勝手に数字をつけて存在しない名前を探してくれるAPIがあっただろ
数字は16ビットなので65536個全部あったらだめだが
0750740
垢版 |
2023/09/27(水) 12:37:44.20ID:jK1ZOC3S
みなさんありがとうございます。

>>745-748
テンポラリファイルではなく、固定名のサブフォルダを作るアプリに対する疑問でした。
フォルダ上に同名のファイルがあったら、その名前のサブフォルダは作れないですし。

確かにそれを言い出したら、インストール時も、
Program Filesの中に同名のファイルがあったらどうするんだとか出てきますが。
0753デフォルトの名無しさん
垢版 |
2023/09/27(水) 15:25:13.52ID:CB93ywr3
>>750
テンポラリファイルではなく、固定名のサブフォルダを作る場合は
C:\Users\ユーザー名\AppData\Local\会社名
で作るのが一般的では?(暗黙のルール?)

個人で作ってるならアプリ名を元に他と被らないようにするとか
レスを投稿する


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