Автор темы
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
К курсу →
Автор темы
SendKeys хороший метод, только как к нему прицепить коды служебных клавиш,
например Insert ?
например Insert ?
Можно, если у вызывающего кода есть SecurityPermission на UnmanagedCode. Если нет - можно вынести вызывающий код работы с Win32 API в отдельную dll, и через CAS Policy дать этой dll нужные права.Win32 API юзать в "безопасном коде" нельзя
EDIT: как и сделал MS для SendKeys
У меня SendKeys посылает Unicod-аналог скан-кода, а это далеко не то, что хотелось бы
Rema
Unicode-аналог скан-кода? Это как
? Что, например, приходит при отправке "{INS}"?
Unicode-аналог скан-кода? Это как
Поставим вопрос так: как передать Keys.Insert в качестве строкового параметра методу SendKeys.Send(keys) ?
Rema
как передать Keys.Insert в качестве строкового параметра методу SendKeys.Send(keys) ?
Что, например, приходит при отправке "{INS}"?
Вот такой код успешно работает:
Form f = new Form();
RichTextBox tb = new RichTextBox();
tb.Dock = DockStyle.Fill;
f.Controls.Add(tb);
tb.Click += delegate { SendKeys.Send("{INS}"); };
f.ShowDialog();
т.е. SendKeys нормально отрабатывает {INS}
Form f = new Form();
RichTextBox tb = new RichTextBox();
tb.Dock = DockStyle.Fill;
f.Controls.Add(tb);
tb.Click += delegate { SendKeys.Send("{INS}"); };
f.ShowDialog();
т.е. SendKeys нормально отрабатывает {INS}
Да, пожалуй срабатывает. Только не понятно как метод определяет, что {INS} соответствует Keys.Insert и где найти соответствия для остальных скан-кодов
Rema
Судя по всему, в MSDN по SendKeys.Send ты даже не заглядывал? Действительно, зачем? Ведь напрячь сидящих на форуме проще, они же удовольствие получают от копипаста документации по используемым тобой функциям.
Судя по всему, в MSDN по SendKeys.Send ты даже не заглядывал? Действительно, зачем? Ведь напрячь сидящих на форуме проще, они же удовольствие получают от копипаста документации по используемым тобой функциям.
Напряги с английским. Если бы все ходили в MSDN, тогда зачем нужны русско-язычные форумы ?
Rema
Наверное потому что довольно скучно на голом энтузиазме переводить кучу технической документации на русский. Особенно если учесть, что для освоения технического английского достаточно потратить месяц-два. Тебе ведь все равно придется его выучить, так зачем оттягивать неизбежное?
Наверное потому что довольно скучно на голом энтузиазме переводить кучу технической документации на русский. Особенно если учесть, что для освоения технического английского достаточно потратить месяц-два. Тебе ведь все равно придется его выучить, так зачем оттягивать неизбежное?
Я это к тому, что обычно люди смотрят информацию на родном языке,
а уж если нет ничего подходящего, лезут в MSDN.
На всякий случай, для таких же, как, я даю соответсвующую теме инфу:
а уж если нет ничего подходящего, лезут в MSDN.
На всякий случай, для таких же, как, я даю соответсвующую теме инфу:
SendKeys Class:
Key Code
BACKSPACE {BACKSPACE},{BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DELETE {DELETE},{DEL}
DOWN {DOWN}
END {END}
ENTER {ENTER}
ESC {ESC}
HELP {HELP}
HOME {HOME}
INSERT {INSERT},{INS}
LEFT {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINTSCREEN {PRTSC}
RIGHT {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP {UP}
F1 {F1}
...... ..........
F16 {F16}
Keypad add {ADD}
Keypad subtract {SUBTRACT}
Keypad multiply {MULTIPLY}
Keypad divide {DIVIDE}
Коды ( + ^ % ~ ) имеют специальные значения, если не поместить их внутри
фигурных скобок {}. Например, чтобы задать код плюса, используйте "{+}".
Чтобы задать фигурные скобки, используйте "{{}" и "{}}".
Чтобы задать ключи, объединенные с любой комбинацией SHIFT, CTRL, ALT,
предваряйте ключевой код одним или несколькими из следующих кодов:
SHIFT +
CTRL ^
ALT %
Для задания любой комбинации SHIFT, CTRL, и ALT с набором других клавиш,
надо коды этих клавиш поместить в круглые скобки. Например, чтобы задать
нажатие SHIFT вместе с клавишами E и D, используйте "+ (ED)".
Чтобы задать SHIFT только с клавишей E, а D без SHIFTа, используйте "+ED".
Чтобы определить повторяющиеся ключи, используйте форму {key num}.
Например, {LEFT 42}, эмулирует нажатие клавиши LEFT 42 раза.
Ещё по теме
4
Поделиться: