Вопрос № 21559: Здравствуйте уважаемые эксперты. Как сделать так чтоб при запуске программы не появлялась главная форма?
Cуть такова:
Запускает человек программу. Или она сама запускается из автозагрузки.
Сперва ничего не происходит. Но через пол часа вы...
Вопрос № 21.559
Здравствуйте уважаемые эксперты. Как сделать так чтоб при запуске программы не появлялась главная форма?
Cуть такова:
Запускает человек программу. Или она сама запускается из автозагрузки.
Сперва ничего не происходит. Но через пол часа вылезает окошко с сообщением
типа "Купите себе селедку и морочте ей голову". При нажатии на OK исчезает
(Main_Form->Visible=!Main_Form->Visible), но через пол часа снова вылезает
с другим сообщением (тут уже Visible меняет не кнопка, а сработавший
таймер). Таких сообщений там полтора десятка, они выбираются случайным
образом и подставляются в качестве значения Caption объекта Label на этой
форме. Снимается резидент только через три пальца, причем видно его только
на вкладке "Процессы" - в "Приложениях" его видно только когда это окно
вылезает. Я все это уже сделал, вся фигня только в том, что при запуске
этой программы окно вылезает сразу. А надо чтобы оно сразу же скрытым было,
иначе запустивший эту прогу юзер сразу все поймет.
Отправлен: 31.05.2005, 14:03
Вопрос задала: Саша Ковальски (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: DSota
Здравствуйте, Саша Ковальски!
Если используешь BCВ - то добавь код своей программы в главный модуль после (перед) выполнением Application->Run(); При этом в закладке Project->Options->Forms->Auto-create forms убери все формы, и они не будут создаваться.
На MSVC - помеcти код в процедуру WinMain, закомментировав MyRegisterClass(hInstance);
--------- Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Студент)
Отправлен: 31.05.2005, 14:56
Отвечает: Azat
Здравствуйте, Саша Ковальски!
Если пишешь на WinAPI или MFC:
После создания окна Вы вызываете функцию ShowWindow(hwnd, SW_SHOW); [ShowWindow(hwnd, nCmdShow); или this->ShowWindow(SW_SHOW);]. Чтобы окно не показывалось после создания, Вам нужно стереть эту функцию или вместо SW_SHOW (nCmdShow) написать SH_HIDE. А как таймер сработает - вызвать ShowWindow(hwnd, SW_SHOW);
Думаю, всё понятно. Если не так, пишите на Azat-Yar@mail.ru
Удачи!
Ответ отправил: Azat (статус: 3-ий класс)
Отправлен: 31.05.2005, 17:39
Отвечает: Pushkin
Здравствуйте, Саша Ковальски!
Можно сделать главную форму очень небольшой, например Width = 0; Height = 0;
Присваивать эти значения в обработчике события OnShow;
Также в этом обработчике включать таймер. В обработчике таймера OnTimer прописать функцию MessageBox.
Ответ отправил: Pushkin (статус: 3-ий класс)
Отправлен: 31.05.2005, 18:30