[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/23 21:00 / Filesize : 266 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build127



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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<266KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef