1

グローバル ホットキーに正しく応答する C# アプリがあります。グローバルホットキーが押された場合にフォーカスがある別のアプリから選択したテキストを取得したい。

ネイティブの Win32 Api をテストし、次にSendKeys( CTRL + C、クリップボード、...)、そして Microsoft UI Automation をテストしました! 問題は、これはメモ帳でのみ機能し、Internet Explorer や Word などのアプリでは機能しないことです。

私が持っているコードよりも良い解決策があるに違いないと思います。送信CTRL + Cは正常に機能するはずだと読みましたが、それはメモ帳でも機能します。

グローバルホットキーが起動されたときに呼び出すメソッドは次のとおりです。

    public String GetSelectedTextFromApp()
    {
        String output = "";
        AutomationElement focused = AutomationElement.FocusedElement;
        object pattern;
        TextPatternRange[] trs;
        if (focused.TryGetCurrentPattern(TextPattern.Pattern, out pattern))
        {
            TextPattern tp = (TextPattern)pattern;
            trs = tp.GetSelection();
            output = trs[0].GetText(-1);
        }
        return output;
    }
4

1 に答える 1