- 1 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 21:32:56.60 ID:sYLpmj89.net]
- Win32APIについての質問はこちらへどうぞ。
■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( 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/
- 910 名前: mailto:sage [2024/12/04(水) 07:26:11.55 ID:gY6x2I0M.net]
- !donguri
- 911 名前:デフォルトの名無しさん mailto:sage [2024/12/06(金) 14:09:41.63 ID:L9wmMkNC.net]
- IsWindowVisibleは親ウィンドウの状態も再帰的にチェックしてくれるのに、
IsWindowEnabledは自身の状態しかチェックしてくれないようです 対象のウィンドウがマウス操作などを行える状態かをチェックしたいですが、 IsWindowEnabledで親ウィンドウの状態も参照するバージョンはあるのでしょうか?
- 912 名前:デフォルトの名無しさん mailto:sage [2024/12/06(金) 14:43:02.52 ID:L9wmMkNC.net]
- すいません上に全く同じ質問がありました
失礼しました
- 913 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 22:09:35.75 ID:atnAaKGF.net]
- ステータスバーを分割した場合
WM_SIZEの中でサイズを送信すると思うんだけど |中身に合わせる|中身に合わせる|伸びーる|中身に合わせる|中身に合わせる| みたいな場合はどうやって計算するの?
- 914 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 22:27:50.07 ID:j5Bpxje0.net]
- 中身に合わせるのとこは自分で中身に合わせて
野ビールのとこは放置やね 計算とか無い
- 915 名前:デフォルトの名無しさん mailto:sage [2024/12/12(木) 22:44:16.57 ID:trovn3Vo.net]
- ステータスバーのハンドル使ってDCとフォントを取り寄せる
んでDrawTextを空撃ちすると文字列に必要な幅が分かる。
- 916 名前:デフォルトの名無しさん [2024/12/21(土) 23:35:34.44 ID:37tGDg2N.net]
- IsWindowVisible
IsWindowEnabled EnableWindow のダイアログ版教えて下さい
- 917 名前:デフォルトの名無しさん mailto:sage [2024/12/21(土) 23:44:47.64 ID:VA9QPMmD.net]
- ダイアログも只のWindowっす
- 918 名前:デフォルトの名無しさん [2024/12/22(日) 09:10:18.93 ID:SmvDArN5.net]
- >>903
できました!ありがとう
- 919 名前: mailto:sage [2025/01/03(金) 15:25:05.64 ID:R7434evi.net]
- !donguri
- 920 名前:デフォルトの名無しさん [2025/01/22(水) 00:25:29.57 ID:CKKn8gV4.net]
- iniのキーの一括読み込みで悩んでいます。
冗長にならないよう読み込みたいのですが、下記のコードをfor文で回すというのが自分の知識の限界でしたが、大変わかりにくく困っています。改善点やスタンダードなiniの読み書きの参考になるサイトなどあれば教えていただけると助かります strLen[n] = GetPrivateProfileString( pStrIndex[n] ,//ダブルポインタ NULL , NULL , buf[n] ,//ダブルポインタ 256 , strPath );
- 921 名前:デフォルトの名無しさん mailto:sage [2025/01/22(水) 05:00:50.81 ID:xghKhcgN.net]
- GetPrivateProfileSection関数
- 922 名前:デフォルトの名無しさん [2025/01/22(水) 19:54:34.30 ID:CKKn8gV4.net]
- >>907
ありがとうございます。ですがこの方法ですとセクションごとに別れていないため、私が提示した方法より値を扱いにくいのではないでしょうか? それとも、セクションを除いて必要なキーが何個目にあるかを把握して扱うということなのでしょうか? 後者の場合ですと、わざわざセクションが存在する理由がわかりかねるのですが、直接iniを開いた場合の可読性故に存在しているということでしょうか? 少々実際のコードに落とし込むということがイメージしにくく、躓いてしまっています また、実際に値を取り出す場合はn番目の=から¥nまでの文字列を取り出し、数値に変換するといった具合になるのでしょうか?
- 923 名前:デフォルトの名無しさん mailto:sage [2025/01/22(水) 19:56:56.10 ID:6faY8jOE.net]
- 気に入らないなら自作しなよ
そういうの得意だったよね
- 924 名前:デフォルトの名無しさん mailto:sage [2025/01/23(木) 06:58:43.12 ID:juwbDZ3u.net]
- >>908
セクションごとに別れていない? GetPrivateProfileSectionのドキュメントちゃんと読んだ? やってみた?
- 925 名前:デフォルトの名無しさん mailto:sage [2025/01/23(木) 09:06:22.24 ID:kfksRUHC.net]
- 最後の1文見る限り、GetPrivateProfileSectionのドキュメントすら読んで無いか、読んでてもちゃんと読んで無いのがバレバレ
- 926 名前:デフォルトの名無しさん [2025/01/23(木) 10:24:59.82 ID:MfXmmgFN.net]
- YAMLにしなよ
- 927 名前:デフォルトの名無しさん [2025/01/23(木) 19:37:54.91 ID:i3pjk0RU.net]
- >>910
>>911 今あらためて見たら見当違いのことを言っていますね、失礼しました。 この関数ですとキーの値まで取得できるので活用できる範囲が広そうです。 更に質問なのですが、キーの値を実際に使う際変数に格納する工程は通常こういう書き方をするなどど言ったセオリーは無いのでしょうか? 教えていただいた関数を使用した場合でも値部分を抜き出し配列に格納し、num = p[n]とそれぞれ格納し直していかねばならず、複数の変数を使用している場合はある程度コードが長くなるのは避けられないのでしょうか?
- 928 名前:デフォルトの名無しさん mailto:sage [2025/01/23(木) 20:01:09.20 ID:juwbDZ3u.net]
- セオリーみたいなんは知らないけど
各Key&Valueペアはヌル文字で区切られてて 文字列はヌルターミネートだってことを利用して ポインタを動かしながら一覧化して使ってたかな、自分は 最近はini使ってないから昔の記憶だけど
- 929 名前:デフォルトの名無しさん [2025/01/24(金) 16:07:25.70 ID:n7IYWFd+.net]
- >>914
一覧化という単語でggってみたところ特にそれっぽいものはヒットしませんでした。 どういったことなのでしょうか?
- 930 名前:デフォルトの名無しさん [2025/01/24(金) 16:21:28.46 ID:9uGEaje4.net]
- >>906
iniを使ってる既存のアプリがあってそれを踏襲 しなければならないのなら仕方がないけど、 そうでないなら、いまさらiniなんて使わないほうが良いよ
- 931 名前:デフォルトの名無しさん [2025/01/24(金) 22:51:18.70 ID:pX5+qcQ2.net]
- 忌み数字を踏ませる業者、アプリ、コンピュータプログラムの嫌がらせ
動画再生回数、表示回数、登録者数、フォロワー数、評価数、コメント数、レベル、経験値、ポイント、HP、通貨、価格、メッセージ数、通知数、フレンド数 4(死)、13(キリスト教における忌み数字) 18(嫌)、24(〜に死)、34(〜さん死) 40、42、44 56(殺)、64(無視) 71(無い)、74(無し)、79(無く、亡く) 84(〜は死)、94(〜君死)、96(黒) このような数字と名前や生年月日、IDなどを組み合わせて執拗に強調することで、精神攻撃をする業者やストーカー、嫌がらせ組織がキモい。
- 932 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 00:25:03.57 ID:0Ai0sZJQ.net]
- ini
XML JSON YAML TOML
- 933 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 06:51:49.08 ID:j/rBX//M.net]
- dat
- 934 名前:デフォルトの名無しさん [2025/01/25(土) 14:22:52.24 ID:sFzIAkAR.net]
- >>916
そういうわけではありませんが、全くの初心者ですので、情報の多い古い技術を頼ることにしました
- 935 名前:デフォルトの名無しさん [2025/01/25(土) 16:04:18.33 ID:9QNSyzV2.net]
- ini ゴミ
XML 冗長 JSON ゴミ YAML がんがれ TOML RustのcratesとかPythonのPoetryでしか観ないな
- 936 名前:デフォルトの名無しさん [2025/01/25(土) 20:28:14.71 ID:sFzIAkAR.net]
- >>921
それぞれに対する評価を書き込むのも乙ですが ここにコードの書き方で迷っている子羊がいるので、実際の書き方の一例でも見せてみるというのも一興ではありませんか?
- 937 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 21:29:48.91 ID:0Ai0sZJQ.net]
- iniを読む時は、
・セクション名は指定する ・キーを指定して対応する変数に代入する ・複数要素指定したい場合には、 - キーの末尾に1,2,3,... とつけて見つからなくなるまで読む - 別のキーで個数を指定する - キーを一つにして値をカンマ区切りやスペース とかで、iniファイルのキーの一覧を動的に取得するとかをなるべくしないほうが楽。
- 938 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 21:33:29.11 ID:0Ai0sZJQ.net]
- 読みたいキーが50個あるなら、
GetPrivateProfileString() か GetPrivateProfileInt() を 50回書けばいい。 ループとか考えずにベタで書いたほうがバグらない。 変数名書き換え忘れとかはよくあるけど。 1,2,3,...とかやるところはループで。
- 939 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 21:54:22.37 ID:HZDjTK1Q.net]
- APIのGet何某は1セクション1キーの読み書きの度にファイルオープンからやるから糞遅いよ
vbscriptからiniを読み書きしたい時があってその時は大した手間でもないし全部自作したよ セクションを駆使すれば構造化できるしコメントも書けるから下手な外部データ構造よりも扱いやすいかもとその時は思った
- 940 名前:デフォルトの名無しさん [2025/01/25(土) 21:59:34.66 ID:/zAJo091.net]
- >>921
レジストリ―を忘れないであげてください・・・
- 941 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 21:59:35.88 ID:0Ai0sZJQ.net]
- クソ遅いの同意。
あと、 ・=の左右のスペースを自動除去するとか、 ・端に半角スペースを使いたい場合には""で囲うんだっけ? "を使いたい場合にはどうするんだ? ・値の32,768文字(バイト?)制限? とか、いろいろ隠れ仕様があるのが地味にトラップ。
- 942 名前:デフォルトの名無しさん mailto:sage [2025/01/25(土) 22:25:18.21 ID:HZDjTK1Q.net]
- >>927
それらの疑問はAPIで読み書きしてみれば解消すると思うのだが
- 943 名前:デフォルトの名無しさん [2025/01/26(日) 00:20:41.08 ID:u6Mx5l7z.net]
- >>923
ありがとうございます。 末尾に数字をつけるとそのような読み方が可能なんですね、初耳です というわけではなくあらかじめ振っておくということですか? >>925 差し支えなければ考え方のヒントだけでも良いのでご教示いただけるとたすかるなーなんて iniとは暫く付き合っていかないといけませんし
- 944 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 07:56:28.08 ID:KCyxjQfb.net]
- ini使いたい君はWin32APIがどうたら以前の問題だからもっと勉強してから頑張れ
- 945 名前:デフォルトの名無しさん [2025/01/26(日) 10:18:25.36 ID:9SEpmwDH.net]
- C#で組むと簡単にかける
- 946 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 12:24:55.25 ID:jIhwYj9H.net]
- 現代に生きてるならまず生成AIの使い方を覚えろw
- 947 名前:デフォルトの名無しさん mailto:sage [2025/01/26(日) 12:36:00.27 ID:ZUklcVwb.net]
- STLにその手の機能あったかと
- 948 名前:デフォルトの名無しさん [2025/01/26(日) 21:20:37.91 ID:s+0AyHDZ.net]
- msgpackがいい
- 949 名前:デフォルトの名無しさん mailto:sage [2025/01/30(木) 07:55:55.21 ID:QS068twT.net]
- Win32のiniは中身どうなってるかわからんからあんま使いたくない
データ取り出すために毎回iniのpath指定からするってことは毎回CreateFileでもしてるのか?と疑ってしまうしな まあキャッシュされてる説が濃厚っぽいけど、であれば解放はいつされる?という疑問も浮かんで来てしまう
- 950 名前:デフォルトの名無しさん mailto:sage [2025/01/30(木) 09:05:49.08 ID:DmWvGvqx.net]
- 毎回読んでるに決まってるだろ
- 951 名前:デフォルトの名無しさん mailto:sage [2025/01/30(木) 17:56:26.05 ID:SG35pUtO.net]
- win16時代からなんかモヤモヤする気持ち悪い部分だねw
- 952 名前:デフォルトの名無しさん mailto:sage [2025/01/30(木) 19:54:33.33 ID:5vkjgM/o.net]
- メモリなんてほとんど無かった時代からあるものだから、キャッシュなんてしてるわけないしな
- 953 名前:デフォルトの名無しさん mailto:sage [2025/01/30(木) 20:05:36.27 ID:s1Kp+8+0.net]
- VistaくらいからならOSのファイルキャッシュが勝手に働いてそう。
- 954 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 01:11:17.59 ID:X03NMzGm.net]
- キャッシュなんかMS-DOSのsmartdriveあたりからあるだろ
無効にするとWindows3.1は遅かった記憶がある
- 955 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 10:55:21.33 ID:T94pdG8Q.net]
- >>935
構文解析なんて一瞬で終わる キャッシュはOSがリファレンスカウントで管理してるでしょ ただしゼロになったからといって直ぐに解放する訳じゃないし、ゼロになる前に解放される場合もある そこは空きメモリとの兼ね合いでOSが上手くやる
- 956 名前:デフォルトの名無しさん mailto:sage [2025/01/31(金) 12:27:33.25 ID:x+X7dknH.net]
- 補足すると再起動後やスリープ復帰後に$MFTを舐める様なアプリを動かしておくとシステムキャッシュに載って
その後はHDDでもSSDと同様にディレクトリトラバーサルがマルチスレッドで高速化する(find/fd等) (よくある専用ソフトを常駐させなくてよい)
- 957 名前:デフォルトの名無しさん mailto:sage [2025/02/13(木) 21:31:19.77 ID:YNJwxBZ/.net]
- メインウィンドウのウィンドウプロシージャをグローバルからクラスメンバに移したくて
一応表面的なエラーなどは出ずに起動したのですが問題ないのか不安です 断片的で分かりにくいかもですが以下で問題ないか教えていただけないでしょうか wc.lpfnWndProc = DefWindowProc; SetWindowSubclass( hwnd, SubProc, 1, reinterpret_cast< DWORD_PTR >( this ) ); static LRESULT CALLBACK SubProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData ); LRESULT CALLBACK MyWindow::SubProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData ) { MyWindow *pThis = reinterpret_cast< MyWindow * >( dwRefData ); switch( uMsg ) { ... } return DefSubclassProc( hwnd, uMsg, wParam, lParam ); }
- 958 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 05:52:04.48 ID:NtB8MvkN.net]
- あかんやろな
- 959 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 08:53:53.37 ID:JVeRBzRc.net]
- 20年以上前にMFCみたいなラッピングクラス群を自前で作ってみたことあったけど
ウィンドウプロシージャのとこをどうやったかもう忘れてしまったな……
- 960 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 13:37:08.02 ID:7nMc146l.net]
- メソッドという事は、第一引数にthisが渡る必要がある。
コールバックプロシジャーの呼び出し側にその機能(thisを積む)は無い。 MFCはその部分マクロで展開していたね
- 961 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 14:04:52.13 ID:hgqMYig2.net]
- Best method for storing this pointer for use in WndProcにMethod 1~6まで解説されてるわ
>>946 ATLだとMethod 5: Thunkだね
- 962 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 19:58:04.34 ID:SfDwe3dq.net]
- 俺がやったやり方書いてやろうとしたらNGワード言われてBBxまでされたわw
クソじゃんw
- 963 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 21:57:56.25 ID:NGvcdz15.net]
- method 4のやり方だし行けるんじゃない?
自分はmethod 6のイマイチ泥臭い方法でやったよ
- 964 名前:デフォルトの名無しさん mailto:sage [2025/02/14(金) 22:08:59.93 ID:JVeRBzRc.net]
- 一次受け用のstaticなプロシージャとクラスのメソッド
あとSetPropとSetWindowLong使ってやったな確か
- 965 名前:デフォルトの名無しさん mailto:sage [2025/02/27(木) 22:08:23.91 ID:fu+5GN+l.net]
- SetWindowSubclass
- 966 名前:デフォルトの名無しさん mailto:sage [2025/02/28(金) 06:34:40.22 ID:zvJYGrzx.net]
- 今更w
- 967 名前:デフォルトの名無しさん mailto:sage [2025/02/28(金) 08:53:25.56 ID:9mi1Ij4k.net]
- 俺がその手のことやった時はSetWindowSubclass無かったな
- 968 名前:デフォルトの名無しさん [2025/02/28(金) 17:04:57.17 ID:kF3VgEHE.net]
- 次スレよろ
- 969 名前:デフォルトの名無しさん mailto:sage [2025/03/04(火) 10:30:55.31 ID:Zmr6bMX1.net]
- Win32はいつ廃止されるの?
- 970 名前:デフォルトの名無しさん mailto:sage [2025/03/04(火) 15:36:03.05 ID:oVaTb1OS.net]
- .netベースのWinFXが完成したら順次廃止していくらしい
- 971 名前:デフォルトの名無しさん mailto:sage [2025/03/04(火) 15:50:19.15 ID:9pYVhAvI.net]
- .NETベースだと2年で切り捨てられていくのか……
大変だなぁ
- 972 名前:デフォルトの名無しさん mailto:sage [2025/03/04(火) 17:51:40.09 ID:KMsa0y1P.net]
- Windows上の.NETがそもそもAPI呼んでるのにどうやって廃止するのw
- 973 名前:デフォルトの名無しさん [2025/03/04(火) 18:04:09.20 ID:FptLM07E.net]
- Win32APIを呼ばない.netになるんじゃね?
android版とかそうなってないの?
- 974 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 06:08:30.10 ID:Za60iql9.net]
- WinFXて、.NET Framework 3.0の開発コードだが……
- 975 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 08:44:01.42 ID:Ip/00ysh.net]
- そもそもWin32APIを捨てるとか、Windowsをイチから作り直さないと不可能だろ
- 976 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 12:33:13.43 ID:Nfyn65kt.net]
- 着々と64bit化は進められてるぞ
今やレガシーアプリの為だけに32bit対応があるだけだからなぁ
- 977 名前:デフォルトの名無しさん [2025/03/05(水) 12:35:52.90 ID:KHVGsvS8.net]
- 昔あったPowerPC、ItaniumのWindowsにもWin32apiあるの?
- 978 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 15:45:08.28 ID:Ip/00ysh.net]
- >>962
>>963 内部的なbitサイズの違いや呼称の差であって、Windows APIのインターフェースが変わってるわけじゃないぞ
- 979 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 23:09:43.33 ID:mISoeUSf.net]
- >>963
なくてどうする
- 980 名前:デフォルトの名無しさん mailto:sage [2025/03/05(水) 23:21:28.24 ID:jH+Yt1tq.net]
- https://github.com/microsoft/win32metadata
このwin32metadataプロジェクトでモダンな言語からも簡単に使えるようになった あらゆる機能をWin32で公開してwin32metadataも更新すれば、色んな言語から直ぐ使えるようになる なのでWin32を廃止する意味が無くなった
- 981 名前:デフォルトの名無しさん [2025/03/06(木) 16:00:16.05 ID:WqcKZUUD.net]
- 64bitのCのintとかlongって32bitなん?
64bitあるのはlonglongとsize_tだけ?
- 982 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 16:04:15.79 ID:lKPjZULZ.net]
- どのCだよ……
- 983 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 21:03:06.28 ID:dn1jj/ZV.net]
- >>967
一般的には 32bit 環境からの互換性のためにそうなってる ただ言語仕様として それが規定されているわけではない 明示的に 64bit 整数を使いたいなら int64_t とかを使う
- 984 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 21:11:47.39 ID:5M2pGTOx.net]
- LSI-C試食版
- 985 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 21:23:51.69 ID:dn1jj/ZV.net]
- >>967
補足。ちなみに 64bit 環境で size_t や sizeof が 64bit unsigned になったのは アドレス空間の伸長により 32bit 長を超える配列や構造体が (実用性はともかく) 定義出来るようになったから
- 986 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 22:54:13.31 ID:W7TbcEiC.net]
- SHARCだとcharも32bit w
- 987 名前:デフォルトの名無しさん mailto:sage [2025/03/06(木) 23:24:05.48 ID:qGQPttTG.net]
- >>967
LLP64 long longとポインターが64bit Windowsはこっち LP64 longとlong longとポインターが64bit Unix系はこっち
- 988 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 03:26:30.77 ID:wZ5tdiFM.net]
- 規格ではサイズの保証なんか全く無いからstdint.h使えって書こうとしたけどそういやWin32スレだった
- 989 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 08:52:50.74 ID:0UyMFctv.net]
- なんでlongとintが同じなんだよって昔から思ってるけど、まぁ今更
- 990 名前:デフォルトの名無しさん [2025/03/07(金) 12:13:30.16 ID:P73h4RuN.net]
- int64_tはあるのにint32_tが無いのは何故
- 991 名前:デフォルトの名無しさん mailto:sage [2025/03/07(金) 12:50:01.21 ID:23ArObOh.net]
- stdint.h(20):
typedef int int32_t;
- 992 名前: mailto:sage [2025/03/07(金) 20:55:06.07 ID:fV6KGyZ9.net]
- 前後にいろいろあるでしょ
ILP64ってのもあるし
- 993 名前:デフォルトの名無しさん mailto:sage [2025/03/08(土) 20:22:43.73 ID:5qDoPn2l.net]
- ファイルからそのファイルのハンドル握ってるプロセスを特定する事って可能?
プロセスが握ってるハンドルを列挙していく事はntdll利用したら可能だからその方法で結果的に上記の目的は達成できるっちゃできるんだけど、逆方向から出来たほうが工程は減りそうだから可能なら教えてもらいたい
- 994 名前:デフォルトの名無しさん [2025/03/08(土) 21:37:29.02 ID:YZ/xAsrC.net]
- performance meter
- 995 名前:デフォルトの名無しさん mailto:sage [2025/03/12(水) 22:20:50.10 ID:P3gXMYWX.net]
- >>979
自己レスだけど全排他ロックされたファイルもCreateFile(path, 0, 0, NULL, OPEN_EXISTING, FILE_READ_ATTRIBUTES, NULL);で開けるんだね ハンドルさえ得られればNtQueryInformationFileのFILE_INFORMATION_CLASSで簡単にハンドル握ってるプロセス列挙出来た
- 996 名前:デフォルトの名無しさん mailto:sage [2025/03/12(水) 22:22:14.84 ID:P3gXMYWX.net]
- FILE_INFORMATION_CLASSじゃなくてFILE_INFORMATION_CLASS::FileProcessIdsUsingFileInformationで列挙できた
- 997 名前:デフォルトの名無しさん mailto:sage [2025/03/12(水) 22:30:58.42 ID:s/+fNWEq.net]
- >>981
CWDがBのプロセスpが居てAフォルダをリネームや移動する場合はAのハンドルでpが分かるの? /A/B/
- 998 名前:デフォルトの名無しさん mailto:sage [2025/03/12(水) 22:32:30.39 ID:s/+fNWEq.net]
- CWDでなくて
PWDね
- 999 名前:デフォルトの名無しさん mailto:sage [2025/03/12(水) 22:36:31.70 ID:s/+fNWEq.net]
- Process Explorerで見る限りは、プロセスpのハンドル一覧にはAのハンドルは見えないけど...
- 1000 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 07:40:49.73 ID:Wbt/WM1E.net]
- >>985
リネームや移動はハンドル握ってるタイミングが一瞬だから見えないだけでは? 作業フォルダってだけだとハンドルを握ってる訳ではないだろうし
- 1001 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 12:00:07.35 ID:q1HKk6WD.net]
- >>986
> 作業フォルダってだけだとハンドルを握ってる訳ではないだろうし win32 API使ったプログラム書けるのだったら確認したら良いのに...
- 1002 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 12:50:16.04 ID:fUgksTzw.net]
- >>983に言えよ
- 1003 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 13:15:20.89 ID:1bKyRJrk.net]
- >>988
急にどうした?雰囲気悪くするだけだぞ
- 1004 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 13:19:04.13 ID:1bKyRJrk.net]
- そもそも979が質問はするけど人からの質問には答えないタイプに見えるからそこからだな、雰囲気改善は
- 1005 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 13:23:53.41 ID:1bKyRJrk.net]
- 言った手前、横から答えて置くかな
>>979 FileTest.exeがよく使われている >>983 その場合pはリストアップされない >>986 作業フォルダはhandleとして握っている >>988 一連の流れの誰ですか?
- 1006 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 13:40:50.24 ID:Wbt/WM1E.net]
- >>990
別にちゃんと答えてるけど? で、確認してみたらProcessHackerではカレントディレクトリのハンドルは普通に見えるね てか手順教えてるんだからツールに頼らずにそれこそ確認したい側が>>981をやってみたらいいと思うけど
- 1007 名前:990 mailto:sage [2025/03/13(木) 14:39:30.31 ID:WtHN9N5n.net]
- ごめん、986の感じから981~983の流れが全く通ってないから981とは別人に見えた
確認したい側が手を動かすのは原則だけど、既に下準備が整っているのだからちょっとした便乗質問には答えてあげるのが助け合いの精神だな もっとも986時点では作業フォルダを握っている前提で983を見てなかったからやむなしか で>>988は誰よ?
- 1008 名前:990 mailto:sage [2025/03/13(木) 14:41:07.70 ID:WtHN9N5n.net]
- >>983
フォルダを開く時はFILE_FLAG_BACKUP_SEMANTICSな
- 1009 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 15:58:51.91 ID:fUgksTzw.net]
- 誰でもねぇよただのスレ見てるだけの人間だ
誰かじゃねぇと発言すらできねぇのかよ つーかお前こそ誰だよw
- 1010 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 16:02:25.92 ID:fUgksTzw.net]
- ついでに次スレ建てといた
Win32API質問箱 Build128 https://mevius.5ch.net/test/read.cgi/tech/1741849188/
- 1011 名前:990 mailto:sage [2025/03/13(木) 16:08:57.63 ID:BLU3LOZR.net]
- >> ID:fUgksTzw
スレ立て乙 ただの荒らしだと思ったが見直したぞ 仲良く行こう
- 1012 名前:デフォルトの名無しさん [2025/03/13(木) 18:44:47.29 ID:+BJ849hc.net]
- >>993
お前は誰なんだ
- 1013 名前:デフォルトの名無しさん [2025/03/13(木) 19:05:51.90 ID:kIpNzUxV.net]
- だーれだ?
- 1014 名前:デフォルトの名無しさん mailto:sage [2025/03/13(木) 19:18:50.54 ID:biPGw+Hh.net]
- キチガイ
- 1015 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 1189日 21時間 45分 55秒
- 1016 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|