Отправить нажатия клавиш в другое приложение C # - PullRequest
1 голос
/ 09 апреля 2009

Мне нужно автоматизировать FileMon.exe для запуска с фильтрами, сохранить созданный журнал и затем выйти.

Мое решение было написать вспомогательное приложение, которое будет делать все это. Который работал на запуск с указанными фильтрами и убил процесс, но мне все еще нужно, чтобы сохранить журнал. Как вы думаете, было бы глупо отправлять нажатия клавиш приложения для сохранения журнала? Например, я бы отправил Alt + F, Alt + S, введите filepath, Enter.

Как вы можете отправлять нажатия клавиш, как указано выше, другому процессу, работающему в C #?

Ответы [ 6 ]

1 голос
/ 09 апреля 2009

Спасибо за все ответы и помогите, ребята ... На самом деле я собираюсь написать и вызвать Perl-скрипт, используя Win32 :: GuiTest.

1 голос
/ 09 апреля 2009

Вы можете использовать Windows.Forms.SendKeys для отправки нажатий клавиш в активное приложение.

1 голос
/ 09 апреля 2009

Как я знаю, вам нужно вызвать некоторые из нативных API:

-FindWindow для поиска родительских окон, с которыми вы хотите работать

-FindWindowEx, чтобы найти истинные окна, на которые вы отправите сообщение

-SendMessage для отправки нажатий клавиш в эти окна

Подробная информация об этих API, см. В MSDN:)

0 голосов
/ 09 апреля 2009

Используйте что-то вроде AHK (Auto HotKey) Это простой язык, который может быть скомпилирован в EXE и предназначен для автоматизации клавиатуры и мыши.

Также на IRC-канале и форумах всегда есть люди, желающие помочь в случае необходимости.

0 голосов
/ 09 апреля 2009

Для этого вы можете использовать powershell и командлеты автоматизации Windows на сайте www.codeplex.com/wasp.

-Oisin

0 голосов
/ 09 апреля 2009

Это, вероятно, мертвый конец. Вы должны посмотреть и посмотреть, предоставляет ли приложение (или одна из его зависимых DLL) надлежащие вызовы API, чтобы делать то, что вы пытаетесь сделать. Если вам нужно было сделать это нажатием клавиш, вы можете посмотреть какую-нибудь макропрограмму, например MacorMaker.

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