何でも結構ですので、ご助言いただけましたら嬉しいです。
前提・実現したいこと
c#のコードから、
calc.exeを起動して、
それを最小化したいと思っています。
発生している問題・エラーメッセージ
最小化しません。
ただ起動したそのままの状態となってしまいます。
notepad.exeなら最小化します。
UWPアプリはだめみたいで、
困っています。
該当のソースコード
Visual
1 class Win32Api 2 { 3 public const int SW_SHOWMINIMIZED = 2; 4 5 [DllImport("User32.Dll")] 6 public static extern long ShowWindow( 7 IntPtr hWnd, // 送信先ウィンドウのハンドル 8 uint nCmdShow // メッセージ 9 ); 10 11 } 12 13 class Program 14 { 15 static void Main(string[] args) 16 { 17 System.Diagnostics.Process p = System.Diagnostics.Process.Start("calc.exe"); 18 p.WaitForInputIdle(); 19 Win32Api.ShowWindow(p.MainWindowHandle, Win32Api.SW_SHOWMINIMIZED); 20 } 21 }
試したこと
VBAを使って、SendKeysを使ってみたら、
同様の結果でした。
補足情報(FW/ツールのバージョンなど)
Windows10 home 64bit
Visual Studio 2019 c#
コンソールアプリ .NET Core
どうぞよろしくおねがいします。
「ど素人」とかは書かなくて良いので「初心者アイコン」をつけるにとどめてください。要件と直接関係がある事柄ではありません。
「最小化しない」ということでしょうか。
起きている現象を具体的に記載してください。
https://teratail.com/help/question-tips#questionTips3-4-1
ご指摘ありがとうございました。
修正させていただきましたので、よろしくおねがいします。
UWP アプリは通常のデスクトップアプリと同じ方法では制御できません。SendKeys でだめなら難しいと思いますが、何を送ったんでしょうか? まず Alt+Space を送り、メニューが出たところで N を送れば最小化できるんじゃないかと思うんですが。
ご助言ありがとうございます。
SendKeys "%{ }N"
としていました。
notepad.exeとchrome.exeはこれで最小化されましたが、calc.exeはできません。しかし、calc.exeも自分でキーを打てばちゃんと最小化はされます。ちなみにUWP アプリはどのような方法を取れば制御できるのでしょうか?
どのようにしているのか、コードを書いてみてください。
