Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 28.05.2021
Сообщений: 6

Каким образом перенести консольное приложение в Win Forms?

23.11.2021, 19:35. Показов 2254. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть такой код,что необходимо чтобы сделать для него интерфейс и он запускался бы просто по нажатию кнопки?
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <wingdi.h>
 
 
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    int color, a, b, c;
    cout << "Введи колличесво прокруток вниз "; cin >> a;
    const int wait = 50;
 
    cout << "Нажать f для начала" << endl;//0x46
 
    while (1)
    {
        if (GetAsyncKeyState(0x01))
        {
            cout << "Left click pressed" << endl;
        }
        else  if (GetAsyncKeyState(0x46))
        {
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < a; j++)
                {
                    ////////////////////////////////////////////////////////
                    HDC dng2 = GetDC(NULL);
 
                    COLORREF b = GetPixel(dng2, 1073, 707);
                    cout << (int)GetRValue(b) <<"R"<< endl;
                    cout << (int)GetGValue(b) << "G" << endl;
                    cout << (int)GetBValue(b) << "B" << endl;
                
                    if (b == RGB(11,1, 10))
                    {
                        Sleep(wait);
                        SetCursorPos(1094, 722);
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                        Sleep(wait);
 
                        
                    }
                    ReleaseDC(NULL, dng2);
 
                    HDC dng = GetDC(NULL);
 
                    COLORREF c = GetPixel(dng, 649,983);
                    if (c == RGB(255,255,255))
                    {
                        Sleep(wait);
                        SetCursorPos(648, 765);
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                        Sleep(wait);
 
 
                    }
 
                    ReleaseDC(NULL, dng);
                    
                 
                    SetCursorPos(491, 976);
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -150, 0);
                    Sleep(wait);
                    ////////////////////////////////////////////////////////
                    Sleep(wait);
                    SetCursorPos(561, 969);//установка координат курсора
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                    Sleep(wait);
 
                    ////////////////////////////////////////////////////////
 
                    SetCursorPos(722, 860);//установка координат курсора
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                    Sleep(wait);
 
                    if (GetAsyncKeyState(0x46))
                    {
                        system("pause");
                    }
                    ////////////////////////////////////////////////////////
                    
                }
                
                
 
                
            }
        }
 
    }
 
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2021, 19:35
Ответы с готовыми решениями:

Посоветуйте, пожалуйста, каким образом будет лучше реализовать мою задачу? (MFC, Win API, Windows Forms))
Предупрежу, что я профан во всём сразу - MFC, Win API, Windows Forms (я даже не уверена, что правильно их написала...), но задачу нужно...

Как перенести консольное приложение в Windows Forms?
При переносе вылазить под тысячу ошибок, в чем подвох? Консольное приложение вполне работает #include &lt;iostream&gt; #include...

Нужно перенести консольное приложение в Windows Forms
У меня есть код, реализующий алгоритм сжатия данных Шеннона-Фано. Помогите пожалуйста сделать визуализацию. #include &lt;iostream&gt;...

5
0 / 0 / 0
Регистрация: 04.11.2020
Сообщений: 20
27.11.2021, 17:45
Имеется в виду, как сделать приложение в стиле Windows с этим в кодом в качестве рабочего содержимого? То есть окно в стиле Windows, кнопки, меню итд итп?
0
0 / 0 / 0
Регистрация: 28.05.2021
Сообщений: 6
27.11.2021, 19:24  [ТС]
Да,именно так

Добавлено через 1 минуту
Проблема в заключается в том,что если даже я сделаю отдельный участок кода например "навести курсор",то он не работает по кнопке и не наводит
0
0 / 0 / 0
Регистрация: 04.11.2020
Сообщений: 20
28.11.2021, 05:40
Полноценное Windows-приложение, написанное на WinAPI требует некоей общей основы. Если вскользь, то это входная функция WinMain(), описание класса окна, создание окна, описание оконной процедуры итд всё прилагающееся. Еще в свойствах компоновщика необходимо указать подсистему. И там все манипуляции с мышью, с клавиатурой обрабатываются по своему.

Возможно опытные люди предложат более простой способ провернуть это всё.
0
1 / 1 / 0
Регистрация: 09.11.2021
Сообщений: 14
29.11.2021, 22:04
Попробуй


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include "windows.h"
 
HINSTANCE savehinst = NULL;
HWND hEdit = NULL;
HWND hEdit2 = NULL;
const int wait = 50;
#pragma warning(disable:4996)
void appendmessage(LPCTSTR newText, HWND hwnd)
{
    SendMessage(hwnd, EM_SETSEL, 0, -1);
    SendMessage(hwnd, EM_SETSEL, -1, -1);
    SendMessage(hwnd, EM_REPLACESEL, 0, (LPARAM)TEXT(newText));
 
}
void appendmessage(int newer, HWND hwnd)
{
    TCHAR swap[256] = "";
 
    itoa(newer, swap, 10);
 
    SendMessage(hwnd, EM_SETSEL, 0, -1);
    SendMessage(hwnd, EM_SETSEL, -1, -1);
    SendMessage(hwnd, EM_REPLACESEL, 0, (LPARAM)TEXT(swap));
 
}
 
 
 
void StartProgram(int a)
{
    while (1)
    {
        if (GetAsyncKeyState(0x01))
        {
            appendmessage("Left click pressed\n", hEdit2);
        }
        else  if (GetAsyncKeyState(0x46))
        {
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < a; j++)
                {
                    ////////////////////////////////////////////////////////
                    HDC dng2 = GetDC(NULL);
 
                    COLORREF b = GetPixel(dng2, 1073, 707);
                    appendmessage((int)GetRValue(b), hEdit2);
                    appendmessage("R\n", hEdit2);
 
                    appendmessage((int)GetGValue(b), hEdit2);
                    appendmessage("G\n", hEdit2);
 
                    appendmessage((int)GetBValue(b), hEdit2);
                    appendmessage("B\n", hEdit2);
 
                    if (b == RGB(11, 1, 10))
                    {
                        Sleep(wait);
                        SetCursorPos(1094, 722);
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                        Sleep(wait);
 
 
                    }
                    ReleaseDC(NULL, dng2);
 
                    HDC dng = GetDC(NULL);
 
                    COLORREF c = GetPixel(dng, 649, 983);
                    if (c == RGB(255, 255, 255))
                    {
                        Sleep(wait);
                        SetCursorPos(648, 765);
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                        Sleep(wait);
                        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                        Sleep(wait);
 
 
                    }
 
                    ReleaseDC(NULL, dng);
 
 
                    SetCursorPos(491, 976);
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -150, 0);
                    Sleep(wait);
                    ////////////////////////////////////////////////////////
                    Sleep(wait);
                    SetCursorPos(561, 969);//установка координат курсора
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                    Sleep(wait);
 
                    ////////////////////////////////////////////////////////
 
                    SetCursorPos(722, 860);//установка координат курсора
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//левый клик мыши
                    Sleep(wait);
                    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
                    Sleep(wait);
 
                    if (GetAsyncKeyState(0x46))
                    {
                        system("pause");
                    }
                    ////////////////////////////////////////////////////////
 
                }
 
 
 
 
            }
        }
    }
}
 
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_CREATE:
        {
            HWND hButton = CreateWindow("BUTTON", "EXAMPLE BUTTON",
                WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                0, 0, 200, 30, hwnd, (HMENU)1, savehinst, NULL);
 
            hEdit = CreateWindow("EDIT", "1",
                WS_CHILD | WS_VISIBLE | WS_BORDER,
                220, 0, 200, 30, hwnd, NULL, savehinst, NULL);
            LoadLibrary("Riched32.dll");
            hEdit2 = CreateWindow("RICHEDIT", " ",
                WS_CHILD | WS_VISIBLE | WS_BORDER |ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL|WS_HSCROLL|WS_VSCROLL,
                0, 100, 200, 200, hwnd, NULL, savehinst, NULL);
 
            
            break;
        }
        case WM_DESTROY:
        {
            PostQuitMessage(1);
            break;
        }
        case WM_COMMAND:
        {
            switch (wParam)
            {
                case 1:
                {
                    TCHAR take[256]="";
                    GetWindowText(hEdit, take, 10);
                    int a = atoi(take);
                    appendmessage("Нажать f для начала\n", hEdit2);
 
                    
                    CreateThread(NULL, NULL, LPTHREAD_START_ROUTINE(StartProgram), LPVOID(a), NULL, NULL);
                }
                break;
            }
            break;
        }
    }
 
 
 
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
 
 
 
 
 
 
 
 
int CALLBACK wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR szCmdLine, int nCmdShow)
{
    HWND hwnd;
    MSG msg;
    WNDCLASSEX wc = { sizeof(WNDCLASSEX) };
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.hbrBackground = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
    wc.lpszClassName = "EXAMPLE";
    RegisterClassEx(&wc);
 
    savehinst = hInstance;
 
    hwnd = CreateWindow(wc.lpszClassName, "EXAMPLE_FORM",
        WS_OVERLAPPEDWINDOW| WS_EX_ACCEPTFILES, 500, 500, 400, 400,
        NULL, NULL, wc.hInstance, NULL);
 
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
 
    
 
    SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes(hwnd, 0, (255 * 70) / 100, LWA_ALPHA);
 
    while (GetMessage(&msg, NULL, NULL, NULL))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
 
 
    return static_cast<int>(msg.wParam);
}
0
1 / 1 / 0
Регистрация: 09.11.2021
Сообщений: 14
29.11.2021, 22:12



Я Писал на WinApi, как вариант
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2021, 22:12
Помогаю со студенческими работами здесь

Переделать консольное приложение в приложение Windows Forms
Дорогие друзья пожалуйста помогите в консольным приложением. У меня есть код, но он под консольное приложение, а мне надо для Windows Form....

Не могу перенести консольное приложение C++ на приложение WindowsForm
Не могу разобраться, как перенести данное приложение из консоли на форму #include &lt;math.h&gt; #include &lt;conio.h&gt; #include...

Windows Forms + консольное приложение
Всем доброго времени суток. Имеется консольное приложение обрабатывающее пошаговые события из текстового файла. Как к этому консольному...

Консольное приложение в Windows Forms
Всем здравствуйте! Кто бы мог помочь с такой задачей, есть консольное приложение, осуществляющее алгоритм DSA, его нужно перенести на...

Перенести консольное приложение на форму
здаруствуйте нужна помощь вот консольная прога ее надо кинуть на форму using System; using System.Collections.Generic; using...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru