開発環境
<開発環境>
Windows10 Visual Studio 2019
C# .net framework 4.7.2
Windows Formアプリケーション
実現したいこと
自作のアプリケーションのボタンをクリックした際に、
ウィンドウ内の選択されているファイルに対し、コピー&ペーストを行いたい。
(デスクトップ上で選択されているファイルも対象)
自作アプリケーションの一つ後ろのウィンドウに対しては
キーボードイベント「Ctrl+C(V)」で動作はできています。
処理概要
Win32APIの「GetWindow(GW_HWNDNEXT)」と「IsWindowVisible」を使用し、
ひとつ後ろの可視ウィンドウに対してフォーカスをあてて「Ctrl+C(V)」を発行しています。
発生している問題
デスクトップ上で選択されているファイルに対して
キーボードイベント「Ctrl+C(V)」を発行しているが動作していませんでした。
起動した覚えのない、UWPアプリ(天気等のストアアプリ)が
可視ウィンドウとして判定されてしまっているため、
そのアプリに対して「Ctrl+C(V)」を発行しているようです。
その他調査したこと
UWPアプリの状態は、Windows10から追加された「中断」状態となっていました。
おそらくタスクトレイに常駐しているのかと思います。
タスクバーには存在していませんでした。
また、一度起動したペイント3D等も「中断」状態の可視ウィンドウとして
残ってしまっていることがありました。
教えて頂きたいこと
この「中断」状態のUWPアプリを判断し、
可視ウィンドウの判断から除外したいと思っています。
もしくは、他に良い方法があればご教示頂きたいです。
よろしくお願い致します。
ソースコード
C#
1IntPtr handle = GetForegroundWindow(); 2handle = GetWindow(handle, GW_HWNDNEXT); 3 4while (handle != new IntPtr(0)) 5{ 6 if (IsWindowVisible(handle)) 7 { 8 tsb = new StringBuilder(100); 9 GetWindowText(handle, tsb, tsb.Capacity); 10 11 if (tsb.Length > 0) 12 { 13 SetForegroundWindow(handle); 14 break; 15 } 16 } 17 handle = GetWindow(handle, GW_HWNDNEXT); 18} 19「Ctrl+C」発行
回答1件
あなたの回答
tips
プレビュー