Все мои выводы основывались на экспериментах. Например, как не обзови EXE»шник FlashGet»а — процесс все равно будет называться flashget. Наприме, если обозвать файл, созданный Dephi не Project1.exe, а GGG.exe, то все равно в диспетчере задач он будет отображен как Project1.exe
А коли оно так — логично же сделать вывод, что
>вообще никакой зависимости между именем файла и именем процесса нету
?
не факт. начнем с того.
процесс, прежде всего, — объект ядра ОС
сведения о процессе содержатся далеко не в каком-то одном месте. а фигурируют как в гллоб.сист.таблицах, так и в лок.сист.таблицах данного процесса
хм. Это ведь простой эксперимент, который я проделал два раза. Что значит не факт? И про FlashGet, что он в диспетчере задач всегда называется FlashGet независимо от названия EXE файла — тоже факт. Против эксперимента же не попрешь.
Почему мои эксперименты этого не потверждают?
Если тебе надо изменить название задачи — это очень просто. Для этого (скорее всего) будет достаточно заменить заголовок главного окна процесса (не всегда, как всегда — ч-з API не знаю, для своего процесса в VCL это Application.Title := «. «).
Как поменять название процессора(как дороже продать ноутбук)
Есть допустим пустое приложение Project1.exe
Я переименовываю файл в DDD.exe
Так вот, сторонняя программа Starter действительно начинает отображать процесс как DDD.exe. Но диспетчер задач по прежнему пишет Project1.exe. Откуда он узнает тогда?
Я пошел дальше. Залез HEX редактором в EXE»шник, нашел там единственную строку project1.exe. Переправил ее на что-то типа fbjkbct1.exe. Все равно диспетчер задач показывает Project1.exe
Есть допустим пустое приложение Project1.exe
Я переименовываю файл в DDD.exe
Я же сам EXE»шинк переименовываю (естесственно, когда приложение не запущено). А в диспетчере задач оно все равно по прежнему отображается. Я даже HEX редактором. в общем, читай тот пост
Оказывается, он запоминает в текущем сеансе имена процессов.
потому что Диспетчер выполняет по таймеру обычные снэпшоты и не задействует никакие иные системные механизмы, которые позволили бы отслеживать старты и завершения всех процессов асинхронно.
- Как сгенерировать код в приложении фейсбук
- Amazfit band 5 какое приложение скачать
- Dinoraptzor org приложение не найдено
- Как установить приложение rar
- Running adidas приложение как пользоваться
Источник: telefony-gid.ru
Как изменить имя консольного приложения, отображаемое в диспетчере задач?
Я программно запускаю консольные приложения. Все они отображаются как conhost.exe в диспетчере задач. Как установить имя процесса таким образом, чтобы оно отображалось как таковое в диспетчере задач? Пример того, как я настраиваю свой процесс:
Изменение название видеокарты и процессора
public static Process CreateMultiCoreExeProcess(int coreIndex, int coresToUse, string executableFilepath) < //* Create your Process Process process = new Process < StartInfo = < FileName = executableFilepath, Arguments = coreIndex + » » + coresToUse, UseShellExecute = false, CreateNoWindow = true, RedirectStandardOutput = true, RedirectStandardError = true >, EnableRaisingEvents = true >; return process; >
. как вы видите, нет атрибута, который задает имя процесса (что я знаю).
Я хотел бы иметь возможность задать имя процесса в то время, когда я его создаю. DUPLICATE QUESTION REMARK: это не дубликат, как было предпринято. Решение, представленное как дубликат, относится к имени STATIC для процесса, заданному в свойствах проекта. Я выполняю свой процесс DYNAMICALLY (во время выполнения) и хотел бы установить имя процесса в это время. ОБНОВЛЕНИЕ: Я убежден, что это невозможно.
По крайней мере, не в реалистичном (то есть постоянном) способе. Я вполне уверен, что мы «застреваем» с именем, указанным в информации о сборке, и его невозможно изменить программным путем в диспетчере задач. Это неудачно для моего приложения, которое заключается в том, чтобы создать 10+ идентичных исполняемых файлов процесса. Иногда я хочу убить только одного из них, но я не могу определить, какой-есть-который в диспетчере задач, потому что все они имеют одинаковое имя.
sapbucket 31 дек. 2015, в 00:32
Поделиться
Может кто-то с более высокими разрешениями, чем я, пожалуйста, удалите панель «дубликат вопроса» в верхней части? Ответ на этот вопрос связан с ОПИСАНИЕМ, а не ИМЯ ИЗОБРАЖЕНИЯ. Они не то же самое.
sapbucket 31 дек. 2015, в 17:08
Есть ли другой способ подойти к этому? Возможно ли использовать многопоточность в своей программе вместо запуска нескольких задач? Или, если нет, сохранить коллекцию идентификаторов процессов и завершить их таким образом? Использование имен окон, как правило, не всегда надежно.
Источник: overcoder.net
Как изменить имя консольного приложения, отображаемое в диспетчере задач?
Я программно запускаю консольные приложения. Все они отображаются как conhost.exe в диспетчере задач.
Как установить имя процесса таким образом, чтобы оно отображалось как таковое в диспетчере задач?
Пример того, как я настраиваю свой процесс:
public static Process CreateMultiCoreExeProcess(int coreIndex, int coresToUse, string executableFilepath)
//* Create your Process
Process process = new Process
StartInfo =
FileName = executableFilepath,
Arguments = coreIndex + » » + coresToUse,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardError = true
>,
EnableRaisingEvents = true
>;
return process;
>
. как вы видите, нет атрибута, который задает имя процесса (что я знаю). Я хотел бы иметь возможность задать имя процесса в то время, когда я его создаю.
DUPLICATE QUESTION REMARK: это не дубликат, как было предпринято. Решение, представленное как дубликат, относится к имени STATIC для процесса, заданному в свойствах проекта. Я выполняю свой процесс DYNAMICALLY (во время выполнения) и хотел бы установить имя процесса в это время.
ОБНОВЛЕНИЕ: Я убежден, что это невозможно. По крайней мере, не в реалистичном (то есть постоянном) способе. Я вполне уверен, что мы «застреваем» с именем, указанным в информации о сборке, и его невозможно изменить программным путем в диспетчере задач. Это неудачно для моего приложения, которое заключается в том, чтобы создать 10+ идентичных исполняемых файлов процесса. Иногда я хочу убить только одного из них, но я не могу определить, какой-есть-который в диспетчере задач, потому что все они имеют одинаковое имя.
спросил(а) 2015-12-31T02:20:00+03:00 7 лет, 6 месяцев назад
добавить комментарий
пожаловаться
Вы можете использовать P/Invoke для изменения имени процесса после его создания. (Поскольку вы не можете указать его при его создании. Имя по умолчанию — это имя, указанное в программе.)
[DllImport(«user32.dll»)]
static extern int SetWindowText(IntPtr hWnd, string text);
.
SetWindowText(process.MainWindowHandle, «Process Name/Title»);
Изменить: Оглядываясь в сети, кажется, вам нужно подождать 100 мс или около того, прежде чем устанавливать имя (либо через Thread.Sleep , либо process.WaitForInputIdle в случае приложения GUI).
ответил(а) 2015-12-31T02:34:00+03:00 7 лет, 6 месяцев назад
добавить комментарий
пожаловаться
Используйте строку:
Console.Title = «My Console Application»;
чтобы установить имя консоли
И чтобы установить имя/описание в диспетчере задач, на него был дан ответ еще несколько раз. Проверьте эту ссылку Как установить описание диспетчера задач для моей программы?
ответил(а) 2015-12-31T02:27:00+03:00 7 лет, 6 месяцев назад
добавить комментарий
пожаловаться
Еще в рубрике
Проект экспорта K2, а не элемент
Цвет сканера консоли Java
как написать скоординированный элемент в данную консоль?
Получить версию svn для переменной в post-commit hook
Другие вопросы
Преобразование большого десятичного разряда в строку в консоли Rails
Могу ли я создать консоль как «любой процессор», но заставить ее работать как 32-разрядный в dev?
Отключить отладку Javascript в консоли IE
- Вопросы
- Console
- Как изменить имя консольного приложения, отображаемое в диспетчере задач?
Источник: progi.pro