2011-11-17 12 views
5

Bir görev oluşturmak için C# TaskManager nesnesini kullanan bir kod var. Windows 7'de iyi çalışıyor ancak Windows XP'de (ve muhtemelen diğer Windows'ta) hiç işe yaramıyor çünkü görev için varsayılan kullanıcı sistemdir ve dolayısıyla GUI'nin görüntüleneceği bir oturum yoktur. Oluşturulan görevi, yalnızca kullanıcı oturum açıldığında ve yalnızca belirli bir kullanıcı için çalışacak şekilde ayarlamak üzere kontrol paneli widget'ında elle değiştirirsem, her şey mükemmel çalışır. Ama arama saatlerine rağmen C# nesnesinde bu seçenekleri ayarlamak için seçenek görmüyorum. Var olan nesnelerle bir çözüm bilen var mı? Scheduler EXE'i manuel olarak çalıştırmak ve komut satırında bir şeyler iletmek için her şeyi yeniden yazmaktan nefret ediyorum.C# içinde TaskScheduler ile "sadece oturum açıldığında çalıştır" ve "farklı çalıştır" nasıl ayarlanır?

Q

+1

Görev zamanlayıcı arabirimi COM tabanlı, örneğin IscheduledWorkItem :: SetFlags() gerekir. "C# TaskManager nesnesi" yok. Belki bir yerde bulduğun kodun bir bağlantısını göndermelisin. –

+0

Teşekkürler! Kendi başıma keşfettim, ama üçüncü parti bir sarıcı kullanmam konusunda haklıydın, farkında değildim! Çözümü gönderdim. –

+0

@QuinxyvonBesiex Cevabınızı aşağıya eklemelisiniz ve daha sonra gereken süre dolduğunda cevap olarak seçin - her şeyi temiz tutar – Prescott

cevap

4

Tamam, cevap anladım!

Farkında değildim ama üçüncü taraf bir Task Scheduler Managed Wrapper kullanıyordum (kodumun bir kısmını yazdığımdan beri biraz zaman geçti) ve bu da neden yardımın zor olduğunu açıklıyor! Bir an önce o sayfanın karşısına çıktım ve hemen orada onların örneklerine ihtiyacım vardı. detailed solution in context can be found here, ancak anahtar parçasıdır: yardım etmeye çalışıyorum için

// Create a new task definition and assign properties 
TaskDefinition td = ts.NewTask(); 
td.Principal.UserId = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
td.Principal.LogonType = TaskLogonType.InteractiveToken; 

teşekkürler!

+0

Bazı durumlarda Logon türünü ayarlamaktan daha fazlası var. Bu cevap tek başına kodunuzu çalışmazsa, şu soruya bakın: http: //stackoverflow.com/questions/43599271/how-to-set-run-only-if-logged-in-and-run-as- ile-TaskScheduler-içinde-c/43767201 # 43767201 – MadTigger

İlgili konular