Перейти к содержимому

Как переименовать процесс в диспетчере задач

  • автор:

Как поменять название программы в диспетчере задач?

Как сделать, чтобы диспетчер задач писал не скучное myprog , просто имя файла, а как для приличных программ — Superprog of Mikhajlo . Как я понимаю, это где-то в ресурсах VERSIONINFO , но как не ковырялся, не могу этого добиться — myprog и все тут. Как выглядит минимальный пример такого .rc-файла, чтоб писал Superprog ?

Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 13 дек 2020 в 16:23
12.5k 2 2 золотых знака 19 19 серебряных знаков 44 44 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

введите сюда описание изображения

Создаете файл ресурса .rc, открываете его в редакторе ресурсов, щелкаете правой кнопкой -> Добавить ресурс -> Version. Редактируете поле File Description, сохраняете, компилируете

получается вот так

Прикладываю Resource.rc, сгенерированный вижаком

// Microsoft Visual C++ generated resource script. // #include "resource1.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Русский (Россия) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT #pragma code_page(1251) #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource1.h\0" END 2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "041904b0" BEGIN VALUE "CompanyName", "TODO: " VALUE "FileDescription", "kek" VALUE "FileVersion", "1.0.0.1" VALUE "InternalName", "C++proj" VALUE "LegalCopyright", "Copyright (C) 2020" VALUE "OriginalFilename", "C++proj.exe" VALUE "ProductName", "TODO: " VALUE "ProductVersion", "1.0.0.1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x419, 1200 END END #endif // Русский (Россия) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED 

AHK: Как переименовать процесс?

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

2 Ответ от teadrinker 2020-12-27 22:30:44

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Насколько я знаю, нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 Ответ от Foma 2020-12-28 17:31:25

Re: AHK: Как переименовать процесс?

Даже запуская из AHK само приложение? Простая смена имени исполняемого файла не помогла.

4 Ответ от teadrinker 2020-12-28 17:40:55

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Не очень понял, что вы пытаетесь сделать. Обычно название процесса соответствует названию исполняемого файла.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 Ответ от Botsy 2020-12-28 17:52:34

Re: AHK: Как переименовать процесс?

Похоже на червя, имя которого надо изменить. Не легче просто спрятать имя процесса ?

6 Ответ от Foma 2020-12-28 20:00:35

Re: AHK: Как переименовать процесс?

Нет, ничего крамольного и криминального. Я чту уголовный кодекс. )
Запускаю у себя, а прячу от программы, которой не стоит знать про существование этого процесса.
Имя процесса соответствует имени файла, но при переименовании файла имя процесса не меняется.
Может его и можно скрыть в «Диспетчере задач», но значит ли это, что часть программы, которая несомненно будет искать этот процесс, не определит наличие процесса?

7 Ответ от ypppu 2020-12-28 20:53:45

  • ypppu
  • Разработчик
  • Неактивен

Re: AHK: Как переименовать процесс?

Возможно, исполняемый файл не является основной программой, а лишь запускает какую-то другую программу. Потому имя процесса незнакомое.

8 Ответ от teadrinker 2020-12-28 21:09:58

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Из Диспетчера Задач можно открыть место хранения файла, создавшего процесс.

Как переименовать процесс в диспетчере задач


Volkov ( 2003-12-30 00:47 ) [0]

Чужого. Возможно ли это? И как реализовать?


Германн © ( 2003-12-30 01:37 ) [1]

А что собс-но подразумевается под «именем процесса»?


Digitman © ( 2003-12-30 08:45 ) [2]

зачем ?


Anatoly Podgoretsky © ( 2003-12-30 09:06 ) [3]

Родное не нравится, некрасивое оно.


Volkov ( 2003-12-30 11:18 ) [4]

А обязательно отвечать на вопрос зачем? Можно или нельзя это сделать?

от этого зависит возможность или невозможность «решения»


Digitman © ( 2003-12-30 11:28 ) [6]

кстати, вопрос тебе ч.н. «в лоб» : если в ходе работы процесса его код.потокам требуется загрузка неких ресурсов из «своего» исп.файла, то как ты думаешь, ГДЕ и КАК система будет искать эти ресурсы, если ты по какой-либо блажи умудришься изменить имя процесса, которое всегда совпадает с именем соотв.файла ? ты вообще над этим кумекал, прежде чем задавать вопрос ?


Volkov ( 2003-12-30 15:49 ) [7]

Digitman, ну зачем так злиться? Если ты считаешь, что я очередной трояностроитель (только как такое может помочь при написании трояна?) — то, конечно, не отвечай. Если же ты считаешь возможным помочь и знаешь как — помоги.

>Digitman © (30.12.03 11:28) [6]
1) Ну если там будут ресурсы. я не думал особенно, но ведь наверняка адреса ресурсов зашиты в виде указателя на некую область, ему нужно будет найти ресурсы в своем адресном пространстве, при чем здесь тогда как называется процесс? Мне кажется это ни на что не повлияет. Или я не прав?

2) А разве имя процесса совпадает с именем исполняемого файла?


Volkov ( 2003-12-30 15:52 ) [8]

>А разве имя процесса совпадает с именем исполняемого файла?

я тут подумал — конечно, нет. Это дельфи называет процесс по имени проекта, по имени исполняемого файла. А вообще никакой зависимости между именем файла и именем процесса нету


Digitman © ( 2003-12-30 16:05 ) [9]


> А вообще никакой зависимости между именем файла и именем
> процесса нету

абсолютно неверное утверждение
и ни делфи ни иная среда разработки приложений для Win32 здесь абсолютно ни при чем


> Если ты считаешь

я считаю, что коль ты не объяснил цели решаемой задачи, то это — при отсутствии элдементарных знаний Win32-платформы — просто блажь

и ни «трояны» ни что-то иное здесь ни при чем — пиши себе на здоровье). но коль полез в такие дебри — изволь честно сказать, мол, я не представляю, что из себя представляет «имя процесса» в недрах ОС, объясните, мол, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это, мол, связано с тем что я вижу в пресловутом TaskManager


YuRock © ( 2003-12-30 16:09 ) [10]

Можешь изменить имя экзешника через RenameFile :)) (конечно, если процесс не запущен)


Volkov ( 2003-12-30 16:22 ) [11]

Digitman. Конечно, я ламер. Я признаюсь! Но я думал, это очевидно понятно. Я нигде не говорил, что спец.

Все мои выводы основывались на экспериментах. Например, как не обзови EXE»шник FlashGet»а — процесс все равно будет называться flashget. Наприме, если обозвать файл, созданный Dephi не Project1.exe, а GGG.exe, то все равно в диспетчере задач он будет отображен как Project1.exe
А коли оно так — логично же сделать вывод, что
>вообще никакой зависимости между именем файла и именем процесса нету
?

я не представляю, что из себя представляет «имя процесса» в недрах ОС, объясните, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это связано с тем что я вижу в пресловутом TaskManager ?


Digitman © ( 2003-12-30 16:36 ) [12]


> Наприме, если обозвать файл, созданный Dephi не Project1.exe,
> а GGG.exe, то все равно в диспетчере задач он будет отображен
> как Project1.exe

не факт. начнем с того.

имя прикладного процесса всегда совпадает с именем exe-файла, на основании существования которого система инициализирует и стартует процесс


Digitman © ( 2003-12-30 16:40 ) [13]


> я не представляю

процесс, прежде всего, — объект ядра ОС

сведения о процессе содержатся далеко не в каком-то одном месте. а фигурируют как в гллоб.сист.таблицах, так и в лок.сист.таблицах данного процесса

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


Volkov ( 2003-12-30 16:44 ) [14]

>не факт. начнем с того

хм. Это ведь простой эксперимент, который я проделал два раза. Что значит не факт? И про FlashGet, что он в диспетчере задач всегда называется FlashGet независимо от названия EXE файла — тоже факт. Против эксперимента же не попрешь.

имя прикладного процесса всегда совпадает с именем exe-файла, на основании существования которого система инициализирует и стартует процесс

Почему мои эксперименты этого не потверждают?


YuRock © ( 2003-12-30 16:45 ) [15]

> Например, как не обзови EXE»шник FlashGet»а — процесс все равно будет называться flashget
Application.Title и Application.ExeName (название задачи и имя процесса) — разные вещи.

Если тебе надо изменить название задачи — это очень просто. Для этого (скорее всего) будет достаточно заменить заголовок главного окна процесса (не всегда, как всегда — ч-з API не знаю, для своего процесса в VCL это Application.Title := «. «).

Если же ты хочешь менять именно имя процесса (причем динамически), то не знаю, возможно ли это.


YuRock © ( 2003-12-30 16:47 ) [16]

Т.е., если хочешь изменить имя задачи, то найди handle главного окна, а затем напиши SetWindowText(hWnd, «. «)


Volkov ( 2003-12-30 16:51 ) [17]

Digitman, обнаружил еще более странную вещь.

Есть допустим пустое приложение Project1.exe

Я переименовываю файл в DDD.exe

Так вот, сторонняя программа Starter действительно начинает отображать процесс как DDD.exe. Но диспетчер задач по прежнему пишет Project1.exe. Откуда он узнает тогда?

Я пошел дальше. Залез HEX редактором в EXE»шник, нашел там единственную строку project1.exe. Переправил ее на что-то типа fbjkbct1.exe. Все равно диспетчер задач показывает Project1.exe

Теперь понятно — меня просто Диспетчер задач ввел в заблуждение. но как он узнает имя?


Digitman © ( 2003-12-30 16:53 ) [18]


> Volkov

имя процесса и имя гл.окна приложения — совершенно разные вещи и сущности


YuRock © ( 2003-12-30 16:59 ) [19]

Для того, чтобы увидеть список процессов (а не список задач), нажми [Ctrl+Shift+Escape] (если у тебя NT или 2K или XP или 03), а если нет — зайди в фар, нажми F11, выбери «Список процессов»


Volkov ( 2003-12-30 17:46 ) [20]

Digitman © (30.12.03 16:53) [18]
до этого я тебя вроде как понимаю. Теперь перестаю, с чего ты вдруг заговорил про имя гл.окна приложения ?

Перечитай, что я пишу. Особенно пост Volkov (30.12.03 16:51) [17]

Есть допустим пустое приложение Project1.exe

Я переименовываю файл в DDD.exe

Я же сам EXE»шинк переименовываю (естесственно, когда приложение не запущено). А в диспетчере задач оно все равно по прежнему отображается. Я даже HEX редактором. в общем, читай тот пост

YuRock, не учи, пожалуйста. Я и так список процессов смотрю.


YuRock © ( 2003-12-30 18:00 ) [21]

> YuRock, не учи, пожалуйста. Я и так список процессов смотрю.
Ну ладно, все, извините.


Digitman © ( 2003-12-30 18:01 ) [22]


> Volkov (30.12.03 17:46) [20]

хорошо.
в это, конечно, я не верю , но — ты в состоянии привести текст того самого проекта, который якобы выкидывает подобные «чудеса» под «лупой» станд. Диспетчера задач ? Что он делает хотя бы ? По логике ?


Volkov ( 2003-12-30 18:02 ) [23]

Digitman, понял наконец такое странное поведение Диспетчера задач.

Оказывается, он запоминает в текущем сеансе имена процессов.

Например, есть файл AAA.exe
Ты его запускаешь, процесс показывается как AAA.exe — все верно. Но с этой поры как бы ты не переименовывал EXE»шник (после того как завершишь процесс, конечно), все равно при запуске процесс будет отображаться как AAA.exe
Например, ты можешь его переименовать в BBB.exe — все равно при запуске процесс будет AAA.exe.
Если же ты файл не запускал до этого, то переименуешь его в BBB.exe — и процесс после запуска будет называться BBB.exe. После работы ты уже этот BBB.exe можешь переименовывать как угодно. Теперь процесс этого EXE»шника все равно будет называться BBB.exe до перезапуска винды.
Вот такая еще обна странная особенность диспетчера задач.


Volkov ( 2003-12-30 18:05 ) [24]

Win2k+SP4 — я проверял, все верно. Эксперименты подтверждают


Volkov ( 2003-12-30 18:08 ) [25]

объясните, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это связано с тем что я вижу в пресловутом TaskManager .


Digitman © ( 2003-12-30 18:12 ) [26]


> Вот такая еще обна странная особенность диспетчера задач

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

такой же Диспетчер вполне можно слепить самому за час


@ndrey © ( 2004-01-05 16:38 ) [29]

Дать прогу?


Игорь Шевченко © ( 2004-01-05 17:11 ) [30]

К диспетчеру задач это поведение не относится (с переименованным файлом). Имя процесса выдается функцией NtQuerySystemInformation, Process Explorer и аналогичный, написанный за час диспетчер задач (лежит в кладовке) показывает то имя процесса, который был запущен первый раз до переименования. Командная строка у них, разумеется, разная, там имя файла правильное получается. Объяснение этому факту дать сразу не могу 🙂


Германн © ( 2004-01-06 04:42 ) [31]

Это я так. Просто интересно. А если от NT перейти к 9x? Что будет?


SammIk © ( 2004-01-24 16:54 ) [32]

Вот ребяты смотрю сюда и ни*ра не понимаю.
У меня ничего подобного не наблюдается.
Беру фаил AAA.exe запускаю, смотрю в TMen. там AAA.exe
Переименовываю в BBB.exe, смотрю, опа, а там BBB.exe?!)
Проверял первое не выгружая Таск мен, и выгружая перед переименованием.
И хде вы такое увидили?
ЗА win2k sp2


DVM © ( 2004-01-24 23:48 ) [33]


> Командная строка у них, разумеется, разная, там имя файла
> правильное получается. Объяснение этому факту дать сразу
> не могу 🙂

Может дело в кэшировании? Запускается на выполнение по сути один и тот же исполняемый файл, хоть его и переименовали, на диске он находится в том же самом месте и вместо считывания с диска берется из кэша. Я могу конечно ошибаться, но очень похоже на то.

Переименование процессов в Python

Когда пишешь многопроцессное приложение на питоне хочется иметь какой-то максимально простой способ мониторинга за работой отдельных процессов. Я сейчас не говорю про детальные аналитические отчеты на 10 страницах, а про получение минимальной информации о здоровьи и работе каждого процесса: чем он сейчас занят, насколько грузит систему, сколько памяти отожрал и т.п. Примерно как nginx или postgres сообщают о себе: одного взгляда в top либо ps достаточно, чтобы понять что и как делает каждый процесс.
Осталось разобраться как это можно сделать в питоне на ОС Linux (на примере Debian и FC).

В поисках решения:
Увы, решить проблему «одним наскоком» не удалось — какого-то готового решения не существовало. Это было для меня странно: такой развитый язык, огромное коммунити, первые сообщения об успешном запуске в космос переименовании процесса датированы чуть ли не 2003 годом. И вот спустя пять лет еще нет хорошего готового решения. Были ссылки на умершие проекты, рецепты, разнозненные куски кода. Кроме того, выяснилось, что top и ps, которые мне всегда казались братьями-близнецами, имеют разные взгляды на то, откуда надо брать название процесса для показа. А значит, по-хорошему, надо для каждого из них проводить отдельное переименование.

Анализ исходников показал: чтобы успешно переименовать процесс нужно сделать два действия — заменить его название в argv[0], а так же сделать системный вызов с новым именем. Сделать такое на C — как два байта переслать, а вот на питоне это становится задачкой со звездочкой. К счастью, питон хорошо интегрируется с C и нам нужно сделать библиотечный вызов. Увы, со стандартными средствами типа dl дело не заладилось — оказалось, что эта библиотека стандартна только для 32-битного дебиана, а в 64-битном ее нет даже в расширенных пакетах. Нашелся такой пакет для сусяшки (suse), но, пардон, варить жуткую кашу из разнородных пакетов на своей системе совсем не хочется. Альтернативная либа ctypes (само название которой говорит само за себя), увы, тоже не помогла. Из экзотики могу еще отметить решение на PyInline — компиляция куска С-шного кода в питоновский модуль по ходу выполнения программы с загрузкой этого модуля. Но от такого «интерпретируемого С» волосы встают дыбом! И, как оказалось, не зря — программа захворала. Примерно в половине случаев запуск заканчивался выпадением даже не в traceback, а сразу в кору с вываливанием кишок стека на 3 экрана. Может дело было и не в самом инлайне — просто в объемной программе всегда есть коктейль из модулей, с которыми он мог конфликтовать, а в жизни есть более интересные и важные задачи, чем разгребание этих конфликтов.

Решение:
В конце концов меня утомили эти заигрывания С-шным кодом. Если уже и так понятно, что надо писать главную рабочую часть на Сях, то нафик эти костыли и прокладки! Лучше сразу сделать честый С-шный код и дать ему интерфейсы к питону — то бишь сделать такой модуль.

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

Спасибо, Гвидо! Где можно записаться в армию твоих фанатов? 🙂

В итоге все получилось просто и красиво: исходный код ровно на 1 страницу + коротенький Makefile для сборки. После компиляции получается so-файл размером около 7К.

Использование
Проще простого:

>>> import procname
>>> procname.getprocname() # получить текущее имя процесса
‘python’
>>> procname.setprocname(‘Bla-bla test’) # дать новое имя процесса — проверьте в top и ps!
# снова можно посмотреть имя процесса
>>> procname.getprocname()
‘Bla-bla test’

Где взять и как собрать?
Я выложил проект на гугль-код: code.google.com/p/procname
Скачайте исходники во временную папку, а дальше как обычно:

$ tar -zxf procname-XX.tar.gz
$ cd procname-XX
$ make

После этого у вас в текущей папке должен оказаться файл procname.so — скопируйте его в папку своей программы либо, если хотите, чтобы либу можно было использовать в любой программе, то в папку /usr/lib/python2.5/site-packages
Если вместо файла выдаются какие-то ошибки, проверьте есть ли у вас все необходимое. Для сборки потребуется пакет python-devel, make (тот который gnu) и, конечно, компилятор gcc 🙂
Скорее всего проблема будет в неверном указании местонахождения заголовочных файлов Python.h и sys/prctl.h. Найдите их поиском и укажите папку в файле Makefile. Если не поможет — пишите сюда будем разбираться вместе.

Отказ от ответственности:
Как обычно в таких случаях, данная библиотека предоставляется «как есть». Я не гарантирую ничего: в т.ч. что она у вас заработает, будет работать правильно, или хотя бы соберется. А так же то, что ваш сервер не превратится в Большой Андронный Коллайдер и не поглотит все в радиусе 100 миль.
От себя добавлю, что либа протестирована на Debian (32- и 64-bit), FedoraCore (все с ядрами ветки 2.6). Я использую либу почти месяц на «боевом» сервере.

Как насчет других *nix?
В других unix-ах организовано немного по-другому. В частности во FreeBSD есть специальный системный вызов setproctitle, позволяющий задать имя процесса для отображения в ps. Там же, кстати, указывается на его нестандартность. Впрочем аналог есть в AltLinux. В Debian ситуация непонятная, хотя вроде как Дмитрий из Альтов портировал свою либу, но я не смог ее обнаружить в etch и lenny.

Как я это использую на практике?
В моей программе каждый процесс в один момент времени обрабатывает одну задачу. При запуске он первым делом переименовывается, ставя себе в имя нечто вроде номер задачи и статус, примерно так: ‘ICd: 7562 — starting‘. Далее при каждом важном событии (напрмиер, смена статуса, новая задача, получение сигнала от ОС и т.п.) он снова переименовывается. В итоге я вижу ход обработки каждой задачи, могу своевременно обнаруживать аномалии в потреблении ресурсов, замедлении обработки, повторах и т.п. и вовремя на них реагировать.

Вывод
Мониторинг процессов стал приятным занятием — запускаешь top, откидываешься в кресле и наблюдаешь как твои «питошки» радостно вгрызаются в данные 🙂

Вообще, на мой взгляд было бы правильно сделать такую универсальную питоновскую библиотеку, чтобы на любом линуксе и фришке можно было свободно работать с именами процессов, не привязываясь к тому, как это реализовано. А может даже и на винде!

Буду рад любым замечаниям, предложениям, идеям.

P.S. Большое спасибо всем, кто помог в подготовке данной статьи к публикации на Хабре. Без вас она была бы невозможна!

Как поменять название программы в диспетчере задач?

Как сделать, чтобы диспетчер задач писал не скучное myprog , просто имя файла, а как для приличных программ — Superprog of Mikhajlo . Как я понимаю, это где-то в ресурсах VERSIONINFO , но как не ковырялся, не могу этого добиться — myprog и все тут. Как выглядит минимальный пример такого .rc-файла, чтоб писал Superprog ?

Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 13 дек 2020 в 16:23
12.5k 2 2 золотых знака 19 19 серебряных знаков 44 44 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

введите сюда описание изображения

Создаете файл ресурса .rc, открываете его в редакторе ресурсов, щелкаете правой кнопкой -> Добавить ресурс -> Version. Редактируете поле File Description, сохраняете, компилируете

получается вот так

Прикладываю Resource.rc, сгенерированный вижаком

// Microsoft Visual C++ generated resource script. // #include "resource1.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Русский (Россия) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT #pragma code_page(1251) #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource1.h\0" END 2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "041904b0" BEGIN VALUE "CompanyName", "TODO: " VALUE "FileDescription", "kek" VALUE "FileVersion", "1.0.0.1" VALUE "InternalName", "C++proj" VALUE "LegalCopyright", "Copyright (C) 2020" VALUE "OriginalFilename", "C++proj.exe" VALUE "ProductName", "TODO: " VALUE "ProductVersion", "1.0.0.1" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x419, 1200 END END #endif // Русский (Россия) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED 

Как переименовать процесс в диспетчере задач


Volkov ( 2003-12-30 00:47 ) [0]

Чужого. Возможно ли это? И как реализовать?


Германн © ( 2003-12-30 01:37 ) [1]

А что собс-но подразумевается под «именем процесса»?


Digitman © ( 2003-12-30 08:45 ) [2]

зачем ?


Anatoly Podgoretsky © ( 2003-12-30 09:06 ) [3]

Родное не нравится, некрасивое оно.


Volkov ( 2003-12-30 11:18 ) [4]

А обязательно отвечать на вопрос зачем? Можно или нельзя это сделать?

от этого зависит возможность или невозможность «решения»


Digitman © ( 2003-12-30 11:28 ) [6]

кстати, вопрос тебе ч.н. «в лоб» : если в ходе работы процесса его код.потокам требуется загрузка неких ресурсов из «своего» исп.файла, то как ты думаешь, ГДЕ и КАК система будет искать эти ресурсы, если ты по какой-либо блажи умудришься изменить имя процесса, которое всегда совпадает с именем соотв.файла ? ты вообще над этим кумекал, прежде чем задавать вопрос ?


Volkov ( 2003-12-30 15:49 ) [7]

Digitman, ну зачем так злиться? Если ты считаешь, что я очередной трояностроитель (только как такое может помочь при написании трояна?) — то, конечно, не отвечай. Если же ты считаешь возможным помочь и знаешь как — помоги.

>Digitman © (30.12.03 11:28) [6]
1) Ну если там будут ресурсы. я не думал особенно, но ведь наверняка адреса ресурсов зашиты в виде указателя на некую область, ему нужно будет найти ресурсы в своем адресном пространстве, при чем здесь тогда как называется процесс? Мне кажется это ни на что не повлияет. Или я не прав?

2) А разве имя процесса совпадает с именем исполняемого файла?


Volkov ( 2003-12-30 15:52 ) [8]

>А разве имя процесса совпадает с именем исполняемого файла?

я тут подумал — конечно, нет. Это дельфи называет процесс по имени проекта, по имени исполняемого файла. А вообще никакой зависимости между именем файла и именем процесса нету


Digitman © ( 2003-12-30 16:05 ) [9]


> А вообще никакой зависимости между именем файла и именем
> процесса нету

абсолютно неверное утверждение
и ни делфи ни иная среда разработки приложений для Win32 здесь абсолютно ни при чем


> Если ты считаешь

я считаю, что коль ты не объяснил цели решаемой задачи, то это — при отсутствии элдементарных знаний Win32-платформы — просто блажь

и ни «трояны» ни что-то иное здесь ни при чем — пиши себе на здоровье). но коль полез в такие дебри — изволь честно сказать, мол, я не представляю, что из себя представляет «имя процесса» в недрах ОС, объясните, мол, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это, мол, связано с тем что я вижу в пресловутом TaskManager


YuRock © ( 2003-12-30 16:09 ) [10]

Можешь изменить имя экзешника через RenameFile :)) (конечно, если процесс не запущен)


Volkov ( 2003-12-30 16:22 ) [11]

Digitman. Конечно, я ламер. Я признаюсь! Но я думал, это очевидно понятно. Я нигде не говорил, что спец.

Все мои выводы основывались на экспериментах. Например, как не обзови EXE»шник FlashGet»а — процесс все равно будет называться flashget. Наприме, если обозвать файл, созданный Dephi не Project1.exe, а GGG.exe, то все равно в диспетчере задач он будет отображен как Project1.exe
А коли оно так — логично же сделать вывод, что
>вообще никакой зависимости между именем файла и именем процесса нету
?

я не представляю, что из себя представляет «имя процесса» в недрах ОС, объясните, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это связано с тем что я вижу в пресловутом TaskManager ?


Digitman © ( 2003-12-30 16:36 ) [12]


> Наприме, если обозвать файл, созданный Dephi не Project1.exe,
> а GGG.exe, то все равно в диспетчере задач он будет отображен
> как Project1.exe

не факт. начнем с того.

имя прикладного процесса всегда совпадает с именем exe-файла, на основании существования которого система инициализирует и стартует процесс


Digitman © ( 2003-12-30 16:40 ) [13]


> я не представляю

процесс, прежде всего, — объект ядра ОС

сведения о процессе содержатся далеко не в каком-то одном месте. а фигурируют как в гллоб.сист.таблицах, так и в лок.сист.таблицах данного процесса

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


Volkov ( 2003-12-30 16:44 ) [14]

>не факт. начнем с того

хм. Это ведь простой эксперимент, который я проделал два раза. Что значит не факт? И про FlashGet, что он в диспетчере задач всегда называется FlashGet независимо от названия EXE файла — тоже факт. Против эксперимента же не попрешь.

имя прикладного процесса всегда совпадает с именем exe-файла, на основании существования которого система инициализирует и стартует процесс

Почему мои эксперименты этого не потверждают?


YuRock © ( 2003-12-30 16:45 ) [15]

> Например, как не обзови EXE»шник FlashGet»а — процесс все равно будет называться flashget
Application.Title и Application.ExeName (название задачи и имя процесса) — разные вещи.

Если тебе надо изменить название задачи — это очень просто. Для этого (скорее всего) будет достаточно заменить заголовок главного окна процесса (не всегда, как всегда — ч-з API не знаю, для своего процесса в VCL это Application.Title := «. «).

Если же ты хочешь менять именно имя процесса (причем динамически), то не знаю, возможно ли это.


YuRock © ( 2003-12-30 16:47 ) [16]

Т.е., если хочешь изменить имя задачи, то найди handle главного окна, а затем напиши SetWindowText(hWnd, «. «)


Volkov ( 2003-12-30 16:51 ) [17]

Digitman, обнаружил еще более странную вещь.

Есть допустим пустое приложение Project1.exe

Я переименовываю файл в DDD.exe

Так вот, сторонняя программа Starter действительно начинает отображать процесс как DDD.exe. Но диспетчер задач по прежнему пишет Project1.exe. Откуда он узнает тогда?

Я пошел дальше. Залез HEX редактором в EXE»шник, нашел там единственную строку project1.exe. Переправил ее на что-то типа fbjkbct1.exe. Все равно диспетчер задач показывает Project1.exe

Теперь понятно — меня просто Диспетчер задач ввел в заблуждение. но как он узнает имя?


Digitman © ( 2003-12-30 16:53 ) [18]


> Volkov

имя процесса и имя гл.окна приложения — совершенно разные вещи и сущности


YuRock © ( 2003-12-30 16:59 ) [19]

Для того, чтобы увидеть список процессов (а не список задач), нажми [Ctrl+Shift+Escape] (если у тебя NT или 2K или XP или 03), а если нет — зайди в фар, нажми F11, выбери «Список процессов»


Volkov ( 2003-12-30 17:46 ) [20]

Digitman © (30.12.03 16:53) [18]
до этого я тебя вроде как понимаю. Теперь перестаю, с чего ты вдруг заговорил про имя гл.окна приложения ?

Перечитай, что я пишу. Особенно пост Volkov (30.12.03 16:51) [17]

Есть допустим пустое приложение Project1.exe

Я переименовываю файл в DDD.exe

Я же сам EXE»шинк переименовываю (естесственно, когда приложение не запущено). А в диспетчере задач оно все равно по прежнему отображается. Я даже HEX редактором. в общем, читай тот пост

YuRock, не учи, пожалуйста. Я и так список процессов смотрю.


YuRock © ( 2003-12-30 18:00 ) [21]

> YuRock, не учи, пожалуйста. Я и так список процессов смотрю.
Ну ладно, все, извините.


Digitman © ( 2003-12-30 18:01 ) [22]


> Volkov (30.12.03 17:46) [20]

хорошо.
в это, конечно, я не верю , но — ты в состоянии привести текст того самого проекта, который якобы выкидывает подобные «чудеса» под «лупой» станд. Диспетчера задач ? Что он делает хотя бы ? По логике ?


Volkov ( 2003-12-30 18:02 ) [23]

Digitman, понял наконец такое странное поведение Диспетчера задач.

Оказывается, он запоминает в текущем сеансе имена процессов.

Например, есть файл AAA.exe
Ты его запускаешь, процесс показывается как AAA.exe — все верно. Но с этой поры как бы ты не переименовывал EXE»шник (после того как завершишь процесс, конечно), все равно при запуске процесс будет отображаться как AAA.exe
Например, ты можешь его переименовать в BBB.exe — все равно при запуске процесс будет AAA.exe.
Если же ты файл не запускал до этого, то переименуешь его в BBB.exe — и процесс после запуска будет называться BBB.exe. После работы ты уже этот BBB.exe можешь переименовывать как угодно. Теперь процесс этого EXE»шника все равно будет называться BBB.exe до перезапуска винды.
Вот такая еще обна странная особенность диспетчера задач.


Volkov ( 2003-12-30 18:05 ) [24]

Win2k+SP4 — я проверял, все верно. Эксперименты подтверждают


Volkov ( 2003-12-30 18:08 ) [25]

объясните, пожалуйста, как, где, с какого момента. по какому поводу и зачем оно фигурирует вообще . и как это связано с тем что я вижу в пресловутом TaskManager .


Digitman © ( 2003-12-30 18:12 ) [26]


> Вот такая еще обна странная особенность диспетчера задач

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

такой же Диспетчер вполне можно слепить самому за час


@ndrey © ( 2004-01-05 16:38 ) [29]

Дать прогу?


Игорь Шевченко © ( 2004-01-05 17:11 ) [30]

К диспетчеру задач это поведение не относится (с переименованным файлом). Имя процесса выдается функцией NtQuerySystemInformation, Process Explorer и аналогичный, написанный за час диспетчер задач (лежит в кладовке) показывает то имя процесса, который был запущен первый раз до переименования. Командная строка у них, разумеется, разная, там имя файла правильное получается. Объяснение этому факту дать сразу не могу 🙂


Германн © ( 2004-01-06 04:42 ) [31]

Это я так. Просто интересно. А если от NT перейти к 9x? Что будет?


SammIk © ( 2004-01-24 16:54 ) [32]

Вот ребяты смотрю сюда и ни*ра не понимаю.
У меня ничего подобного не наблюдается.
Беру фаил AAA.exe запускаю, смотрю в TMen. там AAA.exe
Переименовываю в BBB.exe, смотрю, опа, а там BBB.exe?!)
Проверял первое не выгружая Таск мен, и выгружая перед переименованием.
И хде вы такое увидили?
ЗА win2k sp2


DVM © ( 2004-01-24 23:48 ) [33]


> Командная строка у них, разумеется, разная, там имя файла
> правильное получается. Объяснение этому факту дать сразу
> не могу 🙂

Может дело в кэшировании? Запускается на выполнение по сути один и тот же исполняемый файл, хоть его и переименовали, на диске он находится в том же самом месте и вместо считывания с диска берется из кэша. Я могу конечно ошибаться, но очень похоже на то.

Как переименовать процесс в диспетчере задач

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Сообщения: 14
Благодарности: 0

а можно подробней?
я вообще не разбираюсь в этом.
Я скачал программу AutoIt.
Запустил редактор. В редакторе вставил этот пример и . я так понимаю, что где-то в этом примере нужно, что-то изменить. Нужно вписать название процесса, который я хочу скрыть. Но я не понимаю где нужно вписывать.
пусть мой процесс имеет название XXX.bin
Так где мне нужно вписать название этого процесса?

Сообщения: 25152
Благодарности: 3798

Конфигурация компьютера
Процессор: Core™2 Quad Q8300 @ 2.50GHz
Материнская плата: MSI G41M-P33 Combo
Память: PQI DDR2 (PC2-6400) 2×2048
HDD: SSD OCZ-AGILITY3 — 120GB
Видеокарта: Gigabyte GeForce GTX660 2048Mb
ОС: Windows 10 Pro x64 (11082)

Цитата beginner:

где мне нужно вписать название этого процесса? »

AHK: Как переименовать процесс?

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

2 Ответ от teadrinker 2020-12-27 22:30:44

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Насколько я знаю, нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 Ответ от Foma 2020-12-28 17:31:25

Re: AHK: Как переименовать процесс?

Даже запуская из AHK само приложение? Простая смена имени исполняемого файла не помогла.

4 Ответ от teadrinker 2020-12-28 17:40:55

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Не очень понял, что вы пытаетесь сделать. Обычно название процесса соответствует названию исполняемого файла.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 Ответ от Botsy 2020-12-28 17:52:34

Re: AHK: Как переименовать процесс?

Похоже на червя, имя которого надо изменить. Не легче просто спрятать имя процесса ?

6 Ответ от Foma 2020-12-28 20:00:35

Re: AHK: Как переименовать процесс?

Нет, ничего крамольного и криминального. Я чту уголовный кодекс. )
Запускаю у себя, а прячу от программы, которой не стоит знать про существование этого процесса.
Имя процесса соответствует имени файла, но при переименовании файла имя процесса не меняется.
Может его и можно скрыть в «Диспетчере задач», но значит ли это, что часть программы, которая несомненно будет искать этот процесс, не определит наличие процесса?

7 Ответ от ypppu 2020-12-28 20:53:45

  • ypppu
  • Разработчик
  • Неактивен

Re: AHK: Как переименовать процесс?

Возможно, исполняемый файл не является основной программой, а лишь запускает какую-то другую программу. Потому имя процесса незнакомое.

8 Ответ от teadrinker 2020-12-28 21:09:58

  • teadrinker
  • Администратор
  • Неактивен

Re: AHK: Как переименовать процесс?

Из Диспетчера Задач можно открыть место хранения файла, создавшего процесс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *