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

WinAPI в C#.NET

19.03.2007, 00:22. Показов 25364. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Дайте пожалуйста пример вызова WinAPI функции в C# Windows Application в VS 2005 .NET.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2007, 00:22
Ответы с готовыми решениями:

Аналоги функций WinAPI в NET
Доброго времени суток!!! Существуют ли аналоги WinAPI функций в .NET (например GetWindowText)?

Как установить .NET приложение, но без установки самого .NET Framework?
Мне нужно установить .NET приложение, но без установки самого .NET Framework. Возможно ли это? есть ли способ избежать установки на...

Как указать VS.NET какой из установленный .NET Framewrok SDK использовать
У меня есть дистрибутив VS.NET2002. При инсталляции он ставит .NET Framewrok SDK v1.0.3705 Я скачал .NET Framewrok SDK v1.1.4322....

14
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
19.03.2007, 16:02
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Например вот так:
Code
1
2
[DllImport("Kernel32.dll", EntryPoint = "GetDriveType")]
private static extern int GetDriveType(IntPtr lpRootPathName);
0
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 8
23.03.2007, 18:33
Только не забeдь подключить

using System.Runtime.InteropServices;
0
Гость
11.07.2007, 09:12
Цитата Сообщение от mik-a-el Посмотреть сообщение
Например вот так:
Code
1
2
[DllImport("Kernel32.dll", EntryPoint = "GetDriveType")]
private static extern int GetDriveType(IntPtr lpRootPathName);
Пытаюсь подключить функцию ShellExecute
Начинает ругаться на DllImport и вообще он эти две строчки непереносит(у меня стоит Visual Studio NET 2003)
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
11.07.2007, 10:18
Как ругается? Приведи текст.
0
Гость
11.07.2007, 10:21
Он говорит что не может определить таково(DllImport).
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
11.07.2007, 11:08
Цитата Сообщение от Гость
Он говорит что не может определить таково(DllImport).
Это делал?
Цитата Сообщение от dNW
Только не забeдь подключить
using System.Runtime.InteropServices;
0
Гость
11.07.2007, 12:07
ДА, но бестолку.
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
11.07.2007, 12:10
Приведи весь текст ошибки - здесь гадалок нет.
0
Гость
12.07.2007, 08:07
C DllImport я уже разобрался.
Но появился новый вопрос:
Пишу функцию HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation,LPCTSTR lpFile,
LPCTSTR lpParameters, LPCTSTR lpDirectory,int nShowCmd);
он начинает ругаться на типы Win32. На какие типы NET их можно заменить?
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
12.07.2007, 08:59
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

HINSTANCE, HWND - int
LPCTSTR - string
0
Гость
12.07.2007, 09:08
Thanks.
Гость
13.07.2007, 07:20
Всем большое спасибо, все получилось.
Psel_Ivan
11.01.2008, 15:10
Подскажите, плиз, а эти типы на какие можно заменить?

UINT
LPINPUT
DWORD
ULONG_PTR

Особенно важно, первые два. Нужно для SendInput() или mouse_event().
И вообще, как лучше имитировать действия мыши, и где можно найти теорию использования функций из dll.
зарание спасибо.
Администратор
 Аватар для mik-a-el
87800 / 53121 / 249
Регистрация: 10.04.2006
Сообщений: 13,760
11.01.2008, 15:55
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Цитата Сообщение от Psel_Ivan
UINT
uint
Цитата Сообщение от Psel_Ivan
LPINPUT
Это структура. Нужно создать аналогичную и использовать ее в прототипе. Пример:
Code
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
42
43
44
45
46
47
48
49
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        private struct STARTUPINFO
        {
            public uint cb;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string lpReserved;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string lpDesktop;
            [MarshalAs(UnmanagedType.LPWStr)]
            public string lpTitle;
            public uint dwX;
            public uint dwY;
            public uint dwXSize;
            public uint dwYSize;
            public uint dwXCountChars;
            public uint dwYCountChars;
            public uint dwFillAttribute;
            public uint dwFlags;
            public ushort wShowWindow;
            public ushort cbReserved2;
            public IntPtr lpReserved2;
            public IntPtr hStdInput;
            public IntPtr hStdOutput;
            public IntPtr hStdError;
        }
 
        [StructLayout(LayoutKind.Sequential)]
        private struct PROCESS_INFORMATION
        {
            public IntPtr hProcess;
            public IntPtr hThread;
            public uint dwProcessId;
            public uint dwThreadId;
        }
 
        private delegate int WndEnumProc(IntPtr hwnd, int lParam);
 
        [DllImport("kernel32.dll", EntryPoint = "CreateProcessW", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern int CreateProcess(
            string lpApplicationName,
            string lpCommandLine,
            IntPtr lpProcessAttributes,
            IntPtr lpThreadAttributes,
            int bInheritHandles,
            uint dwCreationFlags,
            IntPtr lpEnvironment,
            string lpCurrentDirectory,
            ref STARTUPINFO lpStartupInfo,
            out PROCESS_INFORMATION lpProcessInformation);
Цитата Сообщение от Psel_Ivan
DWORD
int
Цитата Сообщение от Psel_Ivan
ULONG_PTR
ulong

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

Как подключить к ConsoleApp(.Net Core) библиотеку (.Net Standart)
Привет товарищи!) Решил чутка по изучать нововведения(ну лично для меня ConsoleApp(.Net Core) и Library (.Net Standart)). Написал...

Какие возможны неприятные повороты при переходе с .NET 3.5 на .NET 4.5.1 |
"неприятные повороты" - слово "проблемы" не пропускает валидация Пришлось перевести очень много библиотек и несколько проектов. За...

Использование Sphinx4 jar в .NET через ikvm.net или веб сервисы?
Здравствуйте, Пытвюсь заставить распознаватель речи Sphinx 4 работать в .NET. Пробовал IKVM.NET и веб сервисы. Не одно решение...

Что лучше выбрать VB.NET или C.NET (C#)?
Я программирую на VB. Но так как сейчас появилась .NET платформа решил перейти на неё. Подскажите что лучше выбрать VB.NET или C.NET...

Переписать метод с 4 .net в 3.5 .net или ниже
и так ребят мне нужно этот код переписать чтоб он работал в .net 3.5 как макс желательно 2.0 private Stream _stream = null; ...


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

Или воспользуйтесь поиском по форуму:
15
Закрытая тема Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru