Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters
Register

Reply
 
LinkBack Thread Tools
Old 12.08.2005, 14:06   #1
Авик
 
CyberJoe's Avatar
 
Join Date: 07 2002
Location: Yerevan
Age: 30
Posts: 1,348
Downloads: 2
Uploads: 0
Reputation: 9 | 0
Question Сервис

Мне надо сделать Win32 приложение на C++ желательно,
Желательно под VS 6.0 но можно и под .NET
которое будет как Сервис, на бэкграунде, мониторить какой то фолдер
и если там появиться новый файл даст об этом знать.
Как такое можно сделать?
Меня интеерсует скорее та часть где приложение работает на бэкгранде
т.е оно становиться сервисом, как это делаеться?
Reply With Quote
Old 12.08.2005, 14:37   #2
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 41
Posts: 524
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Не знаю как это запраграммировать, но SrvAny позволяет превращать любое приложение в Сервис. Дай поиск про SrvAny в Гоогле и в Микрософтовском сайте.
Reply With Quote
Old 12.08.2005, 14:42   #3
Авик
 
CyberJoe's Avatar
 
Join Date: 07 2002
Location: Yerevan
Age: 30
Posts: 1,348
Downloads: 2
Uploads: 0
Reputation: 9 | 0
Default

Хм поищу, спасибо.
А все же такое приложени должно иметь какие то требования т.е способ написания.
Я ведь немогу сделать обычное МФЦ приложение сервисом, или могу???
Reply With Quote
Old 12.08.2005, 17:48   #4
The splendid
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Pure thoughts
Age: 36
Posts: 3,408
Downloads: 22
Uploads: 0
Reputation: 222 | 3
Default

Code:
#include <windows.h>

int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{	
	HANDLE chHandle=FindFirstChangeNotification(TEXT("C:\\"), TRUE, FILE_NOTIFY_CHANGE_FILE_NAME);
	if(INVALID_HANDLE_VALUE == chHandle)  
		ExitProcess(GetLastError());
	for(;;)
	{ 
		WaitForSingleObject(chHandle, INFINITE); 
		MessageBox(0, TEXT("File Changed!"), TEXT("File Changed!"), MB_OK|MB_ICONINFORMATION);
		if(!FindNextChangeNotification(chHandle))
			ExitProcess(GetLastError());
		
	}
	return 0;
}
будет мониторить с:\ с подфолдерами на изменения файлов. если надо конкретно с каким именем то нужно hook поставить на CreateFile(), что делается в kernel mode. ищи на codeproject.com нечто типа API hooking.
Reply With Quote
Old 13.08.2005, 07:58   #5
Авик
 
CyberJoe's Avatar
 
Join Date: 07 2002
Location: Yerevan
Age: 30
Posts: 1,348
Downloads: 2
Uploads: 0
Reputation: 9 | 0
Default

О спасибо )
Пойду сегодня потестю
Reply With Quote
Old 13.08.2005, 20:11   #6
скромный VIP
 
analyst's Avatar
 
Join Date: 06 2003
Location: Yerevan
Age: 30
Posts: 960
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Nu, aw djan, wrubaesh VS.Net, idesh w new-project, i wibiraesh Windows Service.Service imeet dwa sobitya - on start, on Stop.W onStart zodaesh obekt klassa kotoriy i delaet wse chto ti xochesh.
OPsle wsego etogo sozdesh installeri.Tam fignya wsyakaya, prosto include delaesh installer Class, i stawish fignyu wsyakuyu, tipa service name, lya lya. Buildum es, heto install es anum, u inq@ ashxatum a
__________________
И аткуда такие беруцца???
Reply With Quote
Old 13.08.2005, 20:26   #7
Авик
 
CyberJoe's Avatar
 
Join Date: 07 2002
Location: Yerevan
Age: 30
Posts: 1,348
Downloads: 2
Uploads: 0
Reputation: 9 | 0
Default

Мдя.... тенцел кпордзенк, но это еще только листочик из букета...
Мне еще надо сделать иконку в систем трее, еще надо винсоками законектиться
к джаберовскому серверу, суметь програмно зааплоадить файл, и загуахер юзать XML.... тхура.... ачкис инчкан форум ка ес ашхарум дзерс кракна ынкнелу...
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 10:30.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.