Servis ile ilgi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seydi73
Üye
Mesajlar: 4
Kayıt: 02 Ara 2004 02:41

Servis ile ilgi

Mesaj gönderen seydi73 »

Merhaba arkadaşlar;

Bir program var. Servis olarak çalışıyor. Servis içerisinde başka programı çalıştırıyor. Windows XP 'de program yok. Ama Windows 2000'e geldi mi çalışmıyor. Yani çalıyor ama hafızada kalıyor. Sanki yarım çalışır vaziyette tepki vermiyor. Sorun ne olabilir bir fikriniz var mı ? Her türlü kodlama denedim olmadı...
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

kardeş mesajını 25kişi görüntülemiş ama hiç kimse bişey yazmamış, sanırım onlar da benim gibi bişey anlamadılar sorudan.
servis olarak çalışıyor ne demek?
ben daha önceden böyle bi terim duymadım.
Windows XP 'de program yok. Ama Windows 2000'e geldi mi çalışmıyor.
demişsi. ne demek bu, xpde program yok, 200de zaten çalışmıyor. ya bu bilgisayarda kaç tane işletim sistemi var? windows 98 de mi yüklü?
yani bir hayli kafa karıştıran bişey, sen bence daha anlaşılır bişeyler yaz.
kolay gelsin.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Bir tahminim var, belki anlamamıza yardımcı olur.
Windows XP 'de program yok. Ama Windows 2000'e geldi mi çalışmıyor.
Sanırım arkadaşımız problem yerine yanlışlıkla program yazmış. Yani; WinXP'de problem yok, ama Win2000'e geldi mi çalışmıyor.
seydi73
Üye
Mesajlar: 4
Kayıt: 02 Ara 2004 02:41

Mesaj gönderen seydi73 »

helal sana arkadaşım ulu coder. anlamışsın. Acele yazdığım için derdimi tam anlatamadım. saygılar
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

seydi73 yazdı:Arkadaşlar Merhaba

Asıl Problem Şu Delphi 6 ile yazdığımız Windows servisi olarak çalışacak bir program var. Bu Servis Programı çalışırken kendi içinden bir programı çalıştırıyor mesela hesap makinası gibi. Bu yazdığımız Programı XP işletim sistemli makinalarda Windows servisi olarak kurduğumuzda hiçbir problem yok doğru bir şekilde çalışıyor.
Ancak bu programı Windows 2000 makinalarda servis olarak çalıştırmızda ise bu programın çalıştıracağı diğer programlar yukarıdada dediğim gibi mesela hesap makinası gibi başlangıçta çalışıyor ama sonra process listte askıda kalıyor çalışacak program başlatılamıyor sadece process listte askıda kalıyor.

Sorun neden kaynaklanabilir. Win2000 kurulu makinalarda service pack 4 de yüklü.

Kolay gelsin...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Gerçekten ilginç bir durum.
WinExec kullandıysan ShellExecute'u dene.
Bir de kodları Win 2000'de derlemeyi dene.

Kolay gelsin.

(Bir tahmin daha: EDİT:uups. tahmin yanlışmış)
En son ulu coder tarafından 16 May 2006 11:59 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
seydi73
Üye
Mesajlar: 4
Kayıt: 02 Ara 2004 02:41

Mesaj gönderen seydi73 »

winexec shellexecute komutunu denedik ama sonuç vermedi.
yanlız bu programı servis olarak değil de normal olarak çalıştırdığımızda sorun yok ama servis yaptığımızda sorun yaratıyor.

Bizim bu yazdığımız program servis olarak çalışmak zorunda maalesef :(
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kardeş servis olarak çalışması ne demek? Ben anlamadım.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

ulu coder yazdı:Kardeş servis olarak çalışması ne demek? Ben anlamadım.
Control Panel - Administrative Tools - Services...

Windows'a login olmadan da makina açıksa çalışır bu programlar. Sürekli açık kalması gereken programlar için iyi bir seçenek.

Kolay gelsin.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

WinExec ve ShellExecute Servis programlarında çalışmaz. Onun yerine CreateProcess'i deneyin.

Örnek function:

Kod: Tümünü seç

function MyWinExec(const FileNameAndCommandLine: string; AShowWindow: LongWord): BOOL;
var
  SI: TStartupInfo;
  PI: TProcessInformation;
begin
  FillChar(SI, SizeOf(SI), 0);
  SI.cb := SizeOf(SI);
  SI.dwFlags := STARTF_USESHOWWINDOW;
  SI.wShowWindow := AShowWindow;
  try
    Result := CreateProcess(nil, PChar(FileNameAndCommandLine), nil, nil, True, 0, nil, nil, SI, PI);
  finally
    CloseHandle(PI.hThread);
    CloseHandle(PI.hProcess);
  end;
end;
Eğer olmazsa LoadModule üzerinde çalışın.

İyi çalışmalar.
Mersian
Üye
Mesajlar: 8
Kayıt: 17 Nis 2006 11:49

Mesaj gönderen Mersian »

Eğer service application'da Görsel Öğeler (VCL Komutları) kullanıyorsan onlarda soruna yol açabiliyorlar.

Pure kodlama dene. Yani hiç form olmasın, MessageDLG, ShowMessage vs. kullanma.
Ufuk TOGAY
Cevapla