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
357デフォルトの名無しさん
2018/04/21(土) 18:24:09.27ID:h8C5n4IB ありがとうございます。
358デフォルトの名無しさん
2018/04/26(木) 08:01:02.21ID:qK0Tcf+m >>356
筆圧取得できました。
ペンだけでなくタッチもわかったのはとてもありがたい。
今後の課題は筆圧の最大値の取得、座標のズレの解決だ。
lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
筆圧取得できました。
ペンだけでなくタッチもわかったのはとてもありがたい。
今後の課題は筆圧の最大値の取得、座標のズレの解決だ。
lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
359デフォルトの名無しさん
2018/04/26(木) 16:08:09.24ID:obVS20md ありがとうございます。
360デフォルトの名無しさん
2018/05/09(水) 10:38:44.80ID:urlL8t0C361デフォルトの名無しさん
2018/05/11(金) 00:47:31.66ID:jtnkDrxN WiXでディレクトリを作ってCreatorOwner(S-1-3-0)にアクセス権設定してみたら
プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。
こんなの初めて見た。
プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。
こんなの初めて見た。
362デフォルトの名無しさん
2018/05/11(金) 10:36:48.86ID:eFEUpfi5 へ?
363デフォルトの名無しさん
2018/05/11(金) 20:07:56.91ID:jtnkDrxN saclsなんかでS-1-3-0を指定しても実在の所有者のSIDに置き換わるじゃん。そもそもそのためにあるわけだし。
ACLには入らないものかと思ってた。
ACLには入らないものかと思ってた。
364デフォルトの名無しさん
2018/05/11(金) 21:00:03.68ID:KUxDXsAg ん?
365デフォルトの名無しさん
2018/05/12(土) 11:03:35.97ID:yo5m8R46 何十年も経ってるのに今更初めてとか
366デフォルトの名無しさん
2018/05/12(土) 13:23:12.21ID:Wuy9HJPF 何十年てなんぞ?
367デフォルトの名無しさん
2018/05/14(月) 00:22:00.59ID:VV/fGzO7 ゲームの効果音を鳴らすのにmciSendCommandで鳴らそうとすると
一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。
以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。
ttp://eternalwindows.jp/winmm/mci/mci02.html
DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。
以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。
ttp://eternalwindows.jp/winmm/mci/mci02.html
DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
368デフォルトの名無しさん
2018/05/14(月) 08:42:54.37ID:YOvAeQk/ 鳴らす毎に固まるん?
ロード画面とかでオープンだけ先にやっておいて
後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない?
的外れてたらごめんな
ロード画面とかでオープンだけ先にやっておいて
後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない?
的外れてたらごめんな
369367
2018/05/14(月) 09:10:04.81ID:Yo4sXSf8 すみません。自己解決しました。
キーが連続して入力されたと判定されないように
前回から0.1秒以下の間隔で入力されたキーを無視する部分で
レンダリングまで無視してしまっていました。
キーが連続して入力されたと判定されないように
前回から0.1秒以下の間隔で入力されたキーを無視する部分で
レンダリングまで無視してしまっていました。
370デフォルトの名無しさん
2018/05/14(月) 13:32:12.89ID:dnGRWxRE >>367
waveout
waveout
371デフォルトの名無しさん
2018/05/14(月) 15:03:48.05ID:YOvAeQk/ ズコー
372367
2018/05/14(月) 19:29:13.78ID:TSV87Y/E 度々すみません。
音の再生で画面が固まらないようには出来たのですが、
オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。
例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。
クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。
core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。
mcisendcommandを高速に動作させる方法はないでしょうか?
音の再生で画面が固まらないようには出来たのですが、
オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。
例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。
クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。
core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。
mcisendcommandを高速に動作させる方法はないでしょうか?
373デフォルトの名無しさん
2018/05/14(月) 19:57:29.23ID:9wWfcYFS MessageBeepでは?
374デフォルトの名無しさん
2018/05/14(月) 22:23:19.23ID:Zf7UDWDq sndPlaySoundでは?
375デフォルトの名無しさん
2018/05/15(火) 08:42:15.75ID:RLKB0pPy まさかのWM_LBUTTONUP?
376デフォルトの名無しさん
2018/05/15(火) 09:35:21.30ID:iduN+0hu >>372
ないんじゃない?
ないんじゃない?
377デフォルトの名無しさん
2018/05/15(火) 11:24:49.27ID:iNTYPTvx 20年近く前に設置されたお手軽APIにリアルタイム性を求めるのもな…
ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
378デフォルトの名無しさん
2018/05/16(水) 03:14:40.15ID:52uBQuev OpenALでもいいんじゃね?
379デフォルトの名無しさん
2018/05/18(金) 06:39:21.09ID:KYXS7qiH キーボードの入力だけを無効化するAPIを教えてください
BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
380デフォルトの名無しさん
2018/05/18(金) 07:22:41.68ID:JEElro2Y そのものずばりなapiはないんじゃないかな
381デフォルトの名無しさん
2018/05/18(金) 09:20:15.65ID:KYXS7qiH ないじゃねーんだよアホ
だったらどうすりゃ実現できるのか教えろよ
だったらどうすりゃ実現できるのか教えろよ
382デフォルトの名無しさん
2018/05/18(金) 09:36:45.73ID:JEElro2Y うわあ
383片山博文MZ ◆T6xkBnTXz7B0
2018/05/18(金) 09:49:08.60ID:C170FFEJ フィルタドライバ
384デフォルトの名無しさん
2018/05/18(金) 09:56:15.34ID:crDPuGzZ ローレベルフックでキーボード入力を捨てられた気が
385デフォルトの名無しさん
2018/05/18(金) 10:17:50.27ID:mWyCAt5N >>381
教えろよじゃねーんだよアホ
だったらどうなりゃ理想なのか教えろよ
指定したプロセスのみ無効化?
全てのプロセスで無効化?
BlockInputを試したという事は全てのプロセスで無効化でいい?
教えろよじゃねーんだよアホ
だったらどうなりゃ理想なのか教えろよ
指定したプロセスのみ無効化?
全てのプロセスで無効化?
BlockInputを試したという事は全てのプロセスで無効化でいい?
386デフォルトの名無しさん
2018/05/18(金) 10:20:51.20ID:JEElro2Y BlockInputはそのスレッドだけじゃないかな
おまえらこんな糞な奴のをよく答える気になるなw
おまえらこんな糞な奴のをよく答える気になるなw
387デフォルトの名無しさん
2018/05/18(金) 10:29:53.45ID:PW/5KQgQ キーボードを取り外す
展示とかに使うならこれだなw
展示とかに使うならこれだなw
388デフォルトの名無しさん
2018/05/18(金) 11:03:10.17ID:/yTMyJuo 16bit時代にはそのものズバリのapiがあった
389デフォルトの名無しさん
2018/05/18(金) 12:07:37.64ID:aDkqve5K easyhookを使えるようにするにはどうすればいいのですか?
たすけて
たすけて
390デフォルトの名無しさん
2018/05/18(金) 12:21:16.66ID:JEElro2Y チュートリアルにサンプルコード載ってるじゃん
391デフォルトの名無しさん
2018/05/18(金) 12:23:26.03ID:aDkqve5K ごめんなさい
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
392デフォルトの名無しさん
2018/05/18(金) 12:40:49.02ID:JEElro2Y ducumentationにインストール方法書いてあるじゃん
393デフォルトの名無しさん
2018/05/18(金) 12:53:35.86ID:aDkqve5K どれ?。。
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
394デフォルトの名無しさん
2018/05/18(金) 12:55:27.82ID:JEElro2Y ducumentationからコピペ
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
395デフォルトの名無しさん
2018/05/18(金) 12:59:51.80ID:mWyCAt5N おまえこんなスレチなのをよく答える気になるなw
396デフォルトの名無しさん
2018/05/18(金) 13:06:44.09ID:aDkqve5K ごめんなさい
どこいけばいいの?
どこいけばいいの?
397デフォルトの名無しさん
2018/05/18(金) 13:26:58.25ID:mWyCAt5N あるならEasyHookをつかってるプログラムのスレ
無いなら入手元良く見る
無いなら入手元良く見る
398デフォルトの名無しさん
2018/05/21(月) 14:45:12.74ID:J624wk10 keymapでも壊してみたらいいんじゃね?
399デフォルトの名無しさん
2018/05/21(月) 15:51:07.84ID:pTo/71V7 壊すのも元に戻すのも再起動必要になるだろ
400デフォルトの名無しさん
2018/05/23(水) 19:14:45.20ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
401デフォルトの名無しさん
2018/05/24(木) 10:37:52.55ID:cPlRxlDn IAVAJ
402デフォルトの名無しさん
2018/05/29(火) 22:34:39.42ID:7/wI9AnP Windows10で仮想デスクトップを使った場合
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
403デフォルトの名無しさん
2018/05/30(水) 07:12:33.93ID:tkaPgK/f そらgetdcの引数は仮想デスクトップ番号じゃないかならなw
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
404デフォルトの名無しさん
2018/05/30(水) 07:34:07.95ID:VLAeNwdW アクティブじゃない仮想デスクトップにあるUWPアプリとか
サスペンドするようにもなってるしDWM的に無理じゃないかしら
サスペンドするようにもなってるしDWM的に無理じゃないかしら
405デフォルトの名無しさん
2018/06/01(金) 04:15:17.48ID:LQ78zvmu このスレがまだあってよかった。
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
406405
2018/06/01(金) 04:17:20.03ID:LQ78zvmu すまそ、変な書き方をした。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
407放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/01(金) 04:33:40.82ID:p/Dhco7s 登録されたら、文字列の内容が記録されるから、ローカル変数で結構毛だらけ。
409デフォルトの名無しさん
2018/06/13(水) 19:44:17.74ID:lSIEjw1a declspec dllexport使ってなかったから気づかなかったけど
x64で仕様変わったんだな
x64で仕様変わったんだな
410デフォルトの名無しさん
2018/06/13(水) 19:53:03.95ID:08JTaAbh 呼び出し規約が?
411デフォルトの名無しさん
2018/06/13(水) 21:31:58.11ID:lSIEjw1a x86だと先頭にアンダーバーが 後ろに@引数バイト数がついてたけど
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
412デフォルトの名無しさん
2018/06/14(木) 00:37:48.44ID:CDT3Iung413デフォルトの名無しさん
2018/06/14(木) 02:49:39.56ID:zhf22BrY Cの話なのね
414デフォルトの名無しさん
2018/06/14(木) 09:33:49.07ID:0LV14Koi ++でも同じだよ。結局使うのはc形式なんだから
415デフォルトの名無しさん
2018/06/16(土) 12:34:33.29ID:eoVHJNOw Windows7でRemoveMenu関数を使ってコマンドプロンプトのクローズボックスを無効化したあと
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
416デフォルトの名無しさん
2018/06/16(土) 12:41:21.25ID:fQgtrTpq cmdが内部で特殊な処理してない限りそんなこと起きないと思うんだけど・・
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
417放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/16(土) 13:09:31.09ID:Iux2O+3t RemoveMenu呼び出しの周辺のコードさらせ。
418デフォルトの名無しさん
2018/06/16(土) 16:12:48.28ID:IDYLbmOn コマンドプロンプトやPSのコンソールの実装はかなり特殊だよ
1ウィンドウと同じに考えてはいけないと思ってる
1ウィンドウと同じに考えてはいけないと思ってる
419デフォルトの名無しさん
2018/06/16(土) 16:48:55.99ID:fQgtrTpq 本当かよっと思って試しにやってみたら何のトラブルもなく閉じるだけ消えてプロパティ開けるぞ
420デフォルトの名無しさん
2018/06/20(水) 14:47:03.73ID:XFilFgQX LOGFONTのlfUnderlineを設定したフォントで文字を描画した際、下線が引かれますが、
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
421デフォルトの名無しさん
2018/06/20(水) 14:57:53.57ID:OnxnZInx つまりアンダーラインが相対的にどこに来るかを指定してる属性を取りたいっていう質問でしょうか?
422デフォルトの名無しさん
2018/06/20(水) 15:05:42.83ID:XFilFgQX423デフォルトの名無しさん
2018/06/20(水) 15:06:59.64ID:XFilFgQX 追記ですが、理想としてはlfUnderlineのときと
全く同じ位置や太さで描きたいと思っています。
全く同じ位置や太さで描きたいと思っています。
424デフォルトの名無しさん
2018/06/20(水) 15:10:10.67ID:4KfCtndu baseline memo
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
425デフォルトの名無しさん
2018/06/20(水) 15:34:01.33ID:mFWpedZK 質問者じゃないけど、フォント周りのコードを弄ってるときに
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
426菩薩@太子
2018/06/21(木) 20:10:03.98ID:6ce+aANS 汝らよ、汝らはWin32APIに関してわからないことがあったら、このスレで質問しなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
427デフォルトの名無しさん
2018/06/21(木) 20:18:23.12ID:pkPeGiXN さすれば、弥勒菩薩が降臨するまでに回答が得られるであろう
428デフォルトの名無しさん
2018/06/22(金) 06:16:52.85ID:kyYAMp48 芽っていう意味だよ
429デフォルトの名無しさん
2018/06/22(金) 08:59:29.47ID:4s+1pzSQ >>423
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
430デフォルトの名無しさん
2018/06/22(金) 20:00:29.48ID:HpQmxb21 DirectWriteだとカスタム描画用にIDWriteTextRenderer::DrawUnderlineというコールバックがあるで
431デフォルトの名無しさん
2018/06/22(金) 20:21:26.56ID:vo7No3CM もしかして GetTextMetrics で取得した TEXTMETRIC の tmAscent, tmDescent
で分かるんじゃないの?
で分かるんじゃないの?
432415
2018/06/23(土) 09:44:08.76ID:UVw2sBCh >>416-419
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
433さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 08:52:07.32ID:jlx8CiNF434デフォルトの名無しさん
2018/06/24(日) 09:12:16.31ID:7l22t7T7 また片山の宣伝かよ
435放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 10:11:04.49ID:Ki1yi8uD 一応、Win32APIで書いたんですけど。
436デフォルトの名無しさん
2018/06/24(日) 10:53:22.32ID:7l22t7T7 そういう考えで今まで何度も宣伝してたのかw
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
437デフォルトの名無しさん
2018/06/24(日) 10:54:03.26ID:QdNeiEeM あ? なんだよ「C++11に準拠してarray::operator[]で範囲チェックしろ」とかラリってる糞コテは片山かよ
438放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:09:06.07ID:Ki1yi8uD439放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:19:47.20ID:Ki1yi8uD 5ちゃんねるは、広告料と浪人の収益によって成り立っています。
440デフォルトの名無しさん
2018/06/24(日) 11:21:10.11ID:7l22t7T7 関係ないよ
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
441放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:23:27.52ID:Ki1yi8uD コマーシャルの仕組みについて皆さまのご理解をお願い致します。
443放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:39:26.10ID:Ki1yi8uD お前ら、Win32を知り尽くしているんだろ?
だれかReactOSで日本語入力できるようにしてくれよ。
だれかReactOSで日本語入力できるようにしてくれよ。
44441
2018/06/24(日) 11:48:47.83ID:iIAhljkC Win32Apiで何ができるかをを知り尽くしているが
Win32Apiが何をしているのかは何も知らない
Win32Apiが何をしているのかは何も知らない
445デフォルトの名無しさん
2018/06/25(月) 01:12:02.96ID:R9m7k+sg if(sa::sendkey[cnt]!=NULL){
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
446デフォルトの名無しさん
2018/06/25(月) 07:03:38.33ID:euNVlzH4 keybd_eventもしくはsendinput使う
447デフォルトの名無しさん
2018/06/25(月) 18:46:39.01ID:oo6U7F08 ??非アクティブウィンドウのままがいいならこれでどうでしょう
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
448デフォルトの名無しさん
2018/06/25(月) 20:01:44.94ID:R9m7k+sg レスありがとうございます。
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
449デフォルトの名無しさん
2018/06/25(月) 20:03:32.63ID:R9m7k+sg ちょっと>>447さんの方法も試してみます。
有り難うございます。
有り難うございます。
450放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/25(月) 20:32:07.52ID:RnBLs+IR Ctrl+Alt+Delは、セキュリティで保護されているんじゃ中田家?
451デフォルトの名無しさん
2018/06/25(月) 21:13:56.50ID:R9m7k+sg >>447さんの方法で無事うごきました。
ありがとうございましたm(_ _)m
ありがとうございましたm(_ _)m
452デフォルトの名無しさん
2018/06/25(月) 21:31:41.84ID:f6L/NlJ0 SetActiveWindow の代わりに SetForegroundWindow を試してみたら?
453デフォルトの名無しさん
2018/06/25(月) 21:35:50.33ID:I2eYxQBJ blinkWindowtop
454デフォルトの名無しさん
2018/06/30(土) 18:06:34.48ID:RTJdtcUh 言いたかないがCOMでマジで糞だなと思うのは
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
455デフォルトの名無しさん
2018/06/30(土) 18:25:36.41ID:SPR6zsx0 別スレッドにしたら余計危ないだろw
456デフォルトの名無しさん
2018/06/30(土) 19:40:38.36ID:RTJdtcUh いやまじでさ
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【悲報】日本人「俺以外の日本人が中国と戦ってくれるぞ!」 [616817505]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 維新の吉村代表「高市総理に中国総領事の国外退去を要請した。今後、知事として中国イベントには出席しない」 [359572271]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【悲報】あまりにも高市早苗の頭が悪過ぎて「これは確かに野党が配慮して質問するべきだったのでは」と結論が出てしまう [517791167]
