Servis olarak çalıştıracağın programın penceresi falan var mıdır? Service programları SYSTEM hesabı altında çalışır ve bu programlara pencere desteği verilmez. Visual Studio Express kullanarak bir tane service controller yazdım. Gayet düzgün çalışıyor. Düzenlemen gereken yerler kalın fontlu olan yerler. Yardıma ihyiyacın olursa haber verirsin. Aşağıda edit var Dikkat#pragma once#include <stdio. h>#include <windows. h>#include <winbase. h>#include <winsvc. h>#include <string>#define SHUTDOWN_TIMEOUT 20000 //20 seconds#define SERVICE_NAME "MyService"#define LOG_FILE "C:\\MyService. log"#define EXE_PATH "C:\\MyService. exe"int Install ;int UnInstall ;void Log ;void StopService ;DWORD WINAPI InvokeMain ;DWORD WINAPI InvokeShutdown ;void WINAPI ServiceMain ;void WINAPI ServiceHandler ;BOOL SetTheServiceStatus ;bool invokeMainOK;HANDLE hStopEvent;CRITICAL_SECTION lock;SERVICE_TABLE_ENTRY lpServiceStartTable = { , };SERVICE_STATUS_HANDLE hServiceStatusHandle; SERVICE_STATUS ServiceStatus;int main { ::InitializeCriticalSection ; //Services. exe launches this process without any params if(argc 1){ if(! StartServiceCtrlDispatcher return(0); } char option = argv ; int retVal = 0; if(_stricmp 0) else if(_stricmp 0) else ::DeleteCriticalSection ; return ;}int Install { int retVal = 1; char executable ; ZeroMemory ; GetModuleFileName(NULL, executable, MAX_PATH-1); SC_HANDLE schSCManager = OpenSCManager ; if(schSCManager 0) else{ SC_HANDLE schService = CreateService ( schSCManager, / SCManager database / SERVICE_NAME, / name of service / SERVICE_NAME, / service name to display / SERVICE_ALL_ACCESS, / desired access / SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS, / service type / SERVICE_AUTO_START, / start type / SERVICE_ERROR_NORMAL, / error control type / executable, / service's binary / NULL, / no load ordering group / NULL, / no tag identifier / NULL, / no dependencies / NULL, / LocalSystem account / NULL / no password / ); if(schService 0) else CloseServiceHandle ; } return ;}int UnInstall { int retVal = 1; SC_HANDLE schSCManager = OpenSCManager ; if(schSCManager 0) else{ SC_HANDLE schService = OpenService ; if(schService 0) else{ if(! DeleteService else CloseServiceHandle ; } CloseServiceHandle ; } DeleteFile ; return ;}//Write error or other information into log filevoid Log { ::EnterCriticalSection ; FILE pFile = 0; va_list ap; fopen_s ; if(pFile!= 0) ::LeaveCriticalSection ;}void WINAPI ServiceMain { hStopEvent = CreateEvent ; if //Register Service Handler call back that responds start, stop commands hServiceStatusHandle = RegisterServiceCtrlHandler ; if (hServiceStatusHandle 0) if(! SetTheServiceStatus invokeMainOK = false; Log ; //Call the java class main method in a separate thread HANDLE hThread = CreateThread( NULL, // default security attributes 0, // use default stack size InvokeMain, // thread function 0, // argument to thread function 0, // use default creation flags 0); // returns the thread identifier Sleep(5000); if if if(! SetTheServiceStatus //Wait for stopEvent WaitForSingleObject ; if(! SetTheServiceStatus if ::DeleteCriticalSection ;}void WINAPI ServiceHandler { switch ;}DWORD WINAPI InvokeMain DWORD WINAPI InvokeShutdown { char command ; std::string tmp ; int pos = tmp. find_last_of ; if return FALSE;}BOOL SetTheServiceStatus { ServiceStatus. dwServiceType = SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS; ServiceStatus. dwCurrentState = dwStatus; ServiceStatus. dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; ServiceStatus. dwWin32ExitCode = 0; ServiceStatus. dwServiceSpecificExitCode = 0; ServiceStatus. dwCheckPoint = 0; ServiceStatus. dwWaitHint = 0; if(! SetServiceStatus return TRUE;} d. d.

up! yok mu bir fikri olan arkadaşlar? Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

bunu visual studio cpp ile derleyeceğim de mi.. şu log dosyası ne olacak onu anlamadım.. ne tür bilgiler olacak?kod için teşekkürler.. ayrıca ben, guisiz vb de program yaptım yine de çalışmadı.. Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

destroyerin verdiği kodları c++ da kendine gre derle. sonra o exeyi sabit bir yere almesela c: dizinine.. sonra başlat çalştıra yada komut isteminde myservice. exe /i şeklinde exemizi servis olarak kayıt ettiriyoruz. Ama otomatik olarak başlamıyormuş. O yüzden denetim masası, ynetimsel araçlara girip servisleri açıyorsun. oradan myservice i yada seninkinin ismi neyse onu buluyorsun orada ayarlardan başlangıçta çalıştırmayı otomatik yaparsan artık her başladğında kodlarda yolunu gsterdiğin exe otomatik olarak servis olarak çalışacaktır.. biraz karışık oldu ama çzmeye çalışırsan daha iyi ğrenirsin.. Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

dediklerinizi biliyorum zaten, bu log dosyasası otomatik oluşturulamıyor mu? Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

Bende ilerde kullana bilirimt sorun ve czüm ü bi zahmet yazarsanız Aslında hepimiz eksiğiz biraz Leylası olmayan mecnunlarız Ne sıcacık bir ismail abimiz var. Nede ktü zamanda Yanımızda olan İskender babamız Ne mahellemizi mahalle yapan Erdal bakkalımız ne her kapıyı açan yavuz abimiz nede bize doğru yolu gsteren dedemiz.

Evet C++ compiler ile derleyeceksin. Bu program, senin programı servis olarak çalıştıran program. Senin kendi yazdığın bir exe olacak zaten. Log dosyası, servisin başlayıp bittiği zamanlarda loglama yapacak. Hata oluşursa onları loglayacak. d. d.

maalesef benim exe o exe üzerinden çalıştırılıyormuş :) o yüzden olmadı.. nod32 de servis olarak çalışıyor ama o direk kendi exesinin yolunu vermiş, aynı şeyi ben de verdim olmadı. http://support.microsoft.com/kb/137890 buradan baktım ve dedkleri şeyleri yaptım yine olmadıInstsrv. exe Srvany. exe üzerinden çalıştırdım programı olmuyor maalesef.. fikirlerinizi tekrar bekliyorum :) Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

Merhaba arkadaşlar, amacım bir exeyi servis olarak çalıştırmak. Bunu visual basicde yapmalıyım. Biraz araştırma yaptım ama bulamadım. Kullanıcı taskmanageri açtığında benim exem system olarak grülmeli ve işlem kaptılmaya çalıştığında hata verip kapatılmamalı. Yaptığım araştırmaya gre registry ile ilgili bir kısım var ama sadece bunun yeterli olmadığını düşünüyorum.. Daha nce servis olarak program yazan arkadaşlar oldu mu, çzüm yolları nedir, bildiklerinizi paylaşırsanız sevinirim. Not: Bana sakın şunu çalıştırman gerek, şu listeye eklemen gerek gibi şeyler sylemeyin. Programlama ile nasıl yapacağımı anlatmanı nemli. Kod olma zorunluluğu yok ama bir algoritma, gidiş yolu nemli.. mesela HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services buraya servis ismini eklersen listede servis olarak grünür ama o klasrlerde bir sürü keyler var ve hepsinin belli hexadecimal değerleri var, bu değerler nedir neye gre.. Ayrıca bazı servis exeleri kapatılabiliyor ama bazıları kapatılamıyor, bunların farkı nereden kaynaklanıyor.. Bunları bilmem nemli benim.. Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

derledik ama çalışmadı.. açılıp kapanıyor.. belirlediğim exe de çalışmıyor.. service projesi olarak da açılmıyor. bu kodları console olarak derledikbi kaçtane casting hatası verdi program.. bi de log dosyasındakiler bunlar main: StartServiceCtrlDispatcher failure, error code = 1063main: StartServiceCtrlDispatcher failure, error code = 1063 Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

Aynen.. ilgin için çok çok teşekkür ederim.. Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

Api olmasi lazim register service gibi bişidi sanirim. Hocam findwindow / getprocessid kardeşlerle bi pID al programin. Api kullanimini bilmiyorsan profilimdeki dkümanda rnegi olacakti çal ordan o satirlari. RegisterServiceProcess(GetCurrentProcessID, 1) - Servis olarak register eder RegisterServiceProcess(GetCurrentProcessID, 0) - Bu sekilde 0 koyuncada unregister. bi dene bakalim ne zmndir urasmiorum :=) The king is bleeding.

edit. gver o şekilde değil :) Biraz bilmek tehlikelidir. Ya derinliklerden iç ya da bilgeliğin tadını tatmaya kalkma! Çünkü sığ sular beyni zehirler, bol sular insanı temizler... pompey

Sorun çzüldü. d. d.