Эмуляция ctrl+F5

  • Автор темы Автор темы webbaster
  • Дата начала Дата начала

webbaster

Client
Регистрация
19.07.2013
Сообщения
141
Реакции
15
Баллы
18
Доброго времени суток!
Есть ли в программе функция эмуляции ctrl+F5 ?
Спасибо.
 
  • Оценить
Реакции: webbaster
Сейчас пытаюсь эмулировать нажатие кнопки esc
Делаю так
System.Windows.Forms.SendKeys.Send("{Esc}");
Ошибка такая:
Выполнение действия OwnCode SendKeys не может выполняться в рамках этого приложения, так как приложение не обрабатывает сообщения Windows. Измените приложение, так чтобы оно обрабатывало сообщения, или используйте метод SendKeys.SendWait.

Подскажите, что неправильно?

Спасибо.
 
Сейчас пытаюсь эмулировать нажатие кнопки esc
Делаю так

Ошибка такая:


Подскажите, что неправильно?

Спасибо.
Ну попробуй так:
JavaScript:
Развернуть Свернуть Копировать
System.Windows.Forms.SendKeys.SendWait("^{F5}");
или так
JavaScript:
Развернуть Свернуть Копировать
Emulator.ActiveWindow(instance.FormTitle);
System.Windows.Forms.SendKeys.Send("^{F5}");
 
Этот код
System.Windows.Forms.SendKeys.SendWait("{Esc}");
выполняется корректно, но popup окно не закрывает (это окно кнопкой esc должно закрываться.
А вот этот код
Emulator.ActiveWindow(instance.FormTitle);
System.Windows.Forms.SendKeys.Send("{Esc}");
Выдает такую ошибку
Выполнение действия OwnCode SendKeys не может выполняться в рамках этого приложения, так как приложение не обрабатывает сообщения Windows. Измените приложение, так чтобы оно обрабатывало сообщения, или используйте метод SendKeys.SendWait.
 
Ну попробуй так:
JavaScript:
Развернуть Свернуть Копировать
System.Windows.Forms.SendKeys.SendWait("^{F5}");
или так
JavaScript:
Развернуть Свернуть Копировать
Emulator.ActiveWindow(instance.FormTitle);
System.Windows.Forms.SendKeys.Send("^{F5}");

Данный трюк не прокатит, поскольку метод System.Windows.Forms.SendKeys работает лишь с окном самого приложения и не может отсылать кливиши другим окнам.

С# .NET работает в своей песочнице.

Можно создасть свои костыли при помощи DllImport и WinAPI чтобы отсылать клавиши стороннему приложению.

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

В ZennoPoster API для этих целей предусмотрена своя функция Emulator.SendKey

Приведенный ниже код должен сработать:
Код:
Развернуть Свернуть Копировать
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Down);
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Up);
 
WhiteCoder, подскажите пож-ста, как мне модифицировать

Код:
Развернуть Свернуть Копировать
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Down); 
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Up);

чтобы эмулировать нажатие Ctrl+Enter
 
WhiteCoder, подскажите пож-ста, как мне модифицировать

Код:
Развернуть Свернуть Копировать
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Down); 
Emulator.SendKey(instance.ActiveTab.Handle, System.Windows.Forms.Keys.Escape, KeyboardEvent.Up);

чтобы эмулировать нажатие Ctrl+Enter
К сожалению в ZennoPoster нет встроенной поддержки нажатия одновременно двух клавиш.
Недавно занимался проектом ВКОНТАКТЕ, где нужно было нажимать CTRL+V , в итоге встроенного решения не нашел и все сделал при помощи анализа скриптов.
В вашем случае тоже наверняка можно задачу решить при помощи JavaScript, посмотреть нужно детальнее.
 
WhiteCoder, буду признателен за пример решения подобной задачи, посредством JS, либо ссылку..
 
WhiteCoder, буду признателен за пример решения подобной задачи, посредством JS, либо ссылку..

Нужно смотреть конкретно на вашем сайте как он обрабатывает эти нажатия, и исходя из этого можно составить решение.
 
  • Оценить
Реакции: Sergodjan
Тоже интересно, как вставку с буфера обмена эмулировать, комбинацию ctrl+v никак не удается получить
 
Зачем вам это? А если многопоток? А если левое что скопируется? Данные нужно получать точными методами.
 
Добрый День ! а есть вариант shift + стрелка влево ? на C# или ещё как
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)