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

GetMessage - не выводится сообщение при срабатывании условия

02.05.2011, 16:17. Показов 5106. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Господа, помогите разобраться... Вроде бы всё прозрачно, но где-то я не допонимаю...

Задача - необходимо перехватывать определённые сообщения, и после обработки параметров из этого сообщения, записывать их в файл.

Код взят из одной статьи:

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
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
 int APIENTRY WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLine,
 int nCmdShow)
 {
 
 ...
 
 //Обработка сообщений Windows
 
 //цикл сообщений приложения
 MSG msg = {0}; //структура сообщения
 int iGetOk = 0; //переменная состояния
 while ((iGetOk = GetMessage(&msg, NULL, 0, 0 )) != 0) //цикл сообщений
 {
 //если GetMessage вернул ошибку - выход
 if (iGetOk == -1) return 3;
 TranslateMessage(&msg); 
 DispatchMessage(&msg);
 }
 
 ....
 
 }
 
 
 ///////////////////////////////////////////////////
 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, 
 WPARAM wParam, LPARAM lParam)
 {
 // выборка и обработка сообщений
 switch (message)
 {
 case WM_LBUTTONDOWN:
 //реакция на сообщение
 MessageBox(hWnd, TEXT("Вы кликнули!"), TEXT("событие"), 0);
 printf ("MSG");
 break;
 case WM_DESTROY:
 //реакция на сообщение
 PostQuitMessage(0);
 break;
 //все необработанные сообщения обработает сама Windows
 default:
 return DefWindowProc(hWnd, message, wParam, lParam);
 // switch (message)
 }
 return 0;
 } // конец функции обработчика сообщений

Компилируется без проблем, но - при нажатии левой кнопки - ни сообщение в консоль не пишется, ни сообщение не высвечивается.. почему так происходит? это нормальное поведение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2011, 16:17
Ответы с готовыми решениями:

Как правильно вывести пользователю сообщение об ошибке при срабатывании исключения в БД
Имеется БД в SQL Server 2008 R2 и клиентское приложение на WPF, которое работает с этой БД при помощи Entity Framework. К примеру в БД...

Не выводится правильный ответ при выполнении условия
Привет. Пользуюсь Visual C++ 6.0 В задачке необходимо в случае не выполнения условия вывести соответсвующее сообщение, а оно выводиться...

Сообщение выводится при перезагрузке страницы
Здравствуйте почему "Какой то текст" выводится при перезагрузки страницы как сделать что бы выводился по нажатию на кнопку ...

10
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
02.05.2011, 21:57
Если тебе надо отлавливать сообщения в своём приложении, тогда:

http://www.cyberguru.ru/cbuild... ndler.html

Если в чужом приложении, тогда:

http://www.cyberguru.ru/progra... hooks.html
1
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 20
09.05.2011, 20:28  [ТС]
спасибо за ссылки...

начал разбираться и возникли проблемы при написании dll с перехватчиком.

Код:
#include <iostream>
#include "stdafx.h"
#include <windows.h>
#include <Winuser.h>
#pragma comment(lib, "user32.lib")
using namespace std;

extern "C" __declspec(dllexport) int MouseHookFunction();

LRESULT CALLBACK WH_HookMouse(int code, WPARAM wParam, LPARAM lParam);
//======================================== ======================================

int MouseHookFunction()
{

HHOOK HookHandle = SetWindowsHookEx(WH_MOUSE,WH_HookMouse, 0, 0);
//HookHandle = SetWindowsHookEx(WH_MOUSE, WH_HookMouse, 0, 0);
ште i=5;
printf ("GOOD LOAD FUNCTION \n");
return i;
};

Ошибки:

1>------ Build started: Project: dll-mouse-2, Configuration: Debug Win32 ------
1>Compiling...
1>dll-mouse-2.cpp
1>c:\users\volon\documents\visual studio 2008\projects\dll-mouse-2\dll-mouse-2\dll-mouse-2.h(53) : warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
1>Linking...
1> Creating library C:\Users\volon\Documents\Visual Studio 2008\Projects\dll-mouse-2\Debug\dll-mouse-2.lib and object C:\Users\volon\Documents\Visual Studio 2008\Projects\dll-mouse-2\Debug\dll-mouse-2.exp
1>dll-mouse-2.obj : error LNK2001: unresolved external symbol _WH_HookMouse@12
1>C:\Users\volon\Documents\Visual Studio 2008\Projects\dll-mouse-2\Debug\dll-mouse-2.dll : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Users\volon\Documents\Visual Studio 2008\Projects\dll-mouse-2\dll-mouse-2\Debug\BuildLog.htm"
1>dll-mouse-2 - 2 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


В чём проблема?
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
10.05.2011, 00:36
Проблема в том, что ты объявил эту функцию
C++
1
LRESULT CALLBACK WH_HookMouse(int code, WPARAM wParam, LPARAM lParam);
Но нет тела функции.

Добавлено через 7 минут
Это как пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// объявление
extern "C" __declspec(dllexport) LRESULT CALLBACK MouseHook(int,WPARAM,LPARAM);
// реализация
LRESULT CALLBACK MouseHook(int nCode,WPARAM wParam,LPARAM lParam)
{       // Ловушка мыши - включает хранитель когда в углу
if(wParam==WM_MOUSEMOVE || wParam==WM_NCMOUSEMOVE)
{
 psMouseHook=(MOUSEHOOKSTRUCT*)(lParam);
if(psMouseHook->pt.x==0 && psMouseHook->pt.y==0)
if(bSCRSAVEACTIVE)
PostMessage(psMouseHook->hwnd,WM_SYSCOMMAND,
            SC_SCREENSAVE,0);
}
return 0;
}
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 20
10.05.2011, 02:32  [ТС]
спасибо, помогло)))))

и уж можно совсем обнаглеть.... есть ещё несколько вопросов....

Есть основная программа, в которой подгружается ddl, в ddl установлен хук (будет установлен))) на мышь, хук в свою очередь вызывает функцию LRESULT CALLBACK. Основная задача программы - это запись координат мыши, время события и на что именно сработала (двойной щелчек, перетаскивание элемента и т.п.).

Вопросы - где лучше реализовать запись в файл? На данный я момент я реализую так: в основной программе создал double массив, передал указатель на это маасив в dll, и дальше, как я думаю, нужно в функции dll записывать в файл значения. но тут у меня назрел вопрос - а как я из LRESULT CALLBACK буду получать все параметры (так как только там могу их узнать)... на правильном ли я пути, или нужно поменять дорого?

З.Ы. извините, если не корректно написал сообщение, ночь всё-таки))))
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
10.05.2011, 11:13
Я тебе скину один свой старый код, я там отлавливаю ряд сообщений у чужого приложения,
по такому же принципу ты можешь отлавливать любые сообщения.
Помни только, что хук подгружает систему,
поэтому действия по анализу данных в хуке надо делать очень быстро,
нельзя вставлять никакие длительные процессы.

При записи данных в файл лучше сделать так: писать в свой буфер внутри программы,
а по таймеру сбрасывать порцию данных.

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
// ---------------------------------------------------------------------------
 
#include <vcl.h>
#include <windows.h>
#include "IdBaseComponent.hpp"
#include "IdSysLogMessage.hpp"
#pragma hdrstop
// ---------------------------------------------------------------------------
#pragma argsused
// экспортируемые функции
extern "C" __declspec(dllexport)bool InstallMouseHook();
extern "C" __declspec(dllexport)bool RemoveMouseHook();
 
#define UM_MOUSE        WM_USER+15
// ---------------------------
#define MSG_MOUSE_L_DOWN    0
#define MSG_MOUSE_L_UP      1
#define MSG_MOUSE_R_DOWN    2
#define MSG_MOUSE_R_UP      3
#define MSG_MOUSE_M_DOWN    4
#define MSG_MOUSE_M_UP      5
// ---------------------------
#define MSG_MOUSE_MOVE      6
#define MSG_MOUSE_WHEEL     7
// ---------------------------
#define MSG_KEY_DOWN        8
#define MSG_KEY_UP          9
// ---------------------------
// объявление функции обратного вызова
LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam);
// глобальные переменные
HHOOK HookHandle;
HINSTANCE DllInstance;
// Для анализа сообшений от окна
MSG *mess;
 
HWND hWndPlanshet;
TIdSysLogMessage *SLMessage = NULL;
 
// ------ основной вход в процедуру ДЛЛ
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) {
    DllInstance = hinst;
    return 1;
}
 
// ---------------------------------------------------------------------------
 
bool InstallMouseHook() {
    SLMessage = new TIdSysLogMessage(Application);
    SLMessage->Msg->Process = LoadStr(500);
    HWND hWnd3Dview = FindWindowA(NULL, LoadStr(501).Ansi().c_str());
    if (hWnd3Dview) {
        ULONG pid = 0;
        ULONG tid = GetWindowThreadProcessId(hWnd3Dview, &pid);
        if (tid) {
            HookHandle = SetWindowsHookEx(WH_GETMESSAGE,
                reinterpret_cast<HOOKPROC>(GetMsgProc), DllInstance, tid);
            if (HookHandle) {
                SLMessage->SendMsgToSysLog(LoadStr(503), slInformational, LoadStr(100));
                return true;
            }
            else {
                SLMessage->SendMsgToSysLog(LoadStr(502), slError, LoadStr(100));
            }
        }
        else {
            SLMessage->SendMsgToSysLog(LoadStr(504), slError, LoadStr(100));
        }
    }
    else {
        SLMessage->SendMsgToSysLog(LoadStr(505), slError, LoadStr(100));
    }
    return false;
}
 
// ----------------------------------------------------------------------
bool RemoveMouseHook() {
    if (SLMessage) {
        delete SLMessage;
    }
    if (UnhookWindowsHookEx(HookHandle) == 0) {
        return false;
    }
    else {
        return true;
    }
}
 
// ----------------------------------------------------------------------
LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam) {
    if (code < 0)
        return CallNextHookEx(HookHandle, code, wParam, lParam);
 
    mess = (MSG*)lParam;
    switch(mess->message) {
    case WM_MOUSEWHEEL: {
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, mess->wParam, (LPARAM)MSG_MOUSE_WHEEL);
        };
        break;
    case WM_MOUSEMOVE: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_MOVE);
        }break;
    case WM_LBUTTONDOWN: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_L_DOWN);
        }break;
    case WM_LBUTTONUP: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_L_UP);
        }break;
    case WM_MBUTTONDOWN: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_M_DOWN);
        }break;
    case WM_MBUTTONUP: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_M_UP);
        }break;
    case WM_RBUTTONDOWN: {
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_R_DOWN);
        }break;
    case WM_RBUTTONUP: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, MAKEWPARAM(mess->pt.x, mess->pt.y),
                (LPARAM)MSG_MOUSE_R_UP);
        }break;
    case WM_KEYDOWN: {
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, mess->wParam, (LPARAM)MSG_KEY_DOWN);
        }break;
    case WM_KEYUP: {
            // ---подвязка к планшету
            hWndPlanshet = FindWindowA(LoadStr(506).Ansi().c_str(), NULL);
            PostMessageA(hWndPlanshet, UM_MOUSE, mess->wParam, (LPARAM)MSG_KEY_UP);
        }break;
    }
 
    // вызываем следующий хук в цепи
    return CallNextHookEx(HookHandle, code, wParam, lParam);
}
Добавлено через 4 минуты
Разбор в главном приложении

C++
1
2
3
BEGIN_MESSAGE_MAP
        VCL_MESSAGE_HANDLER(UM_MOUSE, TMessage, OnMyMouse)
END_MESSAGE_MAP(TForm)
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
// ---------------------------------------------------------------------------
void __fastcall TFormJoystick::OnMyMouse(TMessage &Message) {
    switch(Message.LParam) {
    case MSG_MOUSE_L_DOWN: {
            CursorP.x = InputsVisual.GlobalX;
            CursorP.y = InputsVisual.GlobalY;
        }break;
    case MSG_MOUSE_L_UP: {
        }break;
    case MSG_MOUSE_R_DOWN: {
            CursorP.x = InputsVisual.GlobalX;
            CursorP.y = InputsVisual.GlobalY;
        }break;
    case MSG_MOUSE_R_UP: {
            PopupVisual->PopupAtCursor();
        }break;
    case MSG_MOUSE_M_DOWN: {
            CursorP.x = InputsVisual.GlobalX;
            CursorP.y = InputsVisual.GlobalY;
        }break;
    case MSG_MOUSE_M_UP: {
 
        }break;
    case MSG_KEY_DOWN: {
            InputsVisual.KeyDown = Message.WParam;
            TimerButton->Enabled = true;
        }break;
    case MSG_KEY_UP: {
            InputsVisual.KeyUp = Message.WParam;
            TimerButton->Enabled = false;
            SceneCamera.IsMoving = false;
        }break;
    case MSG_MOUSE_MOVE: {
 
            OnHookMouseMove(Message.WParamLo, Message.WParamHi);
 
        }break;
    case MSG_MOUSE_WHEEL: {
 
            // short fwKeys = GET_KEYSTATE_WPARAM(Message.WParam);
            InputsVisual.GlobalZ = GET_WHEEL_DELTA_WPARAM(Message.WParam);
            if (InputsVisual.GlobalZ > 0.0) {
                SceneCamera.deltaMove = SceneCamera.deltaMove + 1.0;
            }
            else {
                SceneCamera.deltaMove = SceneCamera.deltaMove - 1.0;
            }
 
        }break;
    }
}
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 20
11.05.2011, 01:27  [ТС]
Спасибо за код))) Конкретно до хуков никак не дойду, пишу "примочку к нему".. вот проблема, написал:

основная программа:
HMODULE hLib;
if ((hLib = LoadLibrary("dll-mouse-2.dll")) != NULL) {printf ("Good load DLL \n");}
else printf ("NOT Good load DLL \n");
double result[6];
result[0]=8.123456;
double *ip;
ip=&result[0];
double pFunction(*ip);
while (true) {
(FARPROC &) pFunction= GetProcAddress(hLib, MouseHookFunction");
double test=*ip;
char ttt[10];
sprintf(ttt, "%f", test);
printf ("string = %s \n",ttt);
}


DLL:
int MouseHookFunction(double *ip)
{
*ip=123.987654;
return true;
};


Так вот - в этом случае переменная ttt равна 8.123456, хотя по моей логике - должна быть 123.987654.

Узнал,что функция GetProcAddress может так же обращаться к переменным, но тут а) только Int значения, б) у меня ошибка вылазит: An unhandled exception of type 'System.NullReferenceException' occurred in 321.exe Additional information: В экземпляре объекта не задана ссылка на объект.

Основная программа:
int *ip = (int*) GetProcAddress(hLib, "_i");
int test=*ip; //вот здесь и виснет

DLL:
extern "C" __declspec(dllexport) int i=5;

Вопрос - как можно вернуть double значения из DLL в основную программу для их дальнейшей обработки?

Добавлено через 27 минут
C int разобрался - нужно убрать подчёркивание из i при вызове. Но получается, что только статические переменные можно передать ((((

НО вопрос про double остаётся...
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
11.05.2011, 10:36
Ты можешь вернуть любые значения из длл в основную программу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// dll
extern "C" __declspec(dllexport)void GetRefDoubleValue(double &dVal);
extern "C" __declspec(dllexport)double GetDoubleValue();
 
double dSomeValueFromDLL = 0.00001;
 
void GetRefDoubleValue(double &dVal) {
       dVal = dSomeValueFromDLL;
}
 
double GetDoubleValue() {
      return dSomeValueFromDLL;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// main program
// здесь самое главное объявить новый тип с прототипом функции
typedef void (*GETREFDOUBLEVAL)(double &dVal);
typedef double (*GETDOUBLEVAL)();
 
HMODULE hLib = LoadLibrary("test.dll");
if (hLib) {
       // знак подчёркивания добавляется, если не используется __stdcall
       GETREFDOUBLEVAL GetRefDblVal = GetProcAddress(hLib,"_GetRefDoubleValue");
       double dMainProgVal = 0;
       if (GetRefDblVal) {
              GetRefDblVal(dMainProgVal); // изменяем значение dMainProgVal по ссылке
       }
 
       GETDOUBLEVAL GetDblVal = GetProcAddress(hLib,"_GetDoubleValue");
       if (GetDblVal) {
              dMainProgVal = GetDblVal(); // получаем double из длл-ки
       }
       FreeLibrary(hLib);
}
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 20
11.05.2011, 23:29  [ТС]
что-то ругается компилятор на сточки:

GETREFDOUBLEVAL GetRefDblVal = GetProcAddress(hLib,"_GetRefDoubleValue" );

error C2440: 'initializing' : cannot convert from 'FARPROC' to 'GETDOUBLEVAL'

И, честно говоря, не понял - почему нужно вызывать функции, содержащие переменные, а не сами переменные.

Добавлено через 3 часа 24 минуты
разобрался)) не очень понял как это работает, но нужно записывать так:

GETDOUBLEVAL GetDblVal = (GETDOUBLEVAL) GetProcAddress(hLib,"GetDoubleValue");
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
11.05.2011, 23:45
да, забыл, абсолютно правильно, надо же привести указатель к нашему типу
зачёт!
0
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 20
16.05.2011, 23:44  [ТС]
возникла проблема и непонимание....


1) как из LRESULT CALLBACK вернуть double значение в основную функцию MouseHookFunction?
2) как можно замерить время движения колёсика?

HHOOK HookHandle;
LRESULT CALLBACK WH_HookMouse(int nCode,WPARAM wParam,LPARAM lParam);

//======================================== ======================================

int MouseHookFunction()
{
HookHandle = SetWindowsHookEx(WH_MOUSE,(HOOKPROC)WH_H ookMouse, 0, 0);
return true;
};



LRESULT CALLBACK WH_HookMouse(int code,WPARAM wParam,LPARAM lParam)
{
double xInc;
double yInc;
if(code < 0) {return CallNextHookEx(HookHandle,code, wParam, lParam);}
int msg;
switch(msg) {
case WM_MOUSEWHEEL: {
if (LOWORD(wParam)&MK_SHIFT) {
xInc = (short)HIWORD(wParam);
return xInc;
}
else {
yInc = (short)HIWORD(wParam);
return yInc;
}
};
break;
default: return 0;
}
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2011, 23:44
Помогаю со студенческими работами здесь

Сброс МК при срабатывании реле.
Делал я одно устройство с несколькими релюшками. Так вот при срабатывании реле всегда неизбежно происходил сброс микроконтроллера. Так и...

Вылет при срабатывании деструктора
Собственно говоря вот: class MatrixGraph { int **arcs; int n; public: MatrixGraph(int vertexnumber) ...

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

Ошибка сегментации при срабатывании деструктора
Всем привет. Помогите, пожалуйста, разобраться с деструкторами. Суть проблемы заключается вот в чем: есть класс MyClass1 и AnotherClass,...

Выполнение действия при срабатывании датчика
Хочу реализовать схему: к ардуино подключен датчик (не важно какой), при его срабатывании в другом углу комнаты выполняется некое действие....


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru