Вобщем суть такая.
Для работы одной программы нужна другая,но вторая частенько вылетает(закрывается без каких либо ошибок).нужно что бы программа проверяла список запущенных процессов,и если не находит нужный то запускала указанный в настройках.
Так вот хотел спросить на каком языке программирования такое реально осуществить.
и может кто хочет помочь с етим?делаю чисто для себя,так что буду рад любой помощи.
![Фото](http://forum.ee/uploads/profile/photo-18414.jpg?_r=1611573144)
Мини-программа
Started By R3FLeX, ноя 07 2010 03:17
2 ответов в этой теме
#2
Отправлено 07 ноября 2010 - 11:11
Ну вот самый наколеночный пример того как можно это сделать в .NET (я делал, пока пил кофе
) :
Чтобы запустить, нужно скомпилировать. Для этого скачай Microsoft Visual C# 2010 Express
Создай там новый проект (Console Application), в файле Program.cs удали весь код и вставь этот, не забудь поменять в коде данные на свои (путь до программы, имя процесса, аргументы, время проверки). Потом нажми Ctrl + Shift + B или F6 чтобы скомпилировать проект.
Запускать можешь как из Visual Studio с помощью Ctrl + F5, ну или из папки где .exe эта лежит.
Ну и самом собой на компьютере должен быть установлен .NET Framework
![:rolleyes:](https://forum.ee/public/style_emoticons/default/rolleyes.gif)
using System; using System.Diagnostics; using System.Threading; namespace ProcessMonitor { class Program { //имя процесса, которое нужно искать при проверке static string processname = "firefox"; //путь до файла который нужно запустить static string filepath = @"C:\Program Files\Mozilla Firefox\firefox.exe"; //аргументы которые нужно передать static string arguments = "-url http://www.google.com/"; //время которое нужно ждать перед следующей проверкой, в миллисекундах static int sleeptime = 2000; static bool DoRun = true; static void CheckAlive() { while (DoRun) { //Ожидаем указанное кол-во миллисекунд Thread.Sleep(sleeptime); //найдено или нет bool found = false; //получаем список процессов Process[] proc = Process.GetProcesses(); //пробегаемся и ищем наш процесс foreach (Process p in proc) { if (p.ProcessName.Equals(processname)) { //указываем что нашли found = true; } } //а если не нашли if (!found) { //запускаем его Process.Start(filepath, arguments); } } } static void Main(string[] args) { //создаем отдельный поток, чтобы главная консоль не висела Thread worker = new Thread(CheckAlive); //запускаем его worker.Start(); //Ждём нажатия кнопки для выхода Console.ReadKey(true); //выключаем DoRun = false; } } }
Чтобы запустить, нужно скомпилировать. Для этого скачай Microsoft Visual C# 2010 Express
Создай там новый проект (Console Application), в файле Program.cs удали весь код и вставь этот, не забудь поменять в коде данные на свои (путь до программы, имя процесса, аргументы, время проверки). Потом нажми Ctrl + Shift + B или F6 чтобы скомпилировать проект.
Запускать можешь как из Visual Studio с помощью Ctrl + F5, ну или из папки где .exe эта лежит.
Ну и самом собой на компьютере должен быть установлен .NET Framework