C# programın görev yöneticisinden kapanmasını engelleme

hasanustaoglu

Kilopat
Katılım
16 Nisan 2016
Mesajlar
30
Şifreleme programı yaptım. Şifre girilmeden WhatsApp açılmıyor ama görev yöneticisinden uygulamam kapatılabiliyor, bunun kapanmasını nasıl engellerim? C# ile yazıyorum VS2015.
 
Son düzenleyen: Moderatör:
Görev yöneticisinden engellemeniz mümkün değil ancak uygulamayı TopMost = true olacak şekilde ayarlayarak Win32.dll API'yi kullanarak evrensel Windows kısayollarının uygulamanız seçili iken kapanmasını ayarlayabilirsiniz. Köklü bir durum, Görev Yöneticisinin açılabileceği ve ALT + F4 gibi kısayolların çalışmasını teker teker engellemeniz gerekiyor. Uygulamanız açıldığında onun otomatik olarak seçilmesi için Load event'ı veya Constructor'ın içerisinde Focus fonksiyonunu çağırın.

Focus fonksiyonu kullanımı;
C#:
Focus(); /** Veya **/ this.Focus();
 
Engelleyemezsin.
Yahu hiç kodlamadan anlamayan adam gelmiş burada yorum yapıyor. “Engelleyemezsin” ne demek? Mertcan gelmiş açıklamasını düzgünce yapmış. Senin açıklaman ne? Bilmediğimiz konular hakkında yorum yapmayalım lütfen.
 
Artı -1 Eksi
Yahu hiç kodlamadan anlamayan adam gelmiş burada yorum yapıyor. “Engelleyemezsin” ne demek? Mertcan gelmiş açıklamasını düzgünce yapmış. Senin açıklaman ne? Bilmediğimiz konular hakkında yorum yapmayalım lütfen.

hah : )
Meslegim bu benim. Gayet iyi biliyorum, yapamazsin. Daha fazla aciklamaya gerek duymadim, o kadar.

Atip tutuyorsun, nasil yapilabilecegine dair fikrin varsa soyle, bekliyorum.
 
Arkadaşlar böyle bir şey mümkün elimde kod var uygulamayı yönetici olarak başlatman gerekiyor ve görev yöneticisinden kapatmaya kalkıştığında bilgisayarı kapat seçeneği geliyor uygulamaya yazdığınız kapatma koduyla kapatmaya çalışırsanız sistem mavi ekran veriyor ancak doğru kapanması için bilgisayarınızı kapatmanız gerekiyor eğer isterseniz kodları verebilirim.
 
Arkadaşlar böyle bir şey mümkün elimde kod var uygulamayı yönetici olarak başlatman gerekiyor ve görev yöneticisinden kapatmaya kalkıştığında bilgisayarı kapat seçeneği geliyor uygulamaya yazdığınız kapatma koduyla kapatmaya çalışırsanız sistem mavi ekran veriyor ancak doğru kapanması için bilgisayarınızı kapatmanız gerekiyor eğer isterseniz kodları verebilirim.
Verebilir misin? C# öğrendikten sonra çok büyük ihtimalle ihtiyacım olacak.
 
Verebilir misin? C# öğrendikten sonra çok büyük ihtimalle ihtiyacım olacak.
C#:
        [DllImport("ntdll.dll", SetLastError = true)]
        private static extern void RtlSetProcessIsCritical(UInt32 v1, UInt32 v2, UInt32 v3);

        /// <summary>
        /// Flag for maintaining the state of protection.
        /// </summary>
        private static volatile bool s_isProtected = false;

        /// <summary>
        /// For synchronizing our current state.
        /// </summary>
        private static ReaderWriterLockSlim s_isProtectedLock = new ReaderWriterLockSlim();

        /// <summary>
        /// Gets whether or not the host process is currently protected.
        /// </summary>
        public static bool IsProtected
        {
            get
            {
                try
                {
                    s_isProtectedLock.EnterReadLock();

                    return s_isProtected;
                }
                finally
                {
                    s_isProtectedLock.ExitReadLock();
                }
            }
        }

        /// <summary>
        /// If not alreay protected, will make the host process a system-critical process so it
        /// cannot be terminated without causing a shutdown of the entire system.
        /// </summary>
        public static void Protect()
        {
            try
            {
                s_isProtectedLock.EnterWriteLock();

                if(!s_isProtected)
                {
                    System.Diagnostics.Process.EnterDebugMode();
                    RtlSetProcessIsCritical(1, 0, 0);
                    s_isProtected = true;
                }
            }
            finally
            {
                s_isProtectedLock.ExitWriteLock();
            }
        }

        /// <summary>
        /// If already protected, will remove protection from the host process, so that it will no
        /// longer be a system-critical process and thus will be able to shut down safely.
        /// </summary>
        public static void Unprotect()
        {
            try
            {
                s_isProtectedLock.EnterWriteLock();

                if(s_isProtected)
                {
                    RtlSetProcessIsCritical(0, 0, 0);
                    s_isProtected = false;
                }
            }
            finally
            {
                s_isProtectedLock.ExitWriteLock();
            }
        }
Başlatmak için "Protect();" durdurmak için "Unprotect();" kodlarını kullan çok dikkatli kullan sonra mavi ekran yeme veya pcni kapatmak zorunda kalma herhangi bir sorun olursa yakın bir zamanda cevaplayacağım.
 

Yeni konular

Geri
Yukarı