С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/54: Рейтинг темы: голосов - 54, средняя оценка - 4.61
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818

Нужен пример использования PostMessage

22.09.2014, 21:29. Показов 10599. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал на С++ прогу что бы слала нажатия клавиш методом PostMessage)) все прекрасно работает.
Захотел перенести на C# думал обойдусь лишь подключением какого то "using". Но не так все бывало, что-то и примеров мало с использованием етого метода да и тд.
Просветите меня может я плохо знаю C#, но всё же. Зачем вот в етом примере делается импорт библиотеки откуда то- ее что в стандартных нету?, и зачем переобявлять методы, и импортировать не 1 раз ее с каждым переобявлением метода. можно Рабочий пример с использованием PostMessage, а еще был бы очень рад если бы он был с каким то поиском окна по айди процесса или типа того, ибо окон с одинаковым title будет 2-3. И как реализовать типа взятие HWND окна, типа допустим кляцнул пользователь на кнопку "выбрать окно" появился курсор, польхователь нажал им на то окно которое надо. И взялось HWND того окна. По сути 2 последних вопроса были одного и того же смысла.
Вот пример который нашел(не рабочий, или у мну просто дилки ненаходит)
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
42
43
44
45
46
47
48
49
50
    public partial class Form1 : Form
    {
         
        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string className, string windowName);
 
        [DllImport("User32.dll", CharSet = CharSet.Auto)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        [DllImport("User32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
 
        [DllImport("User32.dll")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
 
        [DllImport("User32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
 
        const int WM_LBUTTONDOWN = 0x0201;
        const int WM_LBUTTONUP = 0x0202;
 
        const string CLASS_NAME = "secret";
        const string WINDOW_NAME = "secret";
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            IntPtr progr = FindWindow(CLASS_NAME, WINDOW_NAME);
            if (progr.ToInt32() > 0)
            {
                IntPtr button = FindWindowEx(progr, IntPtr.Zero, "secret", "secret");
                if (button.ToInt32() > 0)
                {
                    SetForegroundWindow(progr);
                    PostMessage(button, WM_LBUTTONDOWN, (IntPtr)1, IntPtr.Zero);
                    PostMessage(button, WM_LBUTTONUP, (IntPtr)1, IntPtr.Zero);
 
                    MessageBox.Show(Marshal.GetLastWin32Error().ToString());
                }
                else
                    MessageBox.Show("Кнопка не найдена", "Not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
                MessageBox.Show("Процесс не найден.", "Not found", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
Добавлено через 4 минуты
важно именно PostMessage(); проверял через Spy++ шлет едентичные запросы что и обычное нажатие клавиши той же. Так как я делаю нубобота для L2 это важно, так как тот сервер например на котором я тренируюсь палит uopilot и тдп именно тогда когда он начинает симулировать нажатие клавиатуры. Значит защита не нуб.

Добавлено через 3 часа 17 минут
Вопрос по нахождению HWND по курсору отпадает.
C++
1
2
POINT pt;
HWND result = (GetCursorPos(&pt) ? WindowFromPoint(pt) : 0);
вот на С++ думаю и на шарпе тоже найду.
Остался лишь 1вый вопрос

Добавлено через 23 часа 23 минуты
что на С++ только он нормально работает что все молчат?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2014, 21:29
Ответы с готовыми решениями:

Импорт dll, нужен пример использования
Есть некая dll. Не могу найти информацию о том, как использовать вшитые там функции. А дальше? В примерах приписывается...

Сортировка вставками: нужен пример использования
Добрый день. Помогите пожалуйста кодом для сортировки вставками=) Заранее благодарю =)

Нужен пример использования интерфейсов и делегатов в одной программе
Нужно найти пример использования интерфейсов и делегатов в одно программе, так, чтобы это имело смысл. Желательно не сложно.

2
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
23.09.2014, 12:01
Lynatik001, да, с# немного коряво работает с dll на с. выхода тут два: или поискать готовые обертки над винАпи(возможно еще более корявые) или самому их аккуратно написать и не мучатся каждый раз с загрузкой функций.
0
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
23.09.2014, 14:10  [ТС]
все, все ответы уже нашел, тему можно закрывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2014, 14:10
Помогаю со студенческими работами здесь

Нужен пример использования вместо значений словаря — свои собственные классы
Только начал изучать класс словарей Dictionary, и не могу нигде найти примеров использования вместо значений словаря - свои собственные...

Нужен пример использования WhatsAppApi
подскажите как работать с данной библиотекой Добавлено через 16 часов 35 минут что некто не сталкивался ?

Нужен пример использования API в Вконтакте
Всем привет, очень нужен пример использования API в вк. Хотя бы добавление записи на стену и если можно, написать комментарии к кодам

Пример использования ObservableCollection?
Прошу помочь разобраться с ObservableCollection. ObservableCollection предоставляет CollectionChanged ивент, передавая объект класса...

Пример использования MSChart
У кого-нибудь есть пример работы с MSChart? Нужно круговую диаграмму нарисовать. и желательно в объеме


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru