|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 55
|
|
Не срабатывает SendKeys.Send();01.08.2016, 13:02. Показов 7839. Ответов 8
Метки нет (Все метки)
Здравствуйте!
Пишу биржевого робота в программе CAlgo (это язык C# дополненный несколькими библиотеками). При вызове функции SendKeys.Send("{Down}"); (сгенерировать нажатие кнопки "вниз" на клавиатуре) получаю ошибку: 28/07/2016 22:23:59.134 | Crashed in OnTick with SecurityException: Сбой при запросе разрешения типа "System.Security.Permissions.SecurityPer mission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". При вынесении этой функции в комментарий ошибки не происходит. На странице документации msdn написано, что этот класс содержится в файле mscorlib.dll, но подключить этот класс не удаётся. При компиляции возникает ошибка Error CS1703: Сборка с идентификацией "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" уже импортирована. Рекомендуется удались одну из повторяющихся ссылок. Правильно ли я понимаю, что эта библиотека по умолчанию подключена в программе? И мой основной вопрос: можно ли как-нибудь программно решить мою проблему, или нужно редактировать библиотеку? Если второе, то в какую сторону копать?
0
|
|
| 01.08.2016, 13:02 | |
|
Ответы с готовыми решениями:
8
Функция SendKeys.Send не работает
Как использовать SendKeys.Send |
|
10 / 10 / 1
Регистрация: 27.11.2011
Сообщений: 153
|
|
| 01.08.2016, 14:54 | |
|
SeMiTr, Если вам нужно эмулировать нажатие кнопок в окне, то лучше использовать WinAPI SendMessage или PostMessage
1
|
|
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 55
|
|||||||||||
| 03.08.2016, 16:03 [ТС] | |||||||||||
using System.Runtime.InteropServices; - подключил
Далее:
0
|
|||||||||||
|
10 / 10 / 1
Регистрация: 27.11.2011
Сообщений: 153
|
||||||
| 03.08.2016, 16:43 | ||||||
Кликните здесь для просмотра всего текста
WM_LBUTTONDOWN = 0x201, //Left mousebutton down WM_LBUTTONUP = 0x202, //Left mousebutton up WM_LBUTTONDBLCLK = 0x203, //Left mousebutton doubleclick WM_RBUTTONDOWN = 0x204, //Right mousebutton down WM_RBUTTONUP = 0x205, //Right mousebutton up WM_RBUTTONDBLCLK = 0x206, //Right mousebutton doubleclick WM_KEYDOWN = 0x100, //Key down WM_KEYUP = 0x101, //Key up WM_MOUSEMOVE = 0x0200, WM_ACTIVATE = 0x0006, WM_QUERYOPEN = 0x0013, WM_SYSCOMMAND = 0x0112, WM_CHAR = 0x0102, WM_SYSKEYDOWN = 0x0104, WM_SYSKEYUP = 0x0105, WM_SETCURSOR = 0x0020, WM_MOUSEACTIVATE = 0x0021, CB_SETCURSEL = 0x014E, WM_MOUSEHOVER = 0x02A1, WM_MOUSELEAVE = 0x02A3, MK_CONTROL = 0x0008, MK_LBUTTON = 0x0001, MK_MBUTTON = 0x0010, MK_RBUTTON = 0x0002, MK_SHIFT = 0x0004, MK_XBUTTON1 = 0x0020, MK_XBUTTON2 = 0x0040, VK_LBUTTON = 0x01, //Left mouse button VK_RBUTTON = 0x02, //Right mouse button VK_CANCEL = 0x03, //Control-break processing VK_MBUTTON = 0x04, //Middle mouse button (three-button mouse) VK_BACK = 0x08, //BACKSPACE key VK_TAB = 0x09, //TAB key VK_CLEAR = 0x0C, //CLEAR key VK_RETURN = 0x0D, //ENTER key VK_SHIFT = 0x10, //SHIFT key VK_CONTROL = 0x11, //CTRL key VK_MENU = 0x12, //ALT key VK_PAUSE = 0x13, //PAUSE key VK_CAPITAL = 0x14, //CAPS LOCK key VK_ESCAPE = 0x1B, //ESC key VK_SPACE = 0x20, //SPACEBAR VK_PRIOR = 0x21, //PAGE UP key VK_NEXT = 0x22, //PAGE DOWN key VK_END = 0x23, //END key VK_HOME = 0x24, //HOME key VK_LEFT = 0x25, //LEFT ARROW key VK_UP = 0x26, //UP ARROW key VK_RIGHT = 0x27, //RIGHT ARROW key VK_DOWN = 0x28, //DOWN ARROW key VK_SELECT = 0x29, //SELECT key VK_PRINT = 0x2A, //PRINT key VK_EXECUTE = 0x2B, //EXECUTE key VK_SNAPSHOT = 0x2C, //PRINT SCREEN key VK_INSERT = 0x2D, //INS key VK_DELETE = 0x2E, //DEL key VK_HELP = 0x2F, //HELP key VK_0 = 0x30, //0 key VK_1 = 0x31, //1 key VK_2 = 0x32, //2 key VK_3 = 0x33, //3 key VK_4 = 0x34, //4 key VK_5 = 0x35, //5 key VK_6 = 0x36, //6 key VK_7 = 0x37, //7 key VK_8 = 0x38, //8 key VK_9 = 0x39, //9 key VK_A = 0x41, //A key VK_B = 0x42, //B key VK_C = 0x43, //C key VK_D = 0x44, //D key VK_E = 0x45, //E key VK_F = 0x46, //F key VK_G = 0x47, //G key VK_H = 0x48, //H key VK_I = 0x49, //I key VK_J = 0x4A, //J key VK_K = 0x4B, //K key VK_L = 0x4C, //L key VK_M = 0x4D, //M key VK_N = 0x4E, //N key VK_O = 0x4F, //O key VK_P = 0x50, //P key VK_Q = 0x51, //Q key VK_R = 0x52, //R key VK_S = 0x53, //S key VK_T = 0x54, //T key VK_U = 0x55, //U key VK_V = 0x56, //V key VK_W = 0x57, //W key VK_X = 0x58, //X key VK_Y = 0x59, //Y key VK_Z = 0x5A, //Z key VK_NUMPAD0 = 0x60, //Numeric keypad 0 key VK_NUMPAD1 = 0x61, //Numeric keypad 1 key VK_NUMPAD2 = 0x62, //Numeric keypad 2 key VK_NUMPAD3 = 0x63, //Numeric keypad 3 key VK_NUMPAD4 = 0x64, //Numeric keypad 4 key VK_NUMPAD5 = 0x65, //Numeric keypad 5 key VK_NUMPAD6 = 0x66, //Numeric keypad 6 key VK_NUMPAD7 = 0x67, //Numeric keypad 7 key VK_NUMPAD8 = 0x68, //Numeric keypad 8 key VK_NUMPAD9 = 0x69, //Numeric keypad 9 key VK_SEPARATOR = 0x6C, //Separator key VK_SUBTRACT = 0x6D, //Subtract key VK_DECIMAL = 0x6E, //Decimal key VK_DIVIDE = 0x6F, //Divide key VK_F1 = 0x70, //F1 key VK_F2 = 0x71, //F2 key VK_F3 = 0x72, //F3 key VK_F4 = 0x73, //F4 key VK_F5 = 0x74, //F5 key VK_F6 = 0x75, //F6 key VK_F7 = 0x76, //F7 key VK_F8 = 0x77, //F8 key VK_F9 = 0x78, //F9 key VK_F10 = 0x79, //F10 key VK_F11 = 0x7A, //F11 key VK_F12 = 0x7B, //F12 key VK_SCROLL = 0x91, //SCROLL LOCK key VK_LSHIFT = 0xA0, //Left SHIFT key VK_RSHIFT = 0xA1, //Right SHIFT key VK_LCONTROL = 0xA2, //Left CONTROL key VK_RCONTROL = 0xA3, //Right CONTROL key VK_LMENU = 0xA4, //Left MENU key VK_RMENU = 0xA5, //Right MENU key VK_PLAY = 0xFA, //Play key VK_ZOOM = 0xFB; //Zoom key
1
|
||||||
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 55
|
||
| 05.08.2016, 09:37 [ТС] | ||
|
Полностью так, как Вы говорили не получилось. Скомпилировал так:
SendMessage(h1C, 0x100, new IntPtr(0x28), new IntPtr(0)); Но получил ты же ошибку. 05/08/2016 08:31:04.986 | Crashed in OnTick with SecurityException: Сбой при запросе разрешения типа "System.Security.Permissions.SecurityPer mission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Вопрос по-прежнему
0
|
||
|
10 / 10 / 1
Регистрация: 27.11.2011
Сообщений: 153
|
|
| 07.08.2016, 16:04 | |
|
SeMiTr, Решешие этой проблемы заключается вот в чем: необходимо изменить AccessRights = AccessRights.None на AccessRights = AccessRights.FullAccess
1
|
|
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 55
|
||||||
| 12.08.2016, 19:27 [ТС] | ||||||
|
Хочется, чтобы "ANTSOFT Key Manager v1.11" перехватывал это нажатие. Попробовал даже нажатие внутри самого "Key Manager" но результата нет. При нажатии на клавиатуру - есть, а программно - нет.
части кода работающие с клавиатурой:
0
|
||||||
|
10 / 10 / 1
Регистрация: 27.11.2011
Сообщений: 153
|
||||||
| 12.08.2016, 19:44 | ||||||
|
SeMiTr, Возьмите Spy и посмотрите как выглядят сообщения о нажатии кнопок в вашей программе. У меня бывало такое что кроме самого кода клавиши требовалось передавать еще и ScanCode этой клавиши в lParam. Это раз. Вы через отладчик проверяли,
1
|
||||||
|
0 / 0 / 1
Регистрация: 23.06.2012
Сообщений: 55
|
||||||
| 17.08.2016, 16:29 [ТС] | ||||||
|
Не знаю, в чём было дело, возможно генерировалось нажатие клавиш, и не генерировалось отпускание. Или оно происходило слишком быстро, чтобы программа успевала его заметить. Но сработал следующий вариант.
IF (iskeydown(#ALT)=1) IF(iskeydown(#1)=1) WAITMS(5) LOGWRITE("Вверх") LCLICK(36, 321) KEYDOWN(#ALT) KEYDOWN(#1) WAITMS(5) KEYUP(#ALT) KEYUP(#1) WAITMS(1) END_IF END_IF или что-то аналогичное с одной кнопкой
0
|
||||||
| 17.08.2016, 16:29 | |
|
Помогаю со студенческими работами здесь
9
Не срабатывает SendKeys при повторном нажатии горячих клавиш SendKeys.Send("^v") отправляется как "v" Проблема с SendKeys.Send Ошибка. Не работает SendKeys.Send SendKeys.Send программное нажатие клавиш? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|