Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コンソールWindowを選択状態にしてコンソール出力するとスリープ #1254

Open
comefrombottom opened this issue Aug 9, 2024 · 1 comment
Labels

Comments

@comefrombottom
Copy link
Member

エラーの内容 | Describe the runtime error
コンソールWindowを選択状態にしてコンソール出力すると画面がスリープし、Windowも閉じれなくなる。(全画面表示にしていたら復旧が極めて困難になる。)
再現方法 | To Reproduce

# include <Siv3D.hpp> 

void Main()
{
	Console << U"Start";//コンソールWindowを開いておく
	while (System::Update())
	{
		ClearPrint();
		Print << Scene::Time();

		if (KeySpace.down()) {
			Console << U"a";//実行中のコンソール出力
		}

	}
}

のように適当に実行中にコンソール出力できるようにする。

コンソールWindowで、どこでもいいので選択状態にする。

アプリWindowにもどり、(上記コードの場合スペースキーを押して)コンソール出力すると、処理が停止する。

image

発生環境(デスクトップの場合) | Desktop (please complete the following information):

  • OS:Windows11 23H2
  • バージョン | Version:Siv3D 0.6.15
  • GPU:
  • ブラウザ (Web 版) | Browser:

発生環境(モバイルの場合) | Smartphone (please complete the following information):

  • デバイス | Device:
  • OS:
  • バージョン | Version:
  • ブラウザ (Web 版) | Browser:

備考 | Additional context

@Reputeless
Copy link
Member

Siv3D アプリのウィンドウが非アクティブからアクティブに切り替わるたびに、次のように選択解除することで遭遇する確率を下げられそうなので、エンジン側での対応を検討します。

# include <Siv3D.hpp> 
# include <Siv3D/Windows/Windows.hpp>

void ClearConsoleSelection()
{
    HWND hConsoleWindow = ::GetConsoleWindow();

    if (not hConsoleWindow)
    {
        Print << U"コンソールウィンドウハンドルの取得に失敗";
        return;
    }

    // esc キーを入力したことにする
    ::SendMessage(hConsoleWindow, WM_KEYDOWN, VK_ESCAPE, 0);
    ::SendMessage(hConsoleWindow, WM_KEYUP, VK_ESCAPE, 0);
}

void Main()
{
    Console << U"Start";

    while (System::Update())
    {
        Circle{ Scene::Center(), 100 }.drawArc(Scene::Time() * 60_deg, 270_deg, 10, 10);

        if (Key1.down())
        {
            ClearConsoleSelection();
        }

        if (KeySpace.down())
        {
            Console << U"a";
        }
    }
}

@Reputeless Reputeless moved this to Investigating in v0.6 Roadmap Nov 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: ToDo
Development

No branches or pull requests

2 participants