Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/37: Рейтинг темы: голосов - 37, средняя оценка - 4.54
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878

Как изменить параметры окна, которые указываются в CreateWindow?

08.10.2014, 22:24. Показов 7615. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как изменить параметры окна которые указываются в CreateWindow? я так понимаю нужно юзать sendmesage но безпонятя где почитать о том что там прописывать

и еще вопрос, а как например можно изменить цвет окна, рамки, фона, шрифта и тп, это как вообще делается?

Добавлено через 2 часа 50 минут
есть кто живой?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.10.2014, 22:24
Ответы с готовыми решениями:

Как изменить параметры окна сохранения документа в Word 2003?
В окне "Сохранение документа" есть область "Папка", в которой стандартно присутствуют 5 мест для сохранения документа: Мои последние...

Изменить параметры окна стороннего приложения имея его хэндл
Доброго времени! Вопрос идиотский, но я третий раз к нему похожу - и не могу найти ответа. Видимо, что-то не так спрашиваю у гугла. ...

CreateWindow проблема с созданием окна
Здравствуйте, есть у меня две програмки. Такая #include <Windows.h> const wchar_t * ClassName = L"Window1"; const wchar_t...

20
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.10.2014, 23:16
SetClassLongPtr/SetWindowLongPtr - этими функциями можно
много чего "натворить".
0
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
08.10.2014, 23:26
Цитата Сообщение от mh-coder Посмотреть сообщение
как изменить параметры окна
Нужно предполагать, быть дизайнером своего проекта, чтобы всё было красиво.
Использовать "win32" : рисовать "рамки" и т.п. ни очень удобно и придётся вручную.
Хотя - это относительно.
Я прокомментировал, некоторые моменты, что-то ни очень...
WinMain.cpp

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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
// WinMain.cpp
 
#include <windows.h>
#include "WinMain.h"
 
HWND GWnd;
HINSTANCE GInstance;
TCHAR szAppname[MAX_LOADSTRING];
TCHAR szWndname[MAX_LOADSTRING];
 
UINT_PTR uTimerStart;
 
MSG GMsg;
HACCEL GAccel;
int GCmdShow;
 
HICON GIcon;
HBRUSH GBrush;
HCURSOR GCursor;
 
void OnPaint(HWND hWnd);
 
//
// Главный цикл обработки сообщений.
//
int AppRun(void)
{
    GAccel=LoadAccelerators(GInstance,MAKEINTRESOURCE(IDC_ACCELERATOR));
    int Result;
    do {
        Result=GetMessage(&GMsg,NULL,0,0);
        if (Result==0) return Result;
        if (Result==0x0FFFFFFFF) return Result;
        if (!TranslateAccelerator(GMsg.hwnd,GAccel,&GMsg)) {
            TranslateMessage(&GMsg);
            DispatchMessage(&GMsg);
        }
    } while(TRUE);
    return (int) GMsg.wParam;
}
 
//
// Регистрирует, создает окно.
//
void AppInit(void)
{
    DWORD dwStyle = CS_HREDRAW | CS_VREDRAW;
    WNDCLASSEX wndclassex;
    memset(&wndclassex,0,sizeof(wndclassex));
    wndclassex.cbSize           = sizeof(WNDCLASSEX);
    wndclassex.style            = dwStyle;
    wndclassex.lpfnWndProc      = (WNDPROC)WndProc;
    wndclassex.cbClsExtra       = 0;
    wndclassex.cbWndExtra       = 0;
    wndclassex.hInstance        = GInstance;
    wndclassex.hIcon            = GIcon;
    wndclassex.hCursor          = GCursor;
    wndclassex.hbrBackground    = GBrush;
    wndclassex.lpszMenuName     = MAKEINTRESOURCE(IDR_MENU1);
    wndclassex.lpszClassName    = szWndname;
    if ( !RegisterClassEx(&wndclassex) ) {
        if ( !RegisterClass((LPWNDCLASS)&wndclassex.style) ) {
            MessageBox(NULL,TEXT("-->FAILED: RegisterClass"),szAppname,MB_OK|MB_ICONSTOP|MB_SETFOREGROUND|MB_TOPMOST);
            ExitProcess(0);
        }
    }
 
    // Стиль окна:
    dwStyle=WS_OVERLAPPEDWINDOW|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;
 
    // Создать окно:
    GWnd=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,szWndname,szAppname,dwStyle,0,0,0,0,NULL,NULL,(HINSTANCE)GInstance,(LPVOID)NULL);
    if ( !GWnd ) {
        GWnd=CreateWindow(szWndname,szAppname,dwStyle,0,0,0,0,NULL,NULL,(HINSTANCE)GInstance,(LPVOID)NULL);
        if ( !GWnd ) {// Ошибка: Окно не создано.
            MessageBox(NULL,TEXT("-->FAILED: AppInit"),szAppname,MB_OK|MB_ICONSTOP|MB_SETFOREGROUND|MB_TOPMOST);
            ExitProcess(0);
        }
    }
}
 
// ---------------------------------------------------------
// WinMain.
// ---------------------------------------------------------
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    //GCmdShow=SW_MAXIMIZE;
    GCmdShow=SW_NORMAL;
    GInstance=hInstance;
 
    // Далее, идут процедуры, которым можно передать
    // аргументы по-умолчанию, т.к. это на скорость ни влияет,
    // относительно - демо проектов, я вынес их за пределы локальных
    // функций.
 
    // Загрузка иконки:
    GIcon=LoadIcon(GInstance,MAKEINTRESOURCE(IDI_ICON1));
    if (GIcon==NULL)
        GIcon=LoadIcon(NULL,IDI_APPLICATION);
 
    // Загрузка курсора:
    GCursor=LoadCursor(NULL,IDC_ARROW);
 
    LOGBRUSH brushinfo;
    brushinfo.lbStyle=BS_SOLID;
    //brushinfo.lbColor=RGB(0,0,0);         // Цвет фона "Black"
    brushinfo.lbColor=RGB(128,0,0);         // Цвет фона "Maroon"
    brushinfo.lbHatch=HS_BDIAGONAL;
    GBrush=CreateBrushIndirect(&brushinfo);
    //GBrush=(HBRUSH)(COLOR_WINDOW+1);      // Стандарт цвет.
 
    // Инициализировать глобальные строки:
    LoadString(GInstance, IDS_APP_NAME, szAppname, MAX_LOADSTRING);
    LoadString(GInstance, IDS_WND_NAME, szWndname, MAX_LOADSTRING);
 
    // Инициализации приложения:
    AppInit();
 
    return AppRun();
}
 
// ---------------------------------------------------------
// WndProc
// 
// Важная функция, отвечает за интерактивность пользователя
// в связи его управлением программы.
// Иногда, эту функцию можно не заканчивать, конечно, если
// под руководством ЕЁ ничего не работает.
// ---------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    LRESULT retval=0;
 
    switch (uMsg)
    {
    case WM_CREATE:
        // Поставим таймер...
        // Немного, десятые секунд, чтобы отобразить окно программы по-нашему усмотрению.
        uTimerStart=SetTimer(hWnd,TIMER_START,TIMER_START_DELAY,NULL);
        if ( !uTimerStart ) {// Если таймер не установится, сообщение и выход из программы.
            MessageBox(hWnd,TEXT("-->FAILED: SetTimer"),TEXT("Fatal Error"),MB_OK|MB_ICONSTOP|MB_SETFOREGROUND|MB_TOPMOST);
            SendMessage(hWnd,WM_DESTROY,(WPARAM)0,(LPARAM)0);
        }
        break;
 
    case WM_TIMER:
        if (wParam==TIMER_START) {
            
            // Мы поставили таймер - совсем на "чуть-чуть", но
            // это ни мешает, чтобы и ВЫ - ЗАПОМНИТЕ,
            // Безупречность заключается в наблюдении за объектом...
            // -- Убиваем таймер. 
            KillTimer(hWnd,uTimerStart);
            uTimerStart=FALSE;// Установим датчик в нуль.
            
            // Устанавливаем, внешний вид главного окна.
            SetWindowPos(hWnd,NULL,NULL,NULL,400,400,SWP_NOZORDER|SWP_NOMOVE);
            InvalidateRect(hWnd,NULL,TRUE);// Перерисуем, чтобы выглядело симпатично.
            
            // Установим в центре рабочегно стола.
            CenterWindow(hWnd,GetDesktopWindow());
            
            // Дополнительное обновление и лоск окна.
            ShowWindow(hWnd,GCmdShow);
            UpdateWindow(hWnd);
        }
        break;
 
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
 
        // Разбор меню:
        switch (wmId)
        {
        case IDM_ABOUT:
            DialogBox(GInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
 
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        }
        break;
 
    case WM_PAINT:
        OnPaint(hWnd);
        break;
 
    case WM_DESTROY:
        if (uTimerStart)
            KillTimer(hWnd,uTimerStart);
        PostQuitMessage(0);
        break;
 
    default:
        retval=DefWindowProc(hWnd, uMsg, wParam, lParam);
        break;
    }
    return retval;
}
 
// Обработчик сообщений окна "О программе"
//
INT_PTR CALLBACK About(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (uMsg)
    {
    case WM_INITDIALOG:
        CenterWindow(hDlg,GWnd);
        return (INT_PTR)TRUE;
 
    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}
 
//
// Утилита. Устанавливает диалоговое окно в центре.
//
BOOL CenterWindow(HWND hWnd, HWND hParent)
{
    HDC hdc;
    RECT rcChild,rcParent;
    int cxScreen,cyScreen,xNew,yNew;
    int cxChild,cyChild,cxParent,cyParent;
    GetWindowRect(hWnd,&rcChild);
    cxChild=rcChild.right-rcChild.left;
    cyChild=rcChild.bottom-rcChild.top;
    GetWindowRect(hParent,&rcParent);
    cxParent=rcParent.right-rcParent.left;
    cyParent=rcParent.bottom-rcParent.top;
    hdc=GetDC(hWnd);
    cxScreen=GetDeviceCaps(hdc,HORZRES);
    cyScreen=GetDeviceCaps(hdc,VERTRES);
    ReleaseDC(hWnd,hdc);
    xNew=rcParent.left+((cxParent-cxChild)/2);
    if (xNew<0){xNew=0;}
    else if ((xNew+cxChild)>cxScreen)
    {xNew=cxScreen-cxChild;}
    yNew=rcParent.top+((cyParent-cyChild)/2);
    if (yNew<0){yNew=0;}
    else if ((yNew+cyChild)>cyScreen)
    {yNew=cyScreen-cyChild;}
    return SetWindowPos(hWnd,NULL,xNew,yNew,0,0,SWP_NOSIZE|SWP_NOZORDER);
}
 
//
// Рисуем. Текст. Шрифт. Цвет.
//
 
void OnPaint(HWND hWnd)
{
    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hWnd,&ps);
    RECT rect;
    GetClientRect(hWnd,&rect);
 
    LOGFONT lFont;
    memset(&lFont, 0, sizeof(lFont));
    lFont.lfHeight = 28;
    lFont.lfWeight = FW_BOLD;
    lstrcpy(lFont.lfFaceName,TEXT("Broadway BT") );
 
    HFONT hFont = CreateFontIndirect(&lFont);
    HFONT oFont = (HFONT)SelectObject(hdc, hFont);
 
    COLORREF crColor = RGB( 0xFF, 0xFF, 0x00 );
    SetTextColor(hdc,crColor);
 
    SetTextAlign(hdc,TA_BASELINE | TA_CENTER);
    SetBkMode(hdc,TRANSPARENT);
    
    const TCHAR* MyText;
    MyText = TEXT("WELCOME TO MY HELL!");
 
    TextOut( hdc, (rect.right / 2), (rect.bottom / 2), MyText, lstrlen(MyText) );
 
    EndPaint(hWnd,&ps);
}
 
//
//<<eof>> WinMain.cpp
//


OxyDemo_vc80_Win32.rar
1
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
12.10.2014, 21:54  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
SetClassLongPtr/SetWindowLongPtr - этими функциями можно
много чего "натворить".
ну а как например изменить этими функцими ширину окна? я про нирх прочитал, вообе непонятно как с ними работать

Добавлено через 22 минуты
oxyfat, спасибо за код, а как напримнр изменить шрифт и цвеет текска в кнопке или а поле edit ?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.10.2014, 22:44
Цитата Сообщение от mh-coder Посмотреть сообщение
ну а как например изменить этими функцими ширину окна?
Для изменения размеров окна лучше SetWindowPos ничего не придумано.
1
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
12.10.2014, 23:39  [ТС]
как например изменить шрифт и цвет текста в кнопке или а поле edit ?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.10.2014, 23:47
Шрифт - WM_SETFONT.
Цвет текста - через обработку сообщения WM_CTLCOLORXXX.
Либо через сабклассинг кнопки и отрисовку вручную (сложно, но можно).
Либо сделать ownerdraw button.

Добавлено через 2 минуты
А вообще, GUI на WinAPI лучше уметь, но не писать.
Потому что очень затратно по времени и стоимости поддержки.
В любых UI-фреймворках изменение "стиля" или "поведения"
кнопки делается двумя-тремя строчками, а то и вообще сменой
какого-нибудь атрибута. В WinAPI для этого потребуется простыня.

Надо богатый, сложный UI - берем Qt.
Надо HTML - берем HTMLayout.
Надо графики всякие - берем Ultimate++.
Надо документы, SDI/MDI с поддержкой ActiveX - берем MFC.
И так далее.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
13.10.2014, 20:34  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
Цвет текста - через обработку сообщения WM_CTLCOLORXXX.
а что передавать в третем параметре?
например для шрифта использую структуру LOGFONT, а для цвета что?

Добавлено через 4 часа 25 минут
.....
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.10.2014, 22:03
В третьем параметре чего ?
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
13.10.2014, 22:25  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
В третьем параметре чего ?
SendMessage
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.10.2014, 22:43
WM_SETFONT message
http://msdn.microsoft.com/en-u... 85%29.aspx
Parameters

wParam

A handle to the font (HFONT). If this parameter is NULL, the control uses the default
system font to draw text.

lParam

The low-order word of lParam specifies whether the control should be redrawn
immediately upon setting the font. If this parameter is TRUE, the control redraws itself.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
13.10.2014, 22:47  [ТС]
не, с шрифтом проблем нет, я незнаю что передавать третим параметром при WM_CTLCOLORXXX
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.10.2014, 22:50
Ничего не надо передавать. Потому что это сообщение генерируется системой,
от программы лишь требуется обработать его.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
13.10.2014, 23:04  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
Ничего не надо передавать. Потому что это сообщение генерируется системой,
от программы лишь требуется обработать его.
как ничего? а как я при помощи него изменю цвет текста кнопки ? я же должен где-то указать на какой цвет хочу заменить
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.10.2014, 23:09
Цитата Сообщение от mh-coder Посмотреть сообщение
а как я при помощи него изменю цвет текста кнопки ?
А MSDN для чего существует ?
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
14.10.2014, 09:56  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
А MSDN для чего существует ?
если бы я мог найти ответ на свой вопрос на мсдн то тут наверно бы не спрашивал
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
14.10.2014, 14:54
Дык в MSDN описано данное сообщение и подробно разобраны
все аргументы. Какой смысл копи-пастить это сюда ?
0
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
14.10.2014, 17:43
Нет проблем сделать заготовку, нарисуйте картинку - КонтроЛов.
- как Вы - ВИДИТЕ СЦЕНУ...

Добавлено через 8 минут
Цитата Сообщение от mh-coder Посмотреть сообщение
а как напримнр изменить шрифт и цвеет текска в кнопке или а поле edit ?
См.Выше.
0
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
14.10.2014, 17:50
Пример шаблона:

( это пример, вам нужно выполнить - аккуратнее, чтобы было ясно )
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
15.10.2014, 17:39  [ТС]
такой вопрос, отправляю сообщение
C++
1
SendMessage(this->secondHWnd, WM_CTLCOLOREDIT, (WPARAM)0, (LPARAM)0);
принимаю
C++
1
2
3
4
5
6
7
if( msg == WM_CTLCOLOREDIT  ){
 
        SetTextColor( (HDC)wParam, RGB( 0, 191, 255 ) );
        SetBkColor( (HDC)wParam, RGB( 0, 100, 0 ) );
        SetDCPenColor( (HDC)wParam, RGB( 0, 100, 0 ) );
        return (LRESULT)GetStockObject( DC_PEN );
    }
цвета меняются во всех полях едит, а как сделать замену в одном определённом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2014, 17:39
Помогаю со студенческими работами здесь

Ошибка при создании окна в ф-ции CreateWindow
Почему-то не хочет создавать окно. Подскажите,где ошибка #include&lt;Windows.h&gt; #include&lt;gl\glut.h&gt; using namespace std; static...

Рисование на экране прямых линий, оканчивающиеся в позициях, которые указываются мышью
Программа должна рисовать на экране прямые линии, оканчивающиеся в позициях, которые указываются мышью. Набрал текст из учебника: Зубков -...

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

Как задать параметры нового окна?
Помоготе плиииз! ..новичку *8) А как-нибудь можно на php сделать аналогичное вот этому function openWin() { ...

Как изменить параметры по умолчанию?
Вопрос вот в чем, чтобы изменить значение параметра приложения, мы пишем что-то типа Properties.Settings.Default.Value =...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
моя боль
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