Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать старую GetKeyState()? VC#.NET/winAPI??? 
:(
    Опции темы
neutrino
Дата 24.4.2003, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Приветствую!

Не подскажете где лежит эта функция? Или ее аналог?


Раньше я писал:
Цитата

private void MainForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if (GetKeyState(VK_NUMLOCK))
        statusBar.Panels[0].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[0].BorderStyle = StatusBarPanelBorderStyle.Raised;
    if (GetKeyState(VK_CAPITAL))
        statusBar.Panels[1].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[1].BorderStyle = StatusBarPanelBorderStyle.Raised;
    if (GetKeyState(VK_SCROLL))
        statusBar.Panels[2].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[2].BorderStyle = StatusBarPanelBorderStyle.Raised;
}

A теперь (это не работает):
Цитата

private void MainForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    if ((Control.ModifierKeys&Keys.NumLock)==Keys.NumLock)
        statusBar.Panels[0].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[0].BorderStyle = StatusBarPanelBorderStyle.Raised;
    if ((Control.ModifierKeys&Keys.CapsLock)==Keys.CapsLock)
        statusBar.Panels[1].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[1].BorderStyle = StatusBarPanelBorderStyle.Raised;
    if ((Control.ModifierKeys&Keys.Scroll)==Keys.Scroll)
        statusBar.Panels[2].BorderStyle = StatusBarPanelBorderStyle.Sunken;
    else
        statusBar.Panels[2].BorderStyle = StatusBarPanelBorderStyle.Raised;
}



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 24.4.2003, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Ну так и вызываю:

if (GetKeyState(VK_NUMLOCK)) {....


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Alex101
Дата 24.4.2003, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: нет
Всего: 10



Цитата(neutrino @ 24.4.2003, 12:58)
Ну так и вызываю:

if (GetKeyState(VK_NUMLOCK)) {....

Dll надо загружать, где эта функция описана.


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
neutrino
Дата 24.4.2003, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А я думал там уже готовый Imports есть... sad.gif


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 24.4.2003, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Не, это я просто про АПИ функцию GetKeyState(). Хотя бы она и не вызывается. Потом посмотрел и еще пару функций компилятор не знает.
Так какую библиотеку подключать то?


Все таки удалил...

Это сообщение отредактировал(а) neutrino - 24.4.2003, 18:09


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Alex101
Дата 25.4.2003, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: нет
Всего: 10



Код
using System.Runtime.InteropServices;
[DllImport("User32.dll")]
extern int GetKeyState(int nVirtKey);

Попробуй, что-то типа этого..


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
AntonSaburov
Дата 25.4.2003, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата
Попробуй, что-то типа этого..


Также не забудь, что это должно быть static. Т.е.

Код

using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
public static extern int GetKeyState(int nVirtKey);

PM MAIL WWW ICQ   Вверх
neutrino
Дата 27.4.2003, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Спасибо большое за помощь Alex101 и AntonSaburov. Все заработало. Единственное - пришлось вытащить из Дельфи константы клавиш. Неужели нет готового модуля для С#? И неужели так надо делать для каждой API функции?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
AntonSaburov
Дата 28.4.2003, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата
И неужели так надо делать для каждой API функции?


Увы sad.gif
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.