Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Заблокирован

перечисление KEY из System.Windows.Forms.dll

21.11.2019, 00:37. Показов 1520. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет.
хочу использовать
https://docs.microsoft.com/ru-... etcore-3.0
в консольном приложении на шарпах.

C#
1
2
3
4
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
вопрос
какие существуют способы это сделать?
можно ли прицепить
длл ку System.Windows.Forms.dll
или только юзингами можно обойтись, или ими не обойтись?
буду рад вникнуть в тему шарпов.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2019, 00:37
Ответы с готовыми решениями:

Необработанное исключение типа "System.IO.FileLoadException" в System.Windows.Forms.dll
Всем доброго времени суток! Возникла проблема при подключении Microsoft.DirectX.AudioVideoPlayback; есть кнопка: private...

System.Windows.Forms.WebBrowser.Url.get вернул null
Пытаюсь авторизоваться в фейсбуке. Для этого нужно получить токен. Я через webBrowser1 подаю OAuth запрос: ...

Как добавить ссылку на сборку System.Windows.Forms.DataVisualisation ?
Как добавить ссылку на сборку System.Windows.Forms.DataVisualisation? Стандартным способом добавления ссылок через обозреватель решений...

6
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.11.2019, 00:40
Лучший ответ Сообщение было отмечено Gokusei как решение

Решение

у консоли есть свой класс, ConsoleKey
1
Заблокирован
21.11.2019, 00:48  [ТС]
Цитата Сообщение от Diamante Посмотреть сообщение
ConsoleKey
спасибо.
а класс виндовс форм как -то можно использовать?

Добавлено через 1 минуту
и еще впрс

C#
1
2
3
 [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        static void Main(string[] args)
Добавлено через 32 секунды
что нам дает
Цитата Сообщение от Gokusei Посмотреть сообщение
[DllImport("user32.dll")]
без него не работает, но в коде оно явно нигде не вызывается

Добавлено через 1 минуту
и почему я не могу несколько dll таким образом прицепить?
C#
1
2
//[DllImport("System.Windows.Forms.dll")]
        [DllImport("user32.dll")]
Добавлено через 44 секунды
или это можно сделатьтолько создав новую длл ку из двух
и прицепив уже её?
а если у меня нет исходников какой-то из дллки , как мне еепересобрать вместе с другой?
или это вообще не правильные мысли?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.11.2019, 00:52
Gokusei,
Цитата Сообщение от Gokusei Посмотреть сообщение
что нам дает
Сообщение от Gokusei
[DllImport("user32.dll")]
это означает, что используется метод хранящийся в user32.dll
Цитата Сообщение от Gokusei Посмотреть сообщение
и почему я не могу несколько dll таким образом прицепить?
нужно писать отдельные импорты из разных dll
1
Заблокирован
21.11.2019, 01:14  [ТС]
Цитата Сообщение от Diamante Посмотреть сообщение
это означает, что используется метод хранящийся в user32.dll
какой метод?
и где он используется?
вот пример кода
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//[DllImport("System.Windows.Forms.dll")]
        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Blue;
            
            while (true)
            {
                Thread.Sleep(50); // чем меньше , тем быстрее он получает данные с клавиатуры
                //GetAsyncKeyState - функция возвращает -3247чета там
                for (int i = 0; i < 500; i++) // цикл по кодам клавиш в ОС, можно увеличить до 500, полный список посмотреть.
                {
                    int state = GetAsyncKeyState(i);
                    
                    if (state != 0)
                    {
                        Console.Write(((ConsoleKey)i).ToString()+" ");
                        if (i == 13) Console.WriteLine("\\n");
                        //int a = 1;
вроде бы никакого метода именно из dll не производится, причем без дллимпорт не работает.

Добавлено через 1 минуту
впрс.
если у меня будет другая клавиатура - какая нитьтаккитайская или в фонетической раскладке,
будут ли конселекей и прочие аналоги норм работать?
ведь как я понял в них просто прописано
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//
    // Сводка:
    //     Задает стандартные клавиши консоли.
    public enum ConsoleKey
    {
        //
        // Сводка:
        //     Клавиша BACKSPACE.
        Backspace = 8,
        //
        // Сводка:
        //     Клавиша TAB.
        Tab = 9,
        //
        // Сводка:
        //     Клавиша CLEAR.
        Clear = 12,
        //
        // Сводка:
        //     Клавиша ВВОД.
        Enter = 13,
        //
        // Сводка:
        //     Клавиша PAUSE.
        Pause = 19,
        //
        // Сводка:
        //     Клавиша ESC (ESCAPE).
        Escape = 27,
        //
        // Сводка:
        //     Клавиша ПРОБЕЛ.
        Spacebar = 32,
        //
        // Сводка:
        //     Клавиша PAGE UP.
        PageUp = 33,
        //
        // Сводка:
        //     Клавиша PAGE DOWN.
        PageDown = 34,
Добавлено через 36 секунд
и как быть с клавишами Fn и её аналогами?

Добавлено через 2 минуты
к тому же этот консоле key очень неинформативный , нажимаю капс лок- полчаю 20
а некоторые симвлы норм прописаны.
т.е. под каждый тип клав свое перечисление?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
21.11.2019, 01:14
Цитата Сообщение от Gokusei Посмотреть сообщение
какой метод?
и где он используется?
вот пример кода
Цитата Сообщение от Gokusei Посмотреть сообщение
//[DllImport("System.Windows.Forms.dll")]
        [DllImport("user32.dll")]
        public static extern int GetAsyncKeyState(Int32 i);
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Blue;
while (true)
            {
                Thread.Sleep(50); // чем меньше , тем быстрее он получает данные с клавиатуры
                //GetAsyncKeyState - функция возвращает -3247чета там
                for (int i = 0; i < 500; i++) // цикл по кодам клавиш в ОС, можно увеличить до 500, полный список посмотреть.
                {
                    int state = GetAsyncKeyState(i);
if (state != 0)
                    {
                        Console.Write(((ConsoleKey)i).ToString() +" ");
                        if (i == 13) Console.WriteLine("\\n");
                        //int a = 1;
Цитата Сообщение от Gokusei Посмотреть сообщение
если у меня будет другая клавиатура - какая нитьтаккитайская или в фонетической раскладке,
будут ли конселекей и прочие аналоги норм работать?
должны
З.Ы. не проще ли попробовать?!
1
Заблокирован
21.11.2019, 01:38  [ТС]
пробую,не работает.
черти что выводит.

Добавлено через 1 минуту
мне этот key поможет также как иего отсутствие, так я вывожу код символа и 100 уверен внем, а так непойми что

капс лок = 20.

Добавлено через 3 минуты
сорян, про GetAsyncKeyState забыл.
подключил две длл ки
[DllImport("System.Windows.Forms.dll, user32.dll")]
и она теперь пишет не найдено простраство имен.
впрс
как указать и узнать из какой именно длл я вызываю метод или описательную часть?

Добавлено через 16 минут
ок.понятно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2019, 01:38
Помогаю со студенческими работами здесь

Property or indexer 'System.Windows.Forms.DataGridViewBand.Index' cannot be assigned to -- it is read only
Работаю с DataGridView, при попытке изменить Index у строки выдает ошибку: Property or indexer...

System.ArgumentException в System.Drawing.dll при работе с Gif
Необработанное исключение типа &quot;System.ArgumentException&quot; произошло в System.Drawing.dll using System; using...

Не видит dll файл при создании "Библиотека элементов управления Windows Forms"
Вообщем ошибка на скрине по сути практически пустая форма. есть picturebox и label. Если нужна дополнительная информация скажите я...

Графический редактор и ошибка "System.Windows.Forms.Cursor" является "тип", но используется как "переменная"
Всем привет.Пишу программу простейший графический редактор.Нужно,чтобы при рисовании линии на контроле panel1 запоминались начальные...

Необработанное исключение типа "System.UnauthorizedAccessException" в System.Speech.dll
Когда начал компилировать такая вот ошибка вышла : &quot;Необработанное исключение типа &quot;System.UnauthorizedAccessException&quot; в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru