Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2009, 15:21   #1
Savrik
 
Регистрация: 04.01.2009
Сообщений: 6
По умолчанию C#: передача нажатия кнопок в браузер

Смысл заключается в том, что есть открытый браузер FireFox, и запущена программа. В программе из списка выбирается действие и передается в браузер(например, нажатие клавиши "Ы"). Как это организовать?
Savrik вне форума Ответить с цитированием
Старый 12.06.2009, 20:23   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Этот код открывает и посылает в блокнот буквы ABC.
Чтобы переделать тебе надо, найти в процессах свой firefox, для этого используй метод Process.GetProcesses(), он вернет список всех запущенных процессов.
Код:
class Program
    {
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main(string[] args)
            {
                Process notepad = new Process();
                notepad.StartInfo.FileName = @"C:\Windows\Notepad.exe";
                notepad.Start();

                // Need to wait for notepad to start
                notepad.WaitForInputIdle();

                IntPtr p = notepad.MainWindowHandle;
                ShowWindow(p, 1);
                SendKeys.SendWait("ABC");
            }
    }
Hollander вне форума Ответить с цитированием
Старый 12.06.2009, 20:33   #3
Savrik
 
Регистрация: 04.01.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Этот код открывает и посылает в блокнот буквы ABC.
Чтобы переделать тебе надо, найти в процессах свой firefox, для этого используй метод Process.GetProcesses(), он вернет список всех запущенных процессов.
Код:
class Program
    {
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

        static void Main(string[] args)
            {
                Process notepad = new Process();
                notepad.StartInfo.FileName = @"C:\Windows\Notepad.exe";
                notepad.Start();

                // Need to wait for notepad to start
                notepad.WaitForInputIdle();

                IntPtr p = notepad.MainWindowHandle;
                ShowWindow(p, 1);
                SendKeys.SendWait("ABC");
            }
    }
Hollander, спасибо, опробую позже код.
Есть еще вопрос - а подобная реализация на WinAPI сложнее?
Savrik вне форума Ответить с цитированием
Старый 13.06.2009, 00:07   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от Savrik Посмотреть сообщение
Hollander, спасибо, опробую позже код.
Есть еще вопрос - а подобная реализация на WinAPI сложнее?
Не сказал бы что сложнее.
SendMessage( HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
Hwnd-хендл окна
msg=WM_KEYDOWN
wparam-код клавиши
lparam=0;
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват нажатия кнопок мыши DarkEvil Win Api 7 15.06.2009 22:38
браузер blackstersl Общие вопросы Delphi 5 17.09.2008 21:58
Браузер Хамяг Общие вопросы Delphi 7 22.08.2008 23:42
Браузер DeDoK Общие вопросы Delphi 3 17.05.2008 17:32
БРАУЗЕР ben95 Общие вопросы Delphi 7 06.01.2008 07:04