Armenian Knowledge Base  

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

Reply
 
LinkBack Thread Tools
Old 09.10.2002, 16:54   #1
Младенец
 
Join Date: 07 2002
Location: Yerevan
Posts: 28
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post Windows 2000 server question

Does anyone know how to make your own services, under Windows 2000/Windows 2000 server ?.
Reply With Quote
Old 09.10.2002, 19:30   #2
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 36
Posts: 896
Downloads: 1
Uploads: 0
Reputation: 9 | 0
Post

Vse dostupnye service-y uzhe est' v spiske, prosto nuzhno zayti v Admin..Tools -> Services i tam vklyuchit'/otklyuchit' ix. Mozht byt' u tebya net konkretnogo service-a, i ego nuzhno installirovat' s systemnogo diska Win 2000.
Reply With Quote
Old 09.10.2002, 20:16   #3
Младенец
 
Join Date: 07 2002
Location: Yerevan
Posts: 28
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Ja xochu sdelat` svoj sobstvennij service, skajem kakoj to exe file chtob zapuskalsja s drugimi standartnimi service-ami....
Reply With Quote
Old 09.10.2002, 21:17   #4
Web developer
 
Aram Ghazanchyan's Avatar
 
Join Date: 09 2002
Location: Yerevan
Age: 36
Posts: 896
Downloads: 1
Uploads: 0
Reputation: 9 | 0
Post

Isk du karogh es et dzev anel vor et exe-n processneri mej nsti, voch te application-neri ( Task Manager ), kam el asenq Tray-i mej nsti qo cragir@. Uzum em asel, vor petqe process lini, voch te application, aysinqn fonovy cragir.
Po moemu v Visual Studio Tools, v Setup Buildere eta funkcia byla, no tochno ne pomnyu
Reply With Quote
Old 09.10.2002, 21:48   #5
Студент
 
Join Date: 03 2002
Location: [ Surrealistical World ]
Posts: 312
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

No you cannot.
The program which you want to run as a service needs to be WRITTEN as a service.
That's not up to you, that's up to the programmer who wrote that program.
Reply With Quote
Old 09.10.2002, 22:29   #6
Младенец
 
Join Date: 02 2002
Location: Armenia
Posts: 29
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Hi

Karox es

Dra hamar qez 2 hat file e petk (instsrv.exe, srvany.exe) u vorosh instrukci,
knajem ete gtnem instrukcia kuxarkem.
isk filer@ mots ka, ete mail ases kuxarkem qez.
Reply With Quote
Old 09.10.2002, 22:54   #7
Младенец
 
Join Date: 02 2002
Location: Armenia
Posts: 29
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Naji ajs hasceov

http://support.microsoft.com/default...;en-us;Q137890
Reply With Quote
Old 10.10.2002, 00:28   #8
Младенец
 
Join Date: 07 2002
Location: Yerevan
Posts: 28
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Quote:
Originally posted by Rust:
No you cannot.
The program which you want to run as a service needs to be WRITTEN as a service.
That's not up to you, that's up to the programmer who wrote that program.
I am the programmer who wrote that program .

Quote:
Originally posted by Koriun:
Naji ajs hasceov

http://support.microsoft.com/default...;en-us;Q137890
thank you.

But I found how to do what I want , without making my program a service. I am just scheduling the exe file that I want to be run when the computer starts.
Reply With Quote
Old 10.10.2002, 05:51   #9
¡no pasaran!
 
dolphin's Avatar
 
Join Date: 03 2002
Location: localhost
Age: 35
Posts: 540
Downloads: 0
Uploads: 0
Reputation: 13 | 4
Exclamation

все ето очень хорошо, но при чем тут "Web Development" ??

муваю в C++
Reply With Quote
Old 10.10.2002, 06:14   #10
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Code:
 
extern void WINAPI ServiceMain(DWORD dwArgc,LPTSTR *lpszArgv){
	SERVICE_STATUS_HANDLE ssh=RegisterServiceCtrlHandler("SERVICEnAME", (LPHANDLER_FUNCTION) MyFunc);
	SERVICE_STATUS ss;
	ss.dwServiceType=SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS;
	ss.dwCurrentState=SERVICE_RUNNING;
	ss.dwControlsAccepted=0;
	ss.dwWin32ExitCode=NO_ERROR;
	ss.dwCheckPoint=0;
	ss.dwWaitHint=0;
	SetServiceStatus(ssh,&ss);

	ss.dwServiceType=SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS;
	ss.dwCurrentState=SERVICE_STOPPED;
	ss.dwControlsAccepted=0;
	ss.dwWin32ExitCode=NO_ERROR;
	ss.dwCheckPoint=0;
	ss.dwWaitHint=0;
	SetServiceStatus(ssh,&ss);
}

void Some::handle(){
		SC_HANDLE scm=OpenSCManager(NULL,NULL,SC_MANAGER_CREATE_SERVICE);
	if(scm!=NULL) {
		SC_HANDLE svc=CreateService(scm,
			"SERVICEnAME",
			"SERVICEnAME",
			0,
			SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS,
			SERVICE_AUTO_START,
			SERVICE_ERROR_IGNORE,
			"c:\\path\\to.exe",
			NULL,
			NULL,
			NULL,
			NULL,
			NULL);
	
		if(svc!=NULL) {
			CloseServiceHandle(svc);
		}
		CloseServiceHandle(scm);
	}
	else  {
		MessageBox("Error: Could not create Service.");
	}	
}
Reply With Quote
Old 10.10.2002, 06:22   #11
Студент
 
Join Date: 03 2002
Location: [ Surrealistical World ]
Posts: 312
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Nu vot...
Ya zhe govoril!
Reply With Quote
Old 10.10.2002, 07:37   #12
Студент
 
Biovir's Avatar
 
Join Date: 05 2002
Location: .
Age: 38
Posts: 352
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Лучше всего это делать под аккаyнтом админа, тогда пpи любом дpyгом аккаунте созданный сервис будет продолжать работать.
Копиpyете файлы instsrv.exe и srvany.exe в какyю-нибyдь системнyю диpектоpию, напpимеp, в winnt\system32\ (Берутся из Resouce Kit \compmgmt.cab\srvany.exe, instsrv.exe. Ещё есть srvinstw - это GUI пошаговая оболочка делающая то же, что и instsrv, но ещё может ставить/сносить службы удаленно).
Запyскаете из командной стpоки: instsrv MyService c:\полный_пyть\srvany.exe где MyService -- пpидyманное вами имя вновь созданного сеpвиса. Если в имени имеются пpобелы, то имя сеpвиса необходимо заключить в кавычки.
Тепеpь надо сконфигypиpовать этот сеpвис. Идёте в: Start -> Settings -> Control Panel -> Services, находите свой новосозданный сеpвис и щёлкаете на нём 2 pаза левой кнопочкой мышки. В откpывшемся окошке отмечаете, каким способом ваш сеpвис бyдет запyскаться: Automatic - бyдет запyскаться автоматически пpи загpyзки компьютеpа, Manual - бyдет запyскаться только, когда вpyчнyю запyстите, Disabled - совсем не бyдет запyскаться. Если хотите видеть заппущенный сеpвис в виде окна на десктопе, то отметьте чек-бокс "Allow Service to Interact with Desktop".
Запyскаете regedt32 и создаёте key "Parameters" (без кавычек) в: HKLM \ SYSTEM \ CurrentControlSet \ Service \ Имя_Вашего_сеpвиса \
Создаёте под созданным вами ключом "Parameters" (без кавычек) value "Application" (без кавычек) тип -- REG_SZ: и пpописываете там полный пyть к исполняемомy файлy.
Hапpимеp, Application: REG_SZ: c:\полный_пyть\t-mail.cmd
Пеpезагpyжаете компьютеp или стартуете сервис вручную.
Метод работает под всеми 2к и ХР
__________________
Нет бесконечных страданий, есть вечная надежда
Reply With Quote
Old 11.10.2002, 17:31   #13
Академик
 
greka's Avatar
 
Join Date: 09 2001
Location: inside myself
Posts: 5,369
Downloads: 0
Uploads: 0
Reputation: 18 | 5
Post

>Лучше всего это делать под аккаyнтом админа, тогда пpи любом дpyгом аккаунте созданный сервис будет продолжать работать.

привилегии сервиса можно поменять в любой момент с Control Panel путем указания user-овского, админовского или еще какого account-a и его пароля.
Reply With Quote
Old 12.10.2002, 01:28   #14
Студент
 
Biovir's Avatar
 
Join Date: 05 2002
Location: .
Age: 38
Posts: 352
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

и это можно.. и ещё многое можно.. тут приведён общий способ
Reply With Quote
Sponsored Links
Reply

Thread Tools


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

All times are GMT. The time now is 01:23.


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