Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/
■関連スレ
Visual Studio 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/
探検
Win32API質問箱 Build124
■ このスレッドは過去ログ倉庫に格納されています
2017/11/11(土) 19:23:00.69ID:TpLoCFAx
257デフォルトの名無しさん
2018/04/03(火) 13:56:57.67ID:R6gDm2yr ListViewかなー
258デフォルトの名無しさん
2018/04/05(木) 13:44:33.19ID:hda/dUZf _tmainで始まるコンソールアプリで、ウインドウプロシージャを使う方法はありますでしょうか
WM_TIMERを使いたいのですが・・
WM_TIMERを使いたいのですが・・
260デフォルトの名無しさん
2018/04/05(木) 14:01:34.32ID:hda/dUZf261デフォルトの名無しさん
2018/04/05(木) 14:11:50.90ID:cRNyIYvE タイマースレッドからWM_TIMER相当のをバンバン投げりゃいいな
262デフォルトの名無しさん
2018/04/05(木) 14:21:45.59ID:N5yR+hE9 ウインドウ作れば・・・
263デフォルトの名無しさん
2018/04/05(木) 14:32:45.47ID:71zQ6xbb264デフォルトの名無しさん
2018/04/05(木) 19:58:46.14ID:Oqjfw3cg >>258
HWND_MESSAGEでぐぐればよろし
HWND_MESSAGEでぐぐればよろし
265デフォルトの名無しさん
2018/04/06(金) 01:02:24.51ID:TZTB2D9P コンソールアプリなら、プロシージャを使わずに
マルチメディアタイマー周期を設定してコールバックからイベントを送って
メインループ側は WaitForSingleObject で待ったりすることが多い
昔からゲームアプリでよく使われてる
マルチメディアタイマー周期を設定してコールバックからイベントを送って
メインループ側は WaitForSingleObject で待ったりすることが多い
昔からゲームアプリでよく使われてる
266デフォルトの名無しさん
2018/04/06(金) 08:40:18.45ID:WLNY2IeJ ありがとうございます。
HWND_MESSAGEとWaitForSingleObject、ちょっと試してみます。
HWND_MESSAGEとWaitForSingleObject、ちょっと試してみます。
267デフォルトの名無しさん
2018/04/06(金) 17:56:05.76ID:AEfKVJYt 次の質問はスレッドかな
268デフォルトの名無しさん
2018/04/08(日) 06:34:16.89ID:NQAA1W7E CPUの周波数と温度を取得する方法を教えていただけないでしょうか
CPU使用率(%)については、下記サイトのようにpdh.hを使う方法で取得できました
http://home.a00.itscom.net/hatada/windows/tips/performance02.html
CPU使用率(%)については、下記サイトのようにpdh.hを使う方法で取得できました
http://home.a00.itscom.net/hatada/windows/tips/performance02.html
269デフォルトの名無しさん
2018/04/08(日) 06:57:09.27ID:ISGzNLI0 WMI
270デフォルトの名無しさん
2018/04/08(日) 09:39:47.05ID:NQAA1W7E >>269
こちらを参考にオペレーションシステムの名前取得まではできました
もう少しいじればできそうなので頑張ってみます。ありがとうございます
https://msdn.microsoft.com/en-us/library/aa390423.aspx
こちらを参考にオペレーションシステムの名前取得まではできました
もう少しいじればできそうなので頑張ってみます。ありがとうございます
https://msdn.microsoft.com/en-us/library/aa390423.aspx
271デフォルトの名無しさん
2018/04/08(日) 11:01:23.12ID:YK+KPtHu wshとかpythonとかでも同じ方法でもっと楽に取れるから
そっちでテストプログラム書いてから逆移植すると楽
そっちでテストプログラム書いてから逆移植すると楽
272デフォルトの名無しさん
2018/04/08(日) 11:31:10.35ID:ISGzNLI0 その逆移植が面倒な部分だからな
一番簡単なのはスクリプトの結果受け取る方法。でもこういうの嫌がる人多いw
一番簡単なのはスクリプトの結果受け取る方法。でもこういうの嫌がる人多いw
273デフォルトの名無しさん
2018/04/08(日) 11:42:37.54ID:YK+KPtHu 逆移植する前にもうやりたいこと出来たからそこで終わるパターンが最近多い
274デフォルトの名無しさん
2018/04/08(日) 11:55:02.91ID:rGuvDNEz CPUの温度ってCPU自身が持ってるけど、それにアクセスするには特権が必要で、そのためには署名されたデバイスドライバーが必要。
フリーソフトで温度を取れるのもあるけど、自前でドライバーを用意してるか、MS的にグレーっぽいドライバーを利用してる。
フリーソフトで温度を取れるのもあるけど、自前でドライバーを用意してるか、MS的にグレーっぽいドライバーを利用してる。
275デフォルトの名無しさん
2018/04/09(月) 07:41:24.53ID:4rymfX2t こちらのサイトを参考に、WMIによる温度取得できました
https://stackoverflow.com/questions/23314886/get-cpu-temperature
しかし、何度アクセスしても27.85℃のままです
試しに水を止めて50℃まで上げてからプログラムを立ち上げてみましたが、27.85℃でした
リアルタイムの温度を取得するのは無理なのでしょうか
https://stackoverflow.com/questions/23314886/get-cpu-temperature
しかし、何度アクセスしても27.85℃のままです
試しに水を止めて50℃まで上げてからプログラムを立ち上げてみましたが、27.85℃でした
リアルタイムの温度を取得するのは無理なのでしょうか
276デフォルトの名無しさん
2018/04/09(月) 08:45:28.69ID:aqcvNYtD 誰かが作ったwmiのツール使って温度見て同じく27.85だったらcpu(ドライバー)が原因
きちんとしてたらおまえが原因
きちんとしてたらおまえが原因
277デフォルトの名無しさん
2018/04/09(月) 09:02:21.02ID:4rymfX2t 一文字も変えずに丸々コピペしてみましたがやはり27.85と表示されます・・
278デフォルトの名無しさん
2018/04/09(月) 09:23:51.04ID:JpSN62c4 こちらでも同じく temp=27.850000 でした (Visual Studio 2015 Community)
279デフォルトの名無しさん
2018/04/09(月) 09:47:42.76ID:aqcvNYtD > it's always the same and it's not the CPU temperature at all
ソースコードのコメントがこれなんだから、丸々コピペならそうなるんじゃないか?
だから丸々コピーしても意味ないだろ。原因探せよ・・・
ソースコードのコメントがこれなんだから、丸々コピペならそうなるんじゃないか?
だから丸々コピーしても意味ないだろ。原因探せよ・・・
280デフォルトの名無しさん
2018/04/09(月) 12:21:58.67ID:4rymfX2t WMIでは無理なんですね・・
winring0というもののサンプルコードをいじってみたところ取得できたので、こちらを移植する方法でやってみます
ありがとうございました
winring0というもののサンプルコードをいじってみたところ取得できたので、こちらを移植する方法でやってみます
ありがとうございました
281デフォルトの名無しさん
2018/04/09(月) 14:27:04.14ID:iBEYls0Z 結局>>274ってことだったんだな
282デフォルトの名無しさん
2018/04/09(月) 14:52:46.99ID:/jbUbJls おまえらがWMIなんて言うから無駄な遠回りしとるやんかわいそうに
283デフォルトの名無しさん
2018/04/09(月) 14:54:53.98ID:GdkyYm9A 27.85℃=301K
284デフォルトの名無しさん
2018/04/09(月) 22:58:31.99ID:ph8eLpPP Windows10になって増えたWin32APIとか調べたい場合どうするのが確実?
ネットで調べるとXP以前の例ばかり
ネットで調べるとXP以前の例ばかり
285デフォルトの名無しさん
2018/04/10(火) 02:38:53.85ID:M1sGJjGL >>284
ググってみると SDK のヘッダの変化を見てチェックしてる人いるな
https://naughter.wordpress.com/2015/05/15/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-one/
https://naughter.wordpress.com/2015/05/24/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-two/
細かい API 一つ一つの追加とかまでは書かれていないけど参考になるんじゃないだろうか
winerror.h に SQLite のエラーコードが(740行も!)追加されたとか豆知識得られた
この人は最近のSDKについても調べてる
ググってみると SDK のヘッダの変化を見てチェックしてる人いるな
https://naughter.wordpress.com/2015/05/15/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-one/
https://naughter.wordpress.com/2015/05/24/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-two/
細かい API 一つ一つの追加とかまでは書かれていないけど参考になるんじゃないだろうか
winerror.h に SQLite のエラーコードが(740行も!)追加されたとか豆知識得られた
この人は最近のSDKについても調べてる
286デフォルトの名無しさん
2018/04/10(火) 02:40:40.00ID:M1sGJjGL いやWindows10で何が追加されたかを調べたい
という質問じゃなかったのか、もしかすると…
という質問じゃなかったのか、もしかすると…
287デフォルトの名無しさん
2018/04/10(火) 13:42:13.82ID:JIHFaEMv ヘッダ比べるのは現実的な方法
288デフォルトの名無しさん
2018/04/10(火) 16:30:34.70ID:hrbxCJ/r 音声にいろいろなエフェクトをかけてスカイプやdicordなどに流せるようなソフトを作りたいんですけど
仮想デバイスを作るにはどうすればいいんでしょうか
マイク入力をうけとってエフェクトをかけてスピーカーから再生するまではできたんですが
他のアプリに仮想デバイスとしてみせる方法が分からなくて困っています
仮想デバイスを作るにはどうすればいいんでしょうか
マイク入力をうけとってエフェクトをかけてスピーカーから再生するまではできたんですが
他のアプリに仮想デバイスとしてみせる方法が分からなくて困っています
289デフォルトの名無しさん
2018/04/10(火) 16:45:17.90ID:La3PY+dC VST かな
290デフォルトの名無しさん
2018/04/10(火) 16:48:11.15ID:La3PY+dC291デフォルトの名無しさん
2018/04/10(火) 16:50:37.00ID:hrbxCJ/r >>289
すばやい返答ありがとうございます
軽く検索みてみたらGUIみたいなのがたくさんでてきます
サンプルコードが一切でてこないですけど
プログラムの中にうめこむライブラリとしてつかえるものなんでしょうか?
すばやい返答ありがとうございます
軽く検索みてみたらGUIみたいなのがたくさんでてきます
サンプルコードが一切でてこないですけど
プログラムの中にうめこむライブラリとしてつかえるものなんでしょうか?
292デフォルトの名無しさん
2018/04/10(火) 16:51:39.43ID:hrbxCJ/r293デフォルトの名無しさん
2018/04/10(火) 16:53:47.39ID:La3PY+dC294デフォルトの名無しさん
2018/04/10(火) 19:08:17.02ID:n4pH5xN4 必要なのはVSTじゃなくて仮想デバイスドライバの作成方法なんじゃないのか?
295デフォルトの名無しさん
2018/04/11(水) 00:11:41.02ID:5V3NvSPI そだねーJap
296デフォルトの名無しさん
2018/04/11(水) 01:33:21.32ID:nGNQyhwo vst 経由なら vst skype とかでググればやり方は見つかるし
297デフォルトの名無しさん
2018/04/11(水) 16:45:30.30ID:oc5yP9in 自アプリで簡単な手書きメモ機能があるのですが、Win10タブレット端末でペン操作すると
うまく文字が書けません。
短い線が書けない感じです。
恐らくマウス周りのメッセージの代わりに WM_GESTURE 系メッセージが来ていると思うのですが、
真っ当にこれらのメッセージを処理するのではなく、自アプリではこれまで通りマウス処理しかしない
と何らかの方法で設定・宣言することによってペン・タッチ操作関連のメッセージを来なくすることは
可能でしょうか?
OSレベルで全体的にこの機能をOFFにすることは可能なようですが、自アプリだけこれを適用できれば
と思っています。
よろしくお願いします。
うまく文字が書けません。
短い線が書けない感じです。
恐らくマウス周りのメッセージの代わりに WM_GESTURE 系メッセージが来ていると思うのですが、
真っ当にこれらのメッセージを処理するのではなく、自アプリではこれまで通りマウス処理しかしない
と何らかの方法で設定・宣言することによってペン・タッチ操作関連のメッセージを来なくすることは
可能でしょうか?
OSレベルで全体的にこの機能をOFFにすることは可能なようですが、自アプリだけこれを適用できれば
と思っています。
よろしくお願いします。
298デフォルトの名無しさん
2018/04/11(水) 19:46:07.75ID:xs6mCoGI 自アプリだろ?要らないメッセージ無視すりゃいいじゃん
299デフォルトの名無しさん
2018/04/11(水) 21:23:09.60ID:4xNEGOrU300デフォルトの名無しさん
2018/04/11(水) 21:31:47.99ID:4xNEGOrU ほかに .Net だとメッセージフィルターでWM_POINTERDOWN / UP を無視するなんてやり方を紹介している人も多い
301デフォルトの名無しさん
2018/04/11(水) 23:34:57.38ID:HwL4BRgS フルボッコすぎる
302片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 13:06:30.81ID:S0A11kDt303297
2018/04/12(木) 17:22:14.25ID:1t6GyJnt 一応分かりやすく画像で状況を補足します。
http://imgur.com/pvaetNV.png
ペンでタッチ(押下)したときに、画像左側の◎印が出ます。
この◎印の中でぐりぐり動かしても何も描画できません。
(既存処理のWM_LBUTTONDOWN〜WM_MOUSEMOVEの流れでの描画処理が実行されない)
この◎印からはみ出すようにペンを動かした瞬間、描画処理が働き出し、◎印が薄くなっていき消えます。
やりたいことは、◎印内でも描画させたいです。
現状では点などが描けませんので、例えば「う」だと上の部分が描きにくくて「つ」と描いてしまうことが多いです。
>>298
>>300
WM_POINTERDOWN / UP を含む、その他思い付く関連メッセージを無視するように試してみましたが、
ペン入力自体ができなくなりました。
>>299
WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableも試してみましたが、
TABLET_DISABLE_PRESSANDHOLD を返した時に◎印の表示はなくなりました。
しかし、描画に関しては変化無くその領域に相当する部分からはみ出ないと描画できません。
WM_POINTERDOWN 等のメッセージが来たら WM_LBUTTONDOWN を投げる等試してみましたが
状況が変わりません。
WM_TOUCH 系の処理を追加すれば対処はもちろん可能でしょうが、簡単に既存処理を生かせる方法が
ないものか、情報をお持ちの方よろしくお願いします。
http://imgur.com/pvaetNV.png
ペンでタッチ(押下)したときに、画像左側の◎印が出ます。
この◎印の中でぐりぐり動かしても何も描画できません。
(既存処理のWM_LBUTTONDOWN〜WM_MOUSEMOVEの流れでの描画処理が実行されない)
この◎印からはみ出すようにペンを動かした瞬間、描画処理が働き出し、◎印が薄くなっていき消えます。
やりたいことは、◎印内でも描画させたいです。
現状では点などが描けませんので、例えば「う」だと上の部分が描きにくくて「つ」と描いてしまうことが多いです。
>>298
>>300
WM_POINTERDOWN / UP を含む、その他思い付く関連メッセージを無視するように試してみましたが、
ペン入力自体ができなくなりました。
>>299
WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableも試してみましたが、
TABLET_DISABLE_PRESSANDHOLD を返した時に◎印の表示はなくなりました。
しかし、描画に関しては変化無くその領域に相当する部分からはみ出ないと描画できません。
WM_POINTERDOWN 等のメッセージが来たら WM_LBUTTONDOWN を投げる等試してみましたが
状況が変わりません。
WM_TOUCH 系の処理を追加すれば対処はもちろん可能でしょうが、簡単に既存処理を生かせる方法が
ないものか、情報をお持ちの方よろしくお願いします。
304片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 17:59:17.97ID:S0A11kDt インクとジェスチャーの両方が必要ということかな。
305デフォルトの名無しさん
2018/04/12(木) 18:22:16.36ID:nMaemNOx いやゼスチャの判定が優先されるから少し動かさないと WM_LBUTTONDOWN とかが来ないんだよ
それを簡単にマウスの時と同様すぐメッセージが来る動作にできないか、という話
ゼスチャ無効化してもダメとは面倒な話だよね
それを簡単にマウスの時と同様すぐメッセージが来る動作にできないか、という話
ゼスチャ無効化してもダメとは面倒な話だよね
306片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 19:12:40.30ID:S0A11kDt 今日の収穫は、OLEオートメーションがめちゃややこしいことがわかっただけだ。
307片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 19:15:03.07ID:S0A11kDt 言語でネイティブにサポートされたヴァリアント型があればもっと簡単なんだが。
30841
2018/04/12(木) 19:19:31.30ID:gePCm00Z そもそもマウスとジェスチャー分ける必要あったんかいな
軌跡はないが矛盾はしないだろうに
軌跡はないが矛盾はしないだろうに
309名無し@キムチ
2018/04/12(木) 19:35:21.15ID:jXGrykA6 コンソールのmain関数のコマンドライン引数argv、argcを引数にとる関数があるのですが、
これはwinmain関数内でも使えますか?
その場合argv、argcの代わりにcommandshowとcommandlineを引数にする必要があるとおもうのですが、
どのようにすればエラーが出ずにargv、argcをcommandshowとcommandlineに変換できますか?
よろしくお願いいたします。
これはwinmain関数内でも使えますか?
その場合argv、argcの代わりにcommandshowとcommandlineを引数にする必要があるとおもうのですが、
どのようにすればエラーが出ずにargv、argcをcommandshowとcommandlineに変換できますか?
よろしくお願いいたします。
310デフォルトの名無しさん
2018/04/12(木) 19:43:37.70ID:ZuhK/vm7 __argc、__argvでアクセスできる
311名無し@キムチ
2018/04/12(木) 19:45:08.29ID:jXGrykA6312デフォルトの名無しさん
2018/04/12(木) 19:45:11.97ID:ifFSa3KQ313デフォルトの名無しさん
2018/04/12(木) 20:12:39.23ID:ofGuXLCP >>303
そんな古臭いメッセージ処理せずに、下記のメッセージで処理したら?
WM_POINTERDOWN: WM_POINTERUPDATE: WM_POINTERUP:
win8以降しか対応してないけどな。xp/vista/7とかでタッチパネルの処理は切り捨て推奨
そんな古臭いメッセージ処理せずに、下記のメッセージで処理したら?
WM_POINTERDOWN: WM_POINTERUPDATE: WM_POINTERUP:
win8以降しか対応してないけどな。xp/vista/7とかでタッチパネルの処理は切り捨て推奨
314デフォルトの名無しさん
2018/04/12(木) 21:38:47.94ID:Cv0USnCZ 旧来のアプリなんかタッチやフリックに対応してるわけないのに、そんなアプリに対してそれらのメッセージを投げつけて
マウス関連のメッセージを投げないという仕組みがMSらしいというか融通が利かないというか、バカバカしいな。
タッチやフリックを要求するアプリのみにそれらのメッセージ投げるだけでいいのに。
旧来アプリでも旧来アプリなりにペンタッチで動くようにすりゃ、裾野も広がりやすいだろうにな。
マウス関連のメッセージを投げないという仕組みがMSらしいというか融通が利かないというか、バカバカしいな。
タッチやフリックを要求するアプリのみにそれらのメッセージ投げるだけでいいのに。
旧来アプリでも旧来アプリなりにペンタッチで動くようにすりゃ、裾野も広がりやすいだろうにな。
315297
2018/04/12(木) 22:59:34.36ID:1t6GyJnt ちょっと古いシステムなのでそのままちょっと直すだけで動かないものかと
試行錯誤していました。
313さんの仰る方向でも試行錯誤を続けていたのですが、既存プログラムの
出来がおかしいのか今のところうまく行っていません。
理屈で言えばうまく行くはず・・・なので、このまま調整を続けようと思います。
皆さんありがとうございました。
試行錯誤していました。
313さんの仰る方向でも試行錯誤を続けていたのですが、既存プログラムの
出来がおかしいのか今のところうまく行っていません。
理屈で言えばうまく行くはず・・・なので、このまま調整を続けようと思います。
皆さんありがとうございました。
316デフォルトの名無しさん
2018/04/12(木) 23:04:18.01ID:ifFSa3KQ318デフォルトの名無しさん
2018/04/12(木) 23:44:04.43ID:fS8U0BFZ 関係あるんだかないんだかはわからんが
EnableMousePointer なんて api があるな
EnableMousePointer なんて api があるな
319デフォルトの名無しさん
2018/04/12(木) 23:59:24.17ID:ifFSa3KQ Surfaceでしか確認してないけどそういやFCUだかでペンのスワイプの既定が
カーソル移動からスクロールに変更されてたなあ
そのへんが原因かもね
カーソル移動からスクロールに変更されてたなあ
そのへんが原因かもね
320297
2018/04/13(金) 02:19:42.71ID:4MPC6lcI >>318
ありがとうございます。
飛びついてみましたが、変化ありませんでした。
逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、
マウス操作しても前と変わらずでした。
もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、
そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた)
整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが
飛んでくるという状況です。
すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。
描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には
WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。
色々アドバイスいただき、皆さんありがとうございました。
ありがとうございます。
飛びついてみましたが、変化ありませんでした。
逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、
マウス操作しても前と変わらずでした。
もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、
そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた)
整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが
飛んでくるという状況です。
すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。
描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には
WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。
色々アドバイスいただき、皆さんありがとうございました。
321313
2018/04/13(金) 10:24:16.60ID:MklDTzxh タッチパネルのみのメッセージであるWM_POINTERで、必要なイベントを自分で加工してPostMessageかSendMessageを使って WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP:とかに投げればマウス部分の従来の処理でそのまま動くんじゃね?
マウスっぽく処理するならタッチIDを保存して判別したほうがいいな
WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。
void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
// WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理
static UINT pointerID=0; // ポインタIDを静的に保存しておく
POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化
UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る
ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更
lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成
// 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw
switch(message){
case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break;
case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break;
case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break;
}
}
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加
case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
マウスっぽく処理するならタッチIDを保存して判別したほうがいいな
WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。
void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
// WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理
static UINT pointerID=0; // ポインタIDを静的に保存しておく
POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化
UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る
ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更
lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成
// 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw
switch(message){
case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break;
case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break;
case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break;
}
}
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加
case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
322デフォルトの名無しさん
2018/04/13(金) 10:47:38.98ID:bFIkQBXO タブレット持ってないからわかんないけどさ
>>303の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか?
だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
>>303の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか?
だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
323デフォルトの名無しさん
2018/04/13(金) 10:49:29.00ID:bFIkQBXO 処理置換しなくてもrawinputだとか入力関連のapi叩いても盗れる可能性あるか
324デフォルトの名無しさん
2018/04/13(金) 11:35:55.96ID:UdLtdLwz325デフォルトの名無しさん
2018/04/13(金) 11:58:28.35ID:bFIkQBXO ◎の中はメッセージ来ないから困ったって質問かと思ったんだが違ったのか
わかんないもんに口出すべきじゃないなw
わかんないもんに口出すべきじゃないなw
326313
2018/04/13(金) 12:15:36.03ID:MklDTzxh 書き忘れてた。WM_TOUCH系の初期化すると◎のジェスチャーとか、不具合でるよ。
初期化しないで、321のコード実装してみたらいいと思う。
初期化しないで、321のコード実装してみたらいいと思う。
327デフォルトの名無しさん
2018/04/14(土) 00:16:48.20ID:a7yPR2Rx サーバー上のファイルを編集中に、他人からの全てのアクセスを禁止したいのですが
CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか?
良い方法があれば教えてください。
CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか?
良い方法があれば教えてください。
328327
2018/04/14(土) 00:22:28.28ID:a7yPR2Rx 補足。クライアントからサーバー上のファイルを編集するときです。
329デフォルトの名無しさん
2018/04/14(土) 02:38:22.36ID:lnTeyTPJ deleteされちゃいますよ
330デフォルトの名無しさん
2018/04/14(土) 06:15:46.39ID:fnoJLpZQ linux やわunix サーバなら消されちゃうかもね
331327
2018/04/14(土) 18:14:56.59ID:a7yPR2Rx 編集完了までCloseHandleしなければdelete出来ないんじゃないでしょうか。悪意のある攻撃者はいないとして。
私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が
発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が
発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
332デフォルトの名無しさん
2018/04/14(土) 18:23:06.50ID:s4TUpiI7 >>331
Open/Close は排他ロックにならない、ときいたことがある
Open/Close は排他ロックにならない、ときいたことがある
334デフォルトの名無しさん
2018/04/14(土) 20:04:17.98ID:fnoJLpZQ smb なら排他的にロックされる
2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。
https://docs.microsoft.com/en-us/rest/api/storageservices/managing-file-locks
smb のサーバが linux や mac で、その os などから smb 以外の方法で
ファイルを変更、削除したりは可能だけどこれはどうしようもない
もしも目的が他のクライアントにエラーを返すとこでなく
書き終わった時点でアプリが書いた内容になっていることを保証したい
(書いている途中のファイルを読まれないように)だけなら
別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。
https://docs.microsoft.com/en-us/rest/api/storageservices/managing-file-locks
smb のサーバが linux や mac で、その os などから smb 以外の方法で
ファイルを変更、削除したりは可能だけどこれはどうしようもない
もしも目的が他のクライアントにエラーを返すとこでなく
書き終わった時点でアプリが書いた内容になっていることを保証したい
(書いている途中のファイルを読まれないように)だけなら
別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
335デフォルトの名無しさん
2018/04/14(土) 20:19:46.84ID:fnoJLpZQ 上のurlはazureのドキュメントだけどsmbでWindowsサーバなら同じ仕様だと思う
337名無し@キムチ
2018/04/14(土) 21:10:19.87ID:ywXYi+/7 質問です。
glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、
windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、
windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
338デフォルトの名無しさん
2018/04/14(土) 23:46:15.72ID:fnoJLpZQ339デフォルトの名無しさん
2018/04/15(日) 00:06:05.13ID:G47pMzYo >>338
なるほど。でしたら概ねロックできそうです。
ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが
これもSMBプロトコルなのかどうかは調べてみます。
情報ありがとうございました。
なるほど。でしたら概ねロックできそうです。
ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが
これもSMBプロトコルなのかどうかは調べてみます。
情報ありがとうございました。
340デフォルトの名無しさん
2018/04/15(日) 10:41:11.68ID:E1b18XLI341名無し@キムチ
2018/04/15(日) 21:45:37.16ID:X4sBLOS0 Windowsのコールバック関数の中のWM_PAINTにダイレクトXの描画処理を書くと、エラーが出て実行されないのですが、どうしてですか?どうしたらいいですか?
342デフォルトの名無しさん
2018/04/15(日) 21:53:50.01ID:qZPDSYA2 まず全裸になります
343デフォルトの名無しさん
2018/04/15(日) 22:41:41.98ID:UX4y5Mn1 使わなくてもいいからDCだけ確保
344デフォルトの名無しさん
2018/04/15(日) 23:01:26.11ID:+Hw5szkB ドリームキャスト手に入れるのは大変そうだ
345デフォルトの名無しさん
2018/04/15(日) 23:27:51.27ID:xpwShDOv ぴぴん
346デフォルトの名無しさん
2018/04/15(日) 23:37:59.49ID:qZPDSYA2 dc1 = beginpaint
dc2= getdc
dc2= releasedc
dc1=endpaint
dc2= getdc
dc2= releasedc
dc1=endpaint
347デフォルトの名無しさん
2018/04/16(月) 08:23:21.50ID:5yp4kCb0348デフォルトの名無しさん
2018/04/16(月) 09:43:27.45ID:75OnkAat カードキャプターさくら
349名無し@キムチ
2018/04/17(火) 18:57:41.86ID:nz/ieMrf 初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
350デフォルトの名無しさん
2018/04/18(水) 00:45:47.24ID:lRwbg5zI バッファを上書きしないように気を付ける
351297
2018/04/19(木) 18:13:16.20ID:o7VdbXqH 297ですが、WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
投げることで無事解決しました。
WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という
不一致の整合性を取ることと、ペン操作中の描画がされないので
UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に
DefWindowProc は実行しないことで快適に動作するようになりました。
(描画については元の作りが甘いのが原因かもですが)
>>321
色々とありがとうございました。
取りかかりが遅くなりましたが、おかげさまで対応できました。
投げることで無事解決しました。
WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という
不一致の整合性を取ることと、ペン操作中の描画がされないので
UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に
DefWindowProc は実行しないことで快適に動作するようになりました。
(描画については元の作りが甘いのが原因かもですが)
>>321
色々とありがとうございました。
取りかかりが遅くなりましたが、おかげさまで対応できました。
352297
2018/04/19(木) 18:16:39.64ID:o7VdbXqH > WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
> 投げることで無事解決しました。
なんか変ですね。
WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE
も SendMessage or PostMessage で送信することで無事解決しました。
> 投げることで無事解決しました。
なんか変ですね。
WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE
も SendMessage or PostMessage で送信することで無事解決しました。
353デフォルトの名無しさん
2018/04/21(土) 17:47:35.10ID:h8C5n4IB surfaceのペンの筆圧などの情報を取得したい場合、何というキーワードで調べるべきですか?
354片山博文MZ ◆T6xkBnTXz7B0
2018/04/21(土) 17:53:19.89ID:9EumPI9y >>356
SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
355デフォルトの名無しさん
2018/04/21(土) 18:05:27.99ID:h8C5n4IB 言葉足らずかも知れません。
surface proのペンの情報もwindows rtですか?
surface proのペンの情報もwindows rtですか?
356デフォルトの名無しさん
2018/04/21(土) 18:18:24.59ID:gTRsxGnx >>353
直前までのスレの話題がそのまんまなんだがなあ
とりあえずこのへんを満遍なく読んでおきなさい
https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx
ちなみに筆圧/傾きは基本的にGetPointerPenInfo系
片山は馬鹿だから無視しとけ
直前までのスレの話題がそのまんまなんだがなあ
とりあえずこのへんを満遍なく読んでおきなさい
https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx
ちなみに筆圧/傾きは基本的にGetPointerPenInfo系
片山は馬鹿だから無視しとけ
357デフォルトの名無しさん
2018/04/21(土) 18:24:09.27ID:h8C5n4IB ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- 青髭がない男がいたんですよ~
- 【速報】NVIDIA超好決算!株価爆上げへ [271912485]
- 【速報】2025プロ野球の流行語トップ30が発表される
- ㊗157円 [194819832]
