Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 23:33   #1
Vaska
 
Регистрация: 31.03.2009
Сообщений: 4
По умолчанию С++ и автозагрузка

Добрый вечер. Проблема заключается в следующем: написал exe(консольное приложение) кот должен постоянно висеть работающим, но естественно скрытым)), а также должен подрубаться при включении. Возникает такая проблема: иногда это консольное окно появляется в открытом виде, причём пару раз при включении всё может быть ок, а на след раз выскочит. Если же просто запускать ехе то всё шикарно в скрытом виде. Вопщем надеюсь на ващу помощь по данному вопросу.. .

для скрытности в начале main функции прописываю:
Код:
HWND hwnd = GetForegroundWindow();
	if (hwnd != NULL)
	{
		ShowWindow(hwnd, SW_HIDE);
	}
в реестр добавляю след образом:
[HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Run]
"cirleid"="C:\\Daemon.exe"

Заранее благодарен, Василий
Vaska вне форума Ответить с цитированием
Старый 01.04.2009, 16:09   #2
radiohobbyt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 38
По умолчанию

логичный вопрос: а окно-то вообще необходимо? может и не надо окна(вообще)?
...
и на чем пишешь? может просто тиль окна WS_VISIBLE не ставить?

Последний раз редактировалось radiohobbyt; 01.04.2009 в 16:12.
radiohobbyt вне форума Ответить с цитированием
Старый 01.04.2009, 18:16   #3
Vaska
 
Регистрация: 31.03.2009
Сообщений: 4
По умолчанию

пишу в MSVS 6.0 Можно и без окна обойтись, если подскажешь как)))
Vaska вне форума Ответить с цитированием
Старый 01.04.2009, 20:27   #4
radiohobbyt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 38
По умолчанию

просто не создавай окна в WinMain. и все=)
пишу на апи. как это в MFC- не знаю...но судя по тому, что окна тебе не надо- то переделать в апи проект- совсем не проблема=)


чтонибуль вроде
Код:
#include <windows.h>
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nCmdShow)
{
   while(1)
      {
      Sleep(10000);
      Beep(1000, 1000);
      }
}

Последний раз редактировалось MaTBeu; 01.04.2009 в 22:36.
radiohobbyt вне форума Ответить с цитированием
Старый 02.04.2009, 08:35   #5
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

по-моему, автор все же пишет консольное приложение...
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 02.04.2009, 11:20   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2wyvern какой смысл в КОНСОЛЬНОМ приложении, если автор хочет СПРЯТАТЬ консоль?
vvviperrr вне форума Ответить с цитированием
Старый 02.04.2009, 13:04   #7
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

2vvviperrr: я не говорю о том, чего автор хочет или не хочет. Я говорю о том, что у автора есть. А программу можно спрятать и в консольном режиме. Не надо для этого писать кучу лишнего винапишного кода типа винмейна и других страшных штукав.

Код:
#include "stdafx.h"
#include <Windows.h>
#include <iostream>

using namespace std;

#define NAME_CONSOLE "cccOnsole"

HWND GetConsole_hWnd()
{
	SetConsoleTitle(NAME_CONSOLE);
	HWND hwnd;
	hwnd=FindWindow(NULL, NAME_CONSOLE);
	if(hwnd==0){
		return 0;
	}
	return hwnd;
}

int main(int argc, char* argv[])
{
	HWND hwndClosole;
	hwndClosole=GetConsole_hWnd();
	if(hwndClosole==0)cout<<"error"<<endl;
		else cout << "fine" << endl;
	// Через 4 секунды прячем
	Sleep(4000);
	//Скрываем консоль
	ShowWindow(hwndClosole,SW_HIDE);
	Sleep(4000);
	//Показываем снова через 4 секунды
	ShowWindow(hwndClosole,SW_RESTORE);
	return 0;
}
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 02.04.2009, 13:09   #8
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2wyvern помойму куча лишнего кода как раз у тебя WinMain это лишний код?))) ну ты жжошь. как кто то сказал, не помню //обойдемся без таких слов. ты как раз это сейчас и делаешь. автор прячет консоль от незнания того, что можно писать вообще без окна.

пс. судя твоей логике, можно наделать кучу диалогов и тоже их спрятать

Последний раз редактировалось MaTBeu; 02.04.2009 в 17:56.
vvviperrr вне форума Ответить с цитированием
Старый 02.04.2009, 13:17   #9
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

А забей. Глупый и скучный холивар.
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 03.04.2009, 15:09   #10
Vaska
 
Регистрация: 31.03.2009
Сообщений: 4
По умолчанию

всем спасибо большое за участие. проблема решилать просто добавлением ещё одного SW_HIDE, ибо в msdn написано что с первого раза может не работать.
Vaska вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автозагрузка бодяга Общие вопросы Delphi 3 14.08.2009 18:00
Процессы в виндовс, автозагрузка atlon Софт 9 29.11.2008 14:18
Автозагрузка Altera Операционные системы общие вопросы 8 29.06.2008 21:54
Опять автозагрузка RealSHELS Общие вопросы Delphi 7 16.06.2008 01:32
Автозагрузка nikleb Общие вопросы Delphi 1 23.06.2007 14:12