Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Programı service olarak çalıştırmak  (Okunma sayısı 1913 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı virtualname

  • Yeni Üye
  • *
  • İleti: 16
  • Rep: +0/-0
Programı service olarak çalıştırmak
« : 03 Temmuz 2009 13:25:56 »
arkadaşlar yazdığım program serverda çalışacağı için açılışta başlatılmasını istiyorum. Aşağıdaki kodlar yanlış değil, fakat oturum açtıktan sonra çalışıyor. serverda oturumu açmadığım zaman da programın çalışması için service olarak çalıştırmak istiyorum.

Kod: Delphi
  1. reg := TRegistry.Create;
  2. reg.RootKey := HKEY_LOCAL_MACHINE;
  3. reg.LazyWrite := false;
  4. reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
  5. reg.WriteString('uygulama', Application.ExeName);
  6. reg.CloseKey;
  7. reg.free;

şimdiden teşekkürler

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.116
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: Programı service olarak çalıştırmak
« Yanıtla #1 : 03 Temmuz 2009 14:49:32 »
File -> New -> Other -> Service Application yolunu takip ederek Service Applicationı oluştur..

1 ) Beyaz küçük bi form açılcak tıkla ortasına

2 ) Obj. Inspector' dan Display Name özelliğine Servisinin adını yaz (Hizmetlerde görünecek olan isim)

3 ) Name Kısmınıda değiştir servisinle ilgili bişey olsun Regedit e anahtar olarak girilcek çünkü

4 ) onExecute olayına aşağıdaki kodu yaz...

Kod: Delphi
  1.  
  2.  while not Terminated do ServiceThread.ProcessRequests(True);
  3.  

5 ) uses kısmına Registry ı ekle

6 ) onAfterInstall olayına aşağıdaki kodu yaz..

Kod: Delphi
  1.  
  2. var
  3.   Reg: TRegistry;
  4. begin
  5.   Reg := TRegistry.Create(KEY_READ or KEY_WRITE);
  6.   try
  7.     Reg.RootKey := HKEY_LOCAL_MACHINE;
  8.     if Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name, false) then
  9.     begin
  10.       Reg.WriteString('Description', 'Servisinin Açıklaması buraya gelcek....');
  11.       Reg.CloseKey;
  12.     end;
  13.   finally
  14.     Reg.Free;
  15.   end;
  16.  


7 ) Projeni Kaydet Compile et

8 ) Başlat -> Çalıştır -> CMD yaz enter a bas.

9 ) Cmd ekranında  dosya yolu + exe adı.exe  /install /slient  kodunu yaz

örn: C:\ali.exe /install /slient

Service Install Succesfully  mesajını alırsan tamamdır....

10 ) Bilgsayarıma Sağ tıkla -> Yönet -> Treeviewden Hizmetler ve uygulamaların yanındaki + ya tıkla altta Hizmetler var ona tıkla sağda açılan listede servis dosyanı bul (Display Name de ne yazdıysan o isimde ) üstüne çift tıkla açılan pencerede başlat buttonuna tıkla....


Servis exe hazır ve sisteme eklendi....

Şimdi geldik asıl konuya ama ben de çözemedim orayı :S onStart olayında hem winexec le hemde shellexecute le bi exe dosyasını çalıştırmaya çalışıyorum pencere şekli olarak SW_NORMAL de yapsam arkaplanda çalışıyor... (Görev Yöneticisi listesinde işlemlerde yerini alıyor ama penceresi create olmuyor....

onu da sen çöz :D tamamdır ....

Bu cevapta : http://www.tolderlund.eu/delphi/service/service.htm
http://www.delphiturkiye.com/forum/viewtopic.php?f=2&t=25774&start=0   (vkamadan hocamın mesajı)                 
sitelerinden faydalanılmıştır..

google key : application+delphi+service
« Son Düzenleme: 03 Temmuz 2009 14:54:45 by barutali »



Amatör Küme Programcı

Çevrimdışı virtualname

  • Yeni Üye
  • *
  • İleti: 16
  • Rep: +0/-0
Ynt: Programı service olarak çalıştırmak
« Yanıtla #2 : 03 Temmuz 2009 16:17:38 »
C:\ali.exe /install /slient
yazdığım zaman yazı gelmiyor. sadece program çalışıyor o kadar.
hizmetlerde de görünmüyor.

ben birkaç saat önce denemelere devam ederken regeditten el ile girdim exe'nin yolunu belirttim, hizmetlerde göründü,otomatik başlat'a ayarladım fakat 1053 numaralı hatayı veriyor, zaman aşımı yani.

çok garip şeyler oluyor çook :)


 

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.116
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: Programı service olarak çalıştırmak
« Yanıtla #3 : 03 Temmuz 2009 16:19:20 »
C:\ali.exe /install /slient

yazmıcan zaten senin oluşturduğun service exe nin adı neyse o şekilde yapıcaksın ben onu sadecek örnekleme amaçlı yaptım ...



Amatör Küme Programcı

Çevrimdışı virtualname

  • Yeni Üye
  • *
  • İleti: 16
  • Rep: +0/-0
Ynt: Programı service olarak çalıştırmak
« Yanıtla #4 : 03 Temmuz 2009 16:37:31 »
öyle yazmadım zaten kendi exe'min yolunu yazdım :D:D:D

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.116
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: Programı service olarak çalıştırmak
« Yanıtla #5 : 03 Temmuz 2009 16:39:56 »
ilk mesajımda yazdıklarımın aynısını yaptıysan olması gerekiyordu.. Bence birdaha işlemleri gözden geçir...



Amatör Küme Programcı