Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 7

Поиск запущенной программы по ее имени

21.06.2017, 11:33. Показов 2631. Ответов 5

Студворк — интернет-сервис помощи студентам
Возникла потребность в таких действиях: есть ресурсоемкая программа, которая должна работать, пока не запущен рад других тяжелых программ(игр).Все названия exe-шников будут в текстовом документе.И по таймеру он проверяет, запущено ли одно из этих приложений, и если нет, то запускает свое. и задача кроется в том, как программно получить из диспетчера задач именно имена этих программ, так как по методу
C#
1
ProcessName
выдается несколько другое имя. Иными словами, как получить название нужного ексешника, или вывести из exe файлов то, что выводится в
C#
1
ProcessName
.Пример: exe-"DOOM 4.exe", В диспетчере отображается "DOOM 4" и нужно получить именно эту строку из списка загруженных задач, чтоб сравнить ее.
Если кому поможет, вот мой код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Diagnostics;
using System.IO;
 
namespace controller
{
    class Program
    {
        static void Main(string[] args)
        {
            Timer tmr = new Timer();
            tmr.Elapsed += new ElapsedEventHandler(CheckTheProcess);
            tmr.Interval = 1000;
            tmr.Start();
            Console.ReadKey();
        }
 
        public static void CheckTheProcess(object source, ElapsedEventArgs e)
        {
            Process[] processes = Process.GetProcesses();
            foreach (Process process in processes)
            {
                Console.WriteLine("ID: {0}  Name: {1}", process.Id, process.ProcessName);
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2017, 11:33
Ответы с готовыми решениями:

Узнать pid процесса по имени запущенной программы
Здравствуйте. Проблема такая: нужно из кода узнать PID запущенного процесса, при этом таких процессов может быть много но они с разными...

Поиск программы как по имени окна, так и по процессу
Мне надо сделать поиск программ и если они были запущенны то что то происходило Поиск нужен как по имени окна так и по процессу ...

Показ запущенной программы
И снова вопросик) Как все знают Диспетчере W7 есть такая кнопка Переключится, он показывает программу которая запущена. а у меня проблема...

5
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 161
21.06.2017, 17:09
Если я правильно понял формулировку, то Вам необходимо использовать:
C#
1
2
3
var fileName = process.MainModule.FileName;
var fileInfo = new FileInfo(fileName);
var name = fileInfo.Name // то что нужно
PS приложение должно быть запущено с правами администратора.
0
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 7
21.06.2017, 17:38  [ТС]
Цитата Сообщение от shtuceron Посмотреть сообщение
Если я правильно понял формулировку, то Вам необходимо использовать:
C#
1
2
3
var fileName = process.MainModule.FileName;
var fileInfo = new FileInfo(fileName);
var name = fileInfo.Name // то что нужно
PS приложение должно быть запущено с правами администратора.
после первой строчки вашего кода выходит исключение System.InvalidOperationException: "Нет процессов, связанных с этим объектом." Видимо нужно указать конкретную программу. Вот только как
0
0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 161
21.06.2017, 17:54
А какой "ProcessName" при исключении?
0
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 7
21.06.2017, 19:02  [ТС]
Переформулирую. Мне нужно узнать путь программы из ее процесса. пробовал
C#
1
currproc.MainModule.FileName.ToString()
но призапуске в режиме x32 было типо 32 процесс не может доставать инфу из 64 процесса, а в запуске 64 режима просто отказывало в доступе даже при запуске от админа. что делать.
0
 Аватар для IamRain
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
21.06.2017, 19:31
Соберите приложение под x64 и затем из проводника запустите от имени Администратора.

Добавлено через 17 минут
Вот альтернатива:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private static string GetMainModuleFilepath(int processId)
        {
            string wmiQueryString = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE ProcessId = " + processId;
            using (var searcher = new ManagementObjectSearcher(wmiQueryString))
            {
                using (var results = searcher.Get())
                {
                    ManagementObject mo = results.Cast<ManagementObject>().FirstOrDefault();
                    if (mo != null)
                    {
                        return (string)mo["ExecutablePath"];
                    }
                }
            }
            return null;
        }
Source.
Насчет отказа в доступе, видимо, из-за того что некоторые процессы выполняются от другого пользователя, и у текущего нету необходимых прав на него.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2017, 19:31
Помогаю со студенческими работами здесь

Вылетает из запущенной программы
Нужна помощь, при сборке, все работает, но потом после ввода второго-третьего числа, окно закрывается. Кто подскажет, что делать? Вот...

Определить путь запущенной программы
Добрый вечер. Подскажите пожалуйста, как определить откуда были запущены программы. Раньше данный код работал foreach...

Посчитать CRC32 запущенной программы
Как посчитать контрольную сумму того же exe файла который в данный момент выполняется.

Переименование файла запущенной программы
Подскажите вот у меня есть программа запускаемая через файл с названием timers.exe Я хочу скачать и заменить файл который открыт с тем же...

Как следить за активностью запущенной программы
Доброго времени суток! Необходимо запустить процесс, примером (&quot;notepad&quot;) а затем логировать активность запущенной программы... Типа,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru