Bir Hizmeti'nden uygulama masaüstüne erişme

Makale çevirileri Makale çevirileri
Makale numarası: 115825 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

Sürüm 3.1, Windows NT altında uygulama masaüstüne erişim sağlamak için bir hizmetin istiyorsanız, hizmet LocalSystem hesabı çalıştırmalısınız. LocalSystem hesabının (veya bir işlem, bu tür bir hizmet başlatıldı) çalışan BIR hizmet işlemi, ileti kutusu, pencereler ve iletişim kutuları görüntüleyebilir. LocalSystem hesabı çalışan işlemleri sistem tarafından oturum kapatma sırasında sonlandırılır. Windows, Windows NT, bu hizmetlerle etkileşim biçimini etkileyen NT sürüm 3.5, çok sayıda değişiklik yapıldı. Buna ek olarak, Windows NT 3.51, daha zengin bir masaüstü Apı kümesi vardır.

Not: etkileşimli hizmetlere sistem hesabı altında çalışan bir çok durumda tehlikeli bir yöntem. Toplu iş dosyalarında ve komut işlemcisi bu özellikle geçerlidir. Sistemi denetlemek isteyen BIR kullanıcının, yalnızca bir etkileşimli sistemi komut istemi almak için CTRL + C isabet.

Daha fazla bilgi

Hizmetleri etkileyen yeni Windows NT sürüm 3.5, özellikleri şunlardır:
  • Uygulama Masaüstü'ne erişim izni yalnızca hesap, oturum açmış kullanıcı hesabıdır. LocalSystem artık erişebilir. Bu nedenle, herhangi bir KULLANıCı veya GDI çağırır önce kullanıcının kimliğine bürünüyor masaüstüne erişim elde etmek mümkündür.
  • Belirli bir oturum sırasında bir hizmet işlemi başlatıldı, konsol ve GUI uygulamalarının bir görünmez pencere istasyonu ve oturuma özgü masaüstü çalıştırılır. Oturum uygulamada ilk başlatıldığında, masaüstünü ve pencere istasyonu otomatik olarak oluşturulur; son uygulama olduğunda yok edilir. Bu görünmez masaüstü görünür hale getirmek için bir yolu yoktur.
  • Hizmet localsystem hesabına oturum açan kullanıcıyla etkileşimde bulunmak için istediğiniz CreateService() çağrısında SERVICE_INTERACTIVE_PROCESS bayrağı belirtin. Örneğin:
          schService = CreateService(
             schSCManager,
             serviceName,
             serviceName,
             SERVICE_ALL_ACCESS,
             SERVICE_INTERACTIVE_PROCESS | SERVICE_WIN32_OWN_PROCESS,
             SERVICE_DEMAND_START,
             SERVICE_ERROR_NORMAL,
             lpszBinaryPathName,
             NULL,
             NULL,
             NULL,
             NULL,
             NULL );
    						
    SERVICE_INTERACTIVE_PROCESS kullanırken localsystem dışında bir hesap belirtirseniz, hata iletisi alır ınvalıd_parameter (87).
  • CreateProcess() işleminizin başlatmak için kullandığınız ve kullanıcılar masaüstüne oturum hizmetinizi istediğiniz, STARTUPINFO struct ile "WinSta0\\Default" lpdesktop parametresini atayın.
  • Hizmetlerin görünen kullanıcı bildirim yeterlidir MB_SERVICE_NOTIFICATION bayrağıyla MessageBox() ça??rarak bunu yapabilirsiniz. Ancak, yalnızca kullanıcının masaüstünü etkin olup olmadığını MB_DEFAULT_DESKTOP_ONLY bayrağını kullanarak'ı gibi çalışır. Iş istasyonu kilitli veya ekran koruyucu çalışıyorsa, çağrı başarısız olacaktır.

    Not: bir hizmet veya bir yürütülebilir dosya olarak çalışan bir uygulama için bir kod yazıyorsanız, NULL olmayan bir öğesi yan? s?ra MB_SERVICE_NOTIFICATION kullanamazsınız.
  • Bir pencereyi yapılan herhangi bir çıktı değil görüntülenen veya uygulamanın herhangi bir şekilde kullanılabilir. Hata görüntüleme sonuçları bit okuma girişiminde bulunur.
  • GUI Hizmetleri, oturum kapatma ve kapanma WM_QUERYENDSESSION/WM_ENDSESSION iletileri almazsınız; bunun yerine CTRL_LOGOFF_EVENT ve CTRL_SHUTDOWN_EVENT olayları alırsınız. Bu hizmetler oturumu kapatma sırasında sistem tarafından sonlandırılır.

Özellikler

Makale numarası: 115825 - Last Review: 1 Mart 2014 Cumartesi - Gözden geçirme: 2.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt KB115825 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:115825

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com