トップページ > 記事閲覧
SetSysCommandFlag
名前:was-blue.0793 日時: 2020/01/20 18:51

Windows7では、SetSysCommandFlagを使うとAltキー、F10キーを使うことによる強制ポーズが無効化されます。 しかし、Windows10になってから同関数を使用してもAltキー、F10キーで強制ポーズがかかってしまうようになりました。 この挙動はDXライブラリを使った組み込み用アプリを開発する上で都合が悪いです。 この関数は更新によって廃止されたのでしょうか?
メンテ

Page: 1 |

Re: SetSysCommandFlag ( No.1 )
名前:管理人 日時:2020/01/21 01:11

今確認したところ SetSysCommandOffFlag を DxLib_Init の後で呼べば Altキーも F10キーも無効になりました ( この系統の関数は DxLib_Init の前に実行する、というイメージですが、SetSysCommandOffFlag は  DxLib_Init の後でなければ駄目でした… ) よろしければお試しください m(_ _)m
メンテ
Re: SetSysCommandFlag ( No.2 )
名前:was-blue.0793 日時:2020/01/27 12:47

>>管理人さん SetSysCommandOffFlagをDxLib_Initの後に呼び出すと、Altキーなどでポーズされなくなりました。 しかし、フルスクリーンで起動すると定期的に強制的に最小化される問題が発生します。 何か考えられる原因はあるでしょうか?
メンテ
Re: SetSysCommandFlag ( No.3 )
名前:管理人 日時:2020/01/27 23:05

> しかし、フルスクリーンで起動すると定期的に強制的に最小化される問題が発生します。 > 何か考えられる原因はあるでしょうか? 手元の環境では SetSysCommandOffFlag を DxLib_Initの後に呼び出しても定期的に強制的に 最小化されることはありませんでした was-blue.0793さんの環境でも SetSysCommandOffFlag を使用しなければ強制的に 最小化されることはないのでしょうか?
メンテ
Re: SetSysCommandFlag ( No.4 )
名前:was-blue.0793 日時:2020/01/28 00:10

>>管理人さん SetSysCommandOffFlagを使用しない場合、フルスクリーンにしても強制的に最小化されません。 しかし、先ほど別の環境で当該アプリを起動したところ、強制的な最小化は認められませんでした。 環境依存の可能性がありますので、問題の環境で調査してみます。
メンテ
Re: SetSysCommandFlag ( No.5 )
名前:しいな 日時:2020/01/29 00:38

>>was-blue.0793さん,管理人さん 横から失礼します。 「定期的に最小化」という現象ですが,私の環境でも発生しています。 こちらで開発しているアプリはゲームではなく,長時間起動しっぱなしにするようなアプリなのですが, 数週間前からこの現象に悩まされています。 内容をまとめると, ・強制的に最小化する ・アイコンをクリックしてフルスクリーンに戻しても,数秒〜十数秒でまた最小化する ・しばらくすると最小化が起きなくなる ・起動してすぐに起きることもあれば,数時間後に起きることもある ・SetSysCommandOffFlagを使用しないとこの現象は起きない OS:Windows10Pro 1909 DXライブラリ:Ver 3.21b ほぼ同じ環境のPCを5台使って検証していますが,5台中2台は上記の現象が発生しています。 最初は環境の問題だと考えていたのですが,SetSysCommandOffFlagの使用が現象の発生条件になっている ようなのです。 何か新しいことがわかったらまた報告します。
メンテ
Re: SetSysCommandFlag ( No.6 )
名前:was-blue.0793 日時:2020/01/29 01:37

>>しいなさん 当方の環境では、2つの環境がすべてWindows10Proですが、DXLibのバージョンは3.21eで、3.21eでも環境によっては定期的に最小化が発生します。 SetSysCommandOffFlagを使うと現象の発生が認められるようです。
メンテ
Re: SetSysCommandFlag ( No.7 )
名前:管理人 日時:2020/01/29 23:20

現象の詳しいご情報ありがとうございます 以下のようなプログラムを組んで試してみましたが、私の環境では200秒ほど経っても強制的に最小化しませんでした… 少し起動したまま放置しておこうと思います #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { LONGLONG StartTime ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // ALTキー無効化 SetSysCommandOffFlag( TRUE ) ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // システム時間を取得しておく StartTime = GetNowHiPerformanceCount() ; // メインループ while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { // 画面のクリア ClearDrawScreen() ; // 経過時間の表示 DrawFormatString( 0, 0, GetColor( 255,255,255 ), "Time:%dsec", ( int )( ( GetNowHiPerformanceCount() - StartTime ) / 1000000 ) ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } > was-blue.0793さん、しいなさん Windows10 の『OS ビルド』の値は幾つでしょうか? 『設定』→『バージョン情報』の『Windows の仕様』の項目には、私の環境では以下のようになっていました エディション Windows 10 Pro バージョン 1909 OS ビルド 18363.628
メンテ
Re: SetSysCommandFlag ( No.8 )
名前:was-blue.0793 日時:2020/01/30 18:59

>>管理人さん 先程確認したところバージョンが1903、OSビルドが18362.592でした。しかし、数分ほど起動したままにしたところ強制的な最小化が認められませんでした。 この後Windows Updateを行い調査を行いますので、取り急ぎご報告します。
メンテ
Re: SetSysCommandFlag ( No.9 )
名前:was-blue.0793 日時:2020/01/31 00:39

>>管理人さん 続報です。 Windows Updateをかけ、バージョンとOSビルドを管理人さんと同じにしましたが、数十分ほど起動しても強制的な最小化が認められませんでした。
メンテ
Re: SetSysCommandFlag ( No.10 )
名前:管理人 日時:2020/01/31 01:11

No.7のプログラムを起動したまま 6時間ほど放置しておきましたが、 強制的に最小化する現象は発生しませんでした… > was-blue.0793さん バージョンを上げる前から強制的な最小化は発生しなくなっているのが気になりますが、 とりあえず強制的な最小化は発生しなくなって解決、ということでしょうか…?
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存