午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

WindowsAPI

WinAPIとWPF(.NET 6.0)だけで画面上のカーソル位置の色取得してみた

結果 作成環境 コード 感想 関連記事 結果 色を取得しているところ 起動時 色取得中 クリック位置の色取得 作成環境 Windows 10 Home バージョン 22H2 Visual Studio Community 2022 Version 17.6.5 WPF C# .NET 6.0 コード 2023WPF/20230716_GetColorClickO…

ウィンドウのタイトルバー情報を取得するWinAPIのGetTitleBarInfoを使ってみた、WPF、C#

ウィンドウのタイトルバー情報を取得 TITLEBARINFO構造 TitleStateのそれぞれの値の指定 テストアプリのコード API.cs MainWindow.xaml MainWindow.xaml.cs ウィンドウのタイトルバー情報取得してみる ここまでの結果を一覧表にすると ウィンドウのタイトル…

アプリのスクショでウィンドウ枠外のメニューもキャプチャしたい

目的 使うWinAPI関数 大まかな流れ GetForegroundWindowの結果はアプリによって違う エクセル系、普通のアプリ系の判定 エクセル系だった場合NEXTで下層ウィンドウ収集、Rectリスト作成 要るものだけ残して、そのRect収集 追加Rect 普通のアプリ系だった場合…

エクセルのスクショ時にウィンドウ枠外のメニュー、右クリックメニューも同時に撮りたい、WPFとWinAPI

目的 基本的な処理の流れは 普通のアプリとエクセルとかのリボンメニューがあるアプリの違い 基点ウィンドウから関連ウィンドウを辿る GetParentで辿っていく方法もあるけど 右クリックメニューはGetParentで辿れない 下層のウィンドウを取得するNEXTで辿る …

アプリのウィンドウキャプチャで、枠外のメニューウィンドウもキャプチャ

メモ帳のウィンドウ枠外にメニューウィンドウが広がっている状態 デスクトップ この状態でスクショした結果 スクショ画像 目的のアプリのウィンドウ以外は取り去って、この画像を得るのが目的で、こうするには Rect こういう赤枠のようなRectを取得して切り…

WPF、他のアプリの右クリックメニューのウィンドウハンドル取得方法がわからん

目的は右クリックメニューのRectか画像としての取得で、ウィンドウハンドルさえ取得できればいいんだけどねえ、少し試したけどわからんかったって話 結果から言うと、できることはできたけど、マウスカーソルが右クリックメニューの上にあるっていう条件付き…

アプリのウィンドウが非アクティブ状態でも任意のキーの入力を感知、WPFでグローバルホットキーの登録

アプリのウィンドウが非アクティブ状態でもキー入力を感知したくて以前試したのはこれ gogowaten.hatenablog.com でも、この方法ではタスクマネージャーなど、特定のアプリがアクティブウィンドウだと無反応だった これを解決したのが今回 グローバルホット…

画像にマウスカーソル画像を重ねて表示、アルファブレンドとビット演算のANDとXOR

前回でマウスカーソル画像を取得できたので、ウィンドウのキャプチャ画像に重ねてみた 普通の矢印カーソル 普通の矢印カーソルはアルファブレンド テキストエディタとかでのI型カーソル I型カーソルはマスク画像上半分をビット演算のANDしてから、下半分をXO…

表示しているマウスカーソル画像を取得表示してみた、WinAPIとWPF

テスト中 テスト用アプリ 0.1秒ごとにマウスカーソル画像をいくつかの方法で取得して表示している WinAPIを使ってカーソルのハンドルやカーソル画像のハンドルを取得して WPF(.NET)の System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon System.Wi…

WinAPIのGetAncestorでリボンメニューを開いた状態のエクセルウィンドウをキャプチャ

テスト用アプリ テスト用アプリ ダウンロード https://github.com/gogowaten/2020WPF/releases/download/1.0/20201117_.7z Release 1.0 · gogowaten/2020WPF github.com テスト用アプリ動作 右Ctrl+右Shiftで最前面ウィンドウをキャプチャする ウィンドウハ…

ウィンドウの見た目通りのRect取得はDwmGetWindowAttribute

C#での画面キャプチャの取得方法を徹底解説! | .NETコラム https://www.fenet.jp/dotnet/column/language/4633/ ここを見るのが早いかなあ DwmGetWindowAttribute //DWM(Desktop Window Manager) //見た目通りのRectを取得できる、引数のdwAttributeにDWM…

ウィンドウDCからのキャプチャではアルファ値が変なので、画面全体をキャプチャして切り抜き

メモ帳ウィンドウをAlt+PrintScreenでのスクショ、これが期待する結果なんだけど ウィンドウDC(デバイスコンテキスト)から作成する方法だと、スクロールバーしかキャプチャできない 水色のところは背景色なので殆どが透明になっている ウィンドウDC(デバイス…

マウスカーソルの下にあるウィンドウのRect取得してみた、GetWindowRectとGetClientRect

マウスカーソルの下にあるウィンドウのRect取得してるところ 2020WPF/20201111_カーソル下のウィンドウ取得 github.com GetWindowRectはタイトルバーや枠も含めた領域 GetClientRectは枠の内側の領域 MainWindow.xaml

非アクティブ時にもキーの状態を取得してみたWindowsAPIのGetAsyncKeyState

非アクティブ時にShift+Aの回数をカウントしているところ Timerで一定時間間隔ごとに GetAsyncKeyStateを実行してキーの状態を取得 2020WPF/20201110_WinApiでキーの状態取得 at master · gogowaten/2020WPF github.com 環境 Visual Studio Community 2019 .…