установка приоритета события
Модераторы: Duncon, Hawk, Romeo, Eugie
-
- Сообщения: 25
- Зарегистрирован: 28 апр 2009, 15:15
здравствуйте, появился следующий вопрос. как устанавливать приоритетность на события? при выполнении, оно же попадает в очередь событий, а мне нужно, чтобы оно выполнилось сразу же (максимальный приоритет). наверное какая-то winapi функция на это есть.
событие предположим такое:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// какой-то код
}
событие предположим такое:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// какой-то код
}
-
- Сообщения: 25
- Зарегистрирован: 28 апр 2009, 15:15
я не совсем понял что это за функция. щас почитал инфу и всё равно не совсем разобался(( поясни в 2-3 словах и пример кода желательно
В общем есть 2 функции у API SendMessage и PostMessage (с апи работал очень мало по этому могу ошибиться далее).
Одна из них посылает сообщение, которое встает в очередь и дожидается пока очередь его не обработает. (по моему это PostMessage)
Другая посылает сообщение, которое мгновенно обрабатывается, не зависимо от длины очереди. (это по моему про SendMessage)
Одна из них посылает сообщение, которое встает в очередь и дожидается пока очередь его не обработает. (по моему это PostMessage)
Другая посылает сообщение, которое мгновенно обрабатывается, не зависимо от длины очереди. (это по моему про SendMessage)
-
- Сообщения: 25
- Зарегистрирован: 28 апр 2009, 15:15
так, я почитал, немного уже разбираться начал. кстати ты перепутал их
единственная проблема: как подключить winapi к visual c#? так и не приходилось это делать. делал ко всем средам, но не к этой...
единственная проблема: как подключить winapi к visual c#? так и не приходилось это делать. делал ко всем средам, но не к этой...
class Program
{
[DllImport("user32.dll", EntryPoint = "MessageBox", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int MessageBox(int hWnd, string smessage, string scaption, uint uiType);
static void Main(string[] args)
{
MessageBox(0, "вызов функции Win32", "Net", 0);
}
}
{
[DllImport("user32.dll", EntryPoint = "MessageBox", SetLastError = true, CharSet = CharSet.Auto)]
public static extern int MessageBox(int hWnd, string smessage, string scaption, uint uiType);
static void Main(string[] args)
{
MessageBox(0, "вызов функции Win32", "Net", 0);
}
}
-
- Сообщения: 25
- Зарегистрирован: 28 апр 2009, 15:15
ясно. а как конкретно PostMessage? для неё какой DLL и какой тип писать после extern static?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
и что в параметрах PostMessage?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
и что в параметрах PostMessage?
Открой msdn да посмотри...
Неужели тебе примера мало, чтобы понять как экспортить API...
Неужели тебе примера мало, чтобы понять как экспортить API...
-
- Сообщения: 25
- Зарегистрирован: 28 апр 2009, 15:15
Код: Выделить всё
public static extern int PostMessage(HandleRef hwnd, int msg, IntPtr wparam, IntPtr lparam);
не мог бы для моего случая написать? мне нужно нажатие на клавишу. не знаю что именно и как: WM_KEYDOWN или textBox1_KeyDown
Апи для получения хендла окна FindWindow.BattleMage писал(а):первый параметр дескриптор (хендл) окна? его же тоже через какую-то API функцию надо получить. как это сделать?Код: Выделить всё
public static extern int PostMessage(HandleRef hwnd, int msg, IntPtr wparam, IntPtr lparam);
не мог бы для моего случая написать? мне нужно нажатие на клавишу. не знаю что именно и как: WM_KEYDOWN или textBox1_KeyDown
У меня есть вопрос, как ты собираешься управлять очередью сообщений в c#?
Вообще лудше напиши в кратце чо те надо, уверен можно обойтись и без подобного изврата с апи.