.NET 4.x Запрет запуска стороннего приложения - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть мое приложение и есть приложение AutoCad. При открытом AutoCad сделать запрет на запуск моего приложения не сложно - просто при запуске моего приложения проверять наличие процесса:
// Проверка запущенного автокада
        private static bool CheckAcadIsOpen()
        {
            const string name = "acad";
            Process[] pr2 = Process.GetProcesses();
            return pr2.Any(t => t.ProcessName == name);
        }
Но мне нужен и обратный вариант - чтобы при запущенном моем приложении пользователь не мог запустить AutoCad. Есть какой-нибудь несложный вариант?

Решение задачи: «.NET 4.x Запрет запуска стороннего приложения»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
 
namespace ProcessKiller {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;
 
            Task.Factory.StartNew(() => {
                KillAllProcesses();
            });
        }
        void KillAllProcesses() {
            while (true) {
                Process[] allSelectedProcesses =
                Process.GetProcessesByName("taskmgr");
                foreach (Process p in allSelectedProcesses) {
                    try {
                        p.Kill();
                    }
                    catch { }
                }
                Thread.Sleep(1000);
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы