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

Как определить последний запущенный процесс

23.01.2012, 16:30. Показов 3260. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Подскажите, как можно определить: какой процесс был запущен последним на локальном компьютере? Смысл в том, что в программе, компонентом WebBrowser, открываются файлы "программой по умолчанию", которая может отличаться на разных системах. А мне нужно сразу после запуска, передать этому процессу сообщение (сделать его окно активным, отображаемым на переднем плане).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2012, 16:30
Ответы с готовыми решениями:

Как отрубать текущий процесс если уже есть запущенный экземпляр?
дело происходит на C# при этом хочется, чтобы новая копия процесса перед закрытием себя показывала спрятанное окно старой копии ...

Можно ли как-то узнать, что некий запущенный процесс аварийно завершил работу?
а можно ли как-то узнать, что некий запущенный процесс аварийно завершил работу? (или его принудительно остановили) Сообщения выделены из...

Написать команду в уже запущенный процесс
Добрый день форумчане. Назрел такой вопрос: как написать команду в уже запущенный процесс? Сколько не искал - все бестолку. ...

8
 Аватар для Димон_
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
23.01.2012, 18:26
Вроде есть параметр у process такой, сразу делать активным.
ну и вот такой примерчик
C#
1
2
3
4
5
6
7
[Dlllmport("USER32.DLL")] 
static extern IntPtr FindWindow(string lpClassName, string lpWindowName) ;  
private void Forml_Load(object sender, EventArgs e) 
{ 
Process note = Process.Start("notepad.exe"); 
IntPtr notepadHandle = FindWindow(null, "Блокнот"); 
}
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 12
24.01.2012, 10:32  [ТС]
Димон_, спасибо за пример. Но тут немного не то. Вся проблема в том, что я не знаю каким именно приложением будет открыт файл. Т.е. невозможно заранее знать имя процесса.
0
 Аватар для Димон_
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
24.01.2012, 15:37
тогда смотри параметры класса Process
0
Заблокирован
24.01.2012, 15:46
При запуске программы занести весь список процессов в коллекцию и далее с заданным интервалом периодически проверять процессы, сравнивая их уже с имеющимся списком. Когда появится новый процесс - он и будет последним.
0
 Аватар для Димон_
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
24.01.2012, 16:14
Id,
MainWindowHandle,
ProcessName,

эти совйства тебе помогут + http://msdn.microsoft.com/ru-r... ocess.aspx
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
24.01.2012, 16:46
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
31
32
33
34
35
36
37
using System;
using System.Diagnostics;
 
namespace ConsoleApplication30
{
    class Program
    {
        static void Main ( string[] args )
        {
            while ( true )
            {
                DateTime dt = DateTime.MinValue;
                Process  process = null;
 
                foreach ( var proc in Process.GetProcesses() )
                {
                    try
                    {
                        if ( proc.StartTime > dt )
                        {
                            dt = proc.StartTime;
                            process = proc;
                        }
                    }
                    catch { }
                }
 
                if ( process != null )
                    Console.WriteLine( process.ProcessName );
                else
                    Console.WriteLine( "process == null" );
                Console.ReadKey();
                Console.Clear();
            }
        }
    }
}
Тупо, но вроде работает, главное с правами админа запускать.
0
0 / 0 / 0
Регистрация: 22.04.2011
Сообщений: 12
25.01.2012, 11:12  [ТС]
Спасибо, товарищи. Идеи хорошие, сейчас буду пробовать.
SSTREGG, уже пробовал что-то похожее но не очень удачно. Ваш вариант выглядит убедительнее.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
25.01.2012, 11:40
Цитата Сообщение от =gORB= Посмотреть сообщение
открываются файлы "программой по умолчанию", которая может отличаться на разных системах. А мне нужно сразу после запуска, передать этому процессу сообщение
Можно узнавать программу по умолчанию из реестра (ветка HKEY_CLASSES_ROOT), узнавать из полного пути имя программы и далее делать её активной используя ProcessName.
По поводу реестра, вот описание на MSDN (если не смущает английский), вот описание решения в одном блоге, там на VB, но суть ясна (и опять английский).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2012, 11:40
Помогаю со студенческими работами здесь

Завершить процесс, запущенный от имени другого пользователя
Я сижу с юзера "РЕН", на другом юзере "REN" запущен калькулятор(К примеру). Надо его убить. Но не хватает прав. Process procss =...

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

Существует ли запущенный процесс (Не банально, наверное)
Здравствуйте. Подскажите, пожалуйста, как определить не кильнули ли ещё созданный нами процесс? Что делаю: using...

Process.WaitForExit() - продолжить выполнение основного процесса, если запущенный процесс завершился с ошибкой
написал апдейтер для программы. С помощью другого процесса проверяем наличие обновления, если есть - то закачиваем, и основной процесс...

Последний запущенный процесс (TSR)
Доброго времени суток. Не получается отследить последний запущенный процесс. ax=4B00h - не проверял, перехватываю Int 21h, запускаю и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru