Windows: Programların terminal sunucusu oturumunda çalışmadığını düşündürmesi nasıl sağlanır?


11

Windows 7 PC'mde "SoftXPand 2011 Duo" programını Miniframe tarafından kullanıyorum. Bir bilgisayardan iki iş istasyonu yapar. Ek oturum oluşturmak için Windows'ta yerleşik terminal servislerini kullanır. İki bilgisayarın bu "illüzyonunu" oluşturmak için iki ekran, iki klavye ve iki fare kullanıyorum. Oldukça iyi çalışıyor ve bu tek makineye bağlı iki ekranda iki farklı 3D oyun bile oynayabiliyorum (Radeon HD5770 ve 8 Gbytes RAM'li bir Core i5 2500k kullanarak).

Bunun birkaç dezavantajı var. Sadece ilk bakışta gizlenmiş olan birini buldum. Bulunduğunuz oturumlar (ilk iş istasyonunda bile) terminal sunucusu oturumu olarak tanımlanacaktır! Şimdi bazı programlar sınırlı efektlerle (grafiksel) çalışacak ve bazıları hiç çalışmayacak.

Bu aynı zamanda bazı oyunların hiç çalışmamasına neden oldu. "Terminal sunucusu oturumunda çalıştırılamaz" der ve çıkar. En iyi modern oyunların (DirectX 10, 11) SoftXPand olmadan aynı makinedeki kadar iyi çalıştığını kanıtladım, bu yüzden bu oldukça yapay bir sınırlama!

Öyleyse, bir şekilde mevcut oturumumu kesebilir miyim, böylece artık terminal sunucusu oturumu gibi görünmüyor? IE

#include <windows.h>
#pragma comment(lib, "user32.lib")

BOOL IsRemoteSession(void)
{
   return GetSystemMetrics( SM_REMOTESESSION );
}

FALSE döner mi? (Programlama sorusu değil! Programların terminal sunucusu oturumunda olup olmadıklarını nasıl algıladıklarına bir örnek!)


İki klavyeniz / ekranınız var mı? Lütfen kurulumunuz hakkında biraz daha ayrıntı verin.
harrymc

@harrymc Evet, yaparım. Düzenleme.
sinni800

Uygulamaların, konsol oturumunu kullanırken bile terminal sunucusunda çalışmayı reddetmesinin nedeni, lisans nedenlerinden kaynaklanmaktadır - böylece bir lisans aynı anda birden fazla kişi tarafından kullanılamaz.
paradroid

Yanıtlar:


5

Bu, SoftXpand Duo'nun geliştiricileri olan Miniframe. Terminal Server oturumunda SoftXpand Duo'yu çalıştırmayla ilgili hatanın nasıl çözüleceğine dair bir öneri için Bilgi Bankası'na bakmanızı öneririz:

"Terminal sunucusu oturumunda çalıştırılamaz" hatası nasıl çözülür


Bağlantı çalışmıyor - miniframe.com/component/kb/article/… bu olsa işe yarıyor! Noktalı virgül (;) kullanarak birden çok programa girebilir miyim? Ayrıca, burada, SuperUser'da ilk 125 ününüz olsun! :) Bu sorun için ben de bir e-posta gönderdim, d * is @ e ot.de
sinni800

bu bağlantı da işe yaramazsa
bradgonesurf

8

Bir uygulamanın Terminal Server oturumunda çalışıp çalışmadığını kontrol etmesi için birkaç yol vardır. Bunlardan bazıları, aşağıda belirtildiği gibi kesilebilir:

  1. Kayıt: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\TSAppCompat.
    Bu anahtar masaüstümdeki normal bir oturumda eksik.
    Mümkünse silmeyi deneyebilirsiniz.
  2. OTURUM ADI ortam değişkeni değerleri: Konsol / "RDP #" / (boş).
    Oyununuzu
    SET SESSIONNAME=Console(masaüstü değerim) veya SET SESSIONNAME=(boş) yaptıktan sonra Komut İstemi'nden (cmd) çalıştırmayı deneyebilirsiniz .
    Mevcut değerini bulmak için, SET SESSIONNAMEherhangi bir şeyi değiştirmeden önce girin .
  3. Sistem GetSystemMetrics (SM_REMOTESESSION) çağırır ve GetVersionEx ( OSVERSIONINFOEX.wSuiteMask ) yürütme içeriğini döndürür.
    Buna karşı yapabileceğin bir şey yok, bunun için bir sistem kancası yazmak dışında.
    Bu codeproject.com makalesine bakın: ilgileniyorsanız, açığa çıktı .

Açık 2), oturum adı "konsol" (Ne halt?). Anahtar TSAppCompat da burada eksik. Üçüncüsü hakkında ... Yapması zor görünüyor. Başka bir programın tepesinde oturan ve bahsettiğim gibi sistem çağrılarına müdahale eden bir program yok mu? GetSystemMetrics.
sinni800

Bilginize göre, muhtemelen 3. yöntem GetVersionEx ve GetSystemMetrics için saldırıya değer. Yukarıda bir link ekledim (bir programcı tarafından kullanılacak).
harrymc

Başka bir not: SoftXPand'de MSTSC / admin kullanmanın bir yolu varsa , denemeye değer.
harrymc

@harrymc neden MSTSC / admin? Api çengeline bakacağım ... Programlama yeteneklerim için çok karmaşık olabilir.
sinni800

"MSTSC / admin" oldukça uzun bir atış: biraz farklı bir uzak oturum türüdür, bu yüzden belki bazı programlar onu algılamayabilir.
harrymc

0

Bir çözüm buldum: İstediğiniz programları "runas" ile çalıştırmak

Masaüstünden giriş yaptıktan sonra, şunu cmd yazın:

runas / kullanıcı: YOUR_NAME "YOUR_PROGRAM_PATH"

Bently'in yazılımlarına karşı test ettim ve iyi çalışıyorlar.


Bu terminal sunucusu sorunu giderir? İlginç, denemek zorundayım.
sinni800

Kitle etkisi 3 ile çalışmaz (Bu program uzaktan çalıştırılamaz)
Mgamerz

0

Microsoft Remote Desktop kullanıyorum ve @harrymc tarafından gönderilen ilk 2 yöntemi denedim, ancak benim durumumda çalışmıyorlar. Üçüncüsü benim için çok karmaşık, bu yüzden denemedim.

Sonunda, Paralel Erişim'in hatayı gösteren programı kullanmamı sağladığını buldum. RDP kadar yumuşak değil, bu yüzden gerçekten programı kullanmak zorundaysam kullanırım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.