захватить выделенный текст из других приложений проблема - PullRequest
0 голосов
/ 05 февраля 2009

Я написал небольшой пример кода на C # для захвата выделенного текста из других приложений:

SendKeys.SendWait("^c");
string searchedText = Convert.ToString(Clipboard.GetText());

моя проблема не работает, если я захватил текст из браузера Chrome Кто-нибудь знает, почему это происходит, или если есть другой способ выполнить ту же задачу

UPDATE

Я делаю это приложение, чтобы захватить выделенный текст из любого другого приложения и сохранить его в файл, когда пользователь нажимает горячую клавишу.

protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        // let the base class process the message
        base.WndProc(ref m);

        // if this is a WM_HOTKEY message, notify the parent object
        const int WM_HOTKEY = 0x312;
        if (m.Msg == WM_HOTKEY)
        {
                SendKeys.SendWait("^c");
                string searchedText = Convert.ToString(Clipboard.GetText());
                Save(searchedText);
                Clipboard.Clear();
        }
    }

1 Ответ

4 голосов
/ 05 февраля 2009

Итак, вы предполагаете, что Ctrl-C всегда будет копировать текст в буфер обмена в каждом приложении. Это большое нет-нет, вы не знаете, что будет копировать текст в буфер обмена.

Кроме того, следует сказать, что использование буфера обмена для этого является очень плохой идеей, если вы специально не пытаетесь изменить содержимое буфера обмена. Кажется, вы просто используете его для копирования содержимого из другого приложения.

При этом я рекомендую вам использовать для этого библиотеку автоматизации пользовательского интерфейса Microsoft. Ссылка для этого здесь:

http://msdn.microsoft.com/en-us/library/ms747327.aspx

В журнале MSDN есть также хорошая статья на эту тему:

http://msdn.microsoft.com/en-us/magazine/cc163288.aspx

В частности, если вы хотите получить выделенный текст, вам нужно взглянуть на Обзор TextPattern автоматизации пользовательского интерфейса по адресу:

http://msdn.microsoft.com/en-us/library/ms745158.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...