Ответ 1
Шаг 1: Если вы используете IDE, тогда во время создания проекта, скорее всего, спросите "console-app" и "window-app". Выберите window-app, что означает, что он начнется без открытия консоли.
Шаг 2: Теперь, в коде, вы, вероятно, создадите код, который сделает окно видимым. Удалите этот код:
Ваша программа теперь выполняется, но не отображается на панели задач:.
Для запуска вашего собственного кода у вас есть 2 варианта. Какой из них подходит, зависит от вашей ситуации, но в целом предпочтительнее:
-
либо используйте один из сгенерированных методов, таких как WinMain, чтобы запустить свой собственный метод, который должен содержать цикл и внутри этого цикла ваш код плюс вызов Sleep().
-
использовать окна-сообщения для запуска некоторых ваших кодов по требованию. (предпочтительным)
Программа будет работать до тех пор, пока ваш компьютер не будет выключен; то он больше не будет работать.
Несколько примечаний о том, когда использовать опцию 1 по сравнению с опцией 2:
Вариант 2 - это то, что обычно считается лучше, потому что оно работает с операционной системой (Windows), оно только выполняет код, когда ОС сообщает, что что-то изменилось. Вариант 1, с другой стороны, не зависит от оконных сообщений - иногда вам нужна эта независимость. Это происходит по цене: ваш код, вероятно, "вручную" проверяет, что-то изменилось, иногда что-то делает, но большую часть времени выбирает Sleep(). Это называется - > опрос btw. поэтому предпочитайте вариант 2.
И вот как модифицировать WndProc для вариантов-2-приложений. Пример: делать звуковой сигнал каждую секунду.
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
#define IDT_TIMER1 123 // todo find out which numbers are allowed
// which depends on windows AND your organization
case WM_CREATE:
SetTimer(hWnd, IDT_TIMER1, 1000, (TIMERPROC) NULL);
break;
case WM_TIMER:
switch (wParam) {
case IDT_TIMER1:
Beep(100,50);
break;
}
break;
case WM_COMMAND:
...