Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971

Получить имена файлов, используемых процессом

17.09.2010, 15:43. Показов 5252. Ответов 18

Студворк — интернет-сервис помощи студентам
есть некий процесс, он читает некие файлы, хочу получить имена этих файлов

в дотнете есть хоть что-то для этого дела? может кто сталкивался, или какие готовые дллки есть...

например Process Explorer это умеет так:
Миниатюры
Получить имена файлов, используемых процессом  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2010, 15:43
Ответы с готовыми решениями:

Узнать имена (пути) используемых приложением ДЛЛ-бибилотек
Доброго времени суток, уважаемые формучане, суть вопроса изложена в теме. Решил попробовать написать апдейтер для своей программы,...

Как получить в скрипт имена всех файлов из некоторой директории на сервере?
Как получить в скрипт имена всех файлов из некоторой директории на сервере?(проблема доступа не важна)

Как получить рандомные имена файлов?
Есть имена файлов: game-Black-Star2dx-l2-1-0.dll game-Black-Star1dx-l1-1-0.dll Заношу список в string Vata = new string { имена...

18
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
17.09.2010, 16:08  [ТС]
даже если с винапи связываться...
как получить список дескрипторов файлов, открытых процессом?
0
62 / 51 / 15
Регистрация: 08.07.2010
Сообщений: 119
17.09.2010, 16:45
Можно воспользоваться консольной прогой. Например - Handle v3.42 By Mark Russinovich.
1
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
17.09.2010, 17:36
Где то здесь я уже говорил об этом... вот.

Добавлено через 8 минут
+ возможно придется использовать NtQuerySystemInformation с параметром SystemObjectInformation.
1
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
17.09.2010, 17:40  [ТС]
Handle v3.42 конечно сгодится как затычка, перенаправил его вывод и нормально вроде работает...
но все таки второй (еще и чужой) экзешник это не красиво

по крайней мере хоть проверю идею, прежде чем лезть в болото API ))
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
17.09.2010, 20:20
Цитата Сообщение от m0nax Посмотреть сообщение
прежде чем лезть в болото API ))
Будь осторожней, там очень глубоко )

Добавлено через 2 часа 38 минут
Извиняюсь, надо использовать те же функции только с префиксом Zw*.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
17.09.2010, 20:26  [ТС]
да я как раз заметил что их 2 вида, а в чем разница?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
17.09.2010, 20:36
Начал искать в гугле, нашел много статей и во всех написано о работе Nt* функций в режиме ядра, а Zw* в usermode... Но сейчас нашел одну статейку в которой говорится что разницы в Nt* и Zw* в usermode нет, она есть только в режиме ядра...

p.s. Я бы использовал Zw*
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
17.09.2010, 23:58  [ТС]
что-то я чувствую на шарпе(всмысле через PInvoke) это невозможно
у этих xxQuerySystemInformation какие-то ненормальные махинации с памятью и нифига не понятно чего им передавать и как забирать...на Си оно в PVOID и банальное приведение типов, а на шарпе поди приведи IntPtr к структуре и обратно (
студия уже пару раз падала
в любом случае такими темпами не получится стабильной ровной работы в цикле, даже если и заработает
так что нафик все это, лучше подумаю как приспособить эту Handle или еще чего поищу

если кто будет идти той же дорогой лучшая ссылка что нашел - ... , там предельно простой рабочий исходник на си
 Комментарий модератора 
Ссылки на внешние форумы запрещены
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
18.09.2010, 00:54
Мне кажется вполне возможно. У меня чуть больший прогресс, я смог добиться копирования в память всей информации о хендлах, но какой-то косяк со структурами...
0
62 / 51 / 15
Регистрация: 08.07.2010
Сообщений: 119
18.09.2010, 00:56
Еще на CodeProject есть подобный проект с исходниками (правда на C++), но смысл будет понятен.
Статья - OpenedFileFinder
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
18.09.2010, 01:02
Цитата Сообщение от ivanoff80 Посмотреть сообщение
подобный проект с исходниками (правда на C++)
Перепишешь на C#? Таких примеров я уже наверное штук 100 видел... Весь смысл то как раз в том чтобы заставить это, работать на C#.

p.s. Конечно легче сделать это на C++ и использовать в C#, но тут, так сказать - спортивный интерес.
0
62 / 51 / 15
Регистрация: 08.07.2010
Сообщений: 119
18.09.2010, 01:37
Напрямую с памятью сам работаю с трудом.
Можно покопать в сторону Windows Management Instrumentation.
К примеру список активных процессов получается простым запросом.
C#
1
2
3
ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_Processor");
Но как получить дескрипторы открытых файлов пока не нашел.
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
18.09.2010, 01:44
Решение найдено Код был найден на codeproject. Вот готовый проект на VS2010. Оказывается было так легко...

Точнее почти найдено, осталось разобраться с ZwQueryObject...
Вложения
Тип файла: rar ZwTestApp.rar (43.3 Кб, 132 просмотров)
3
62 / 51 / 15
Регистрация: 08.07.2010
Сообщений: 119
18.09.2010, 01:56
Спасибо за решение...Сам долго искал
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
18.09.2010, 02:02  [ТС]
нда это еще не конец похоже, ZwQuerySystemInformation выдал нам список всех хендлов в системе как я понимаю
значит надо еще определить кто из них кто и с помощью Zw/NtQueryInformationFile или NtQueryObject получить уже информацию по файлам...
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
18.09.2010, 02:07
Только с ZwQueryObject. ZwQueryInformationFile требует хендл файла.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
18.09.2010, 16:53  [ТС]
нашел огромные залежи винапи функций переведенных на шарп(со всеми структурами перечислениями и прочим)
все виды ZwQuery там есть со всем что им требуется
http://www.koders.com/info.asp... &s=rxlevel
(там основное в processhacker.native/api)

это вроде как open source аналог Process Explorer

легче не стало...у меня получается какое дикое кол-во стуктур по цепочке, один UnicodeString требует сразу с десяток других классов, которые зависят еще от десятка...

Добавлено через 2 часа 8 минут
всё, нашелся готовый класс, работает

http://www.koders.com/csharp/f... nformation
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
18.09.2010, 17:16
У меня получилось немного другим методом Когда-то тоже забредал на этот сайт )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2010, 17:16
Помогаю со студенческими работами здесь

Как получить все имена файлов из директории, в которй находиться файл с программой
Как получить все имена файлов из директории, в которй находиться файл с программой, не указывая до директории полный путь? Если писать...

Из строк текстового файла получить имена файлов и записать их в отдельный текстовый файл
Доброго времени суток, имеется текстовый файл, порядка 7-ми или 8-ми тысяч строк 100157‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Puro.jpg ...

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

Получить имена файлов в директории
Помогите пожалста. Нужно открыть файлы из папки, путь к которой известен, число файлов не известно.

Получить имена файлов из буфера обмена
Я скопировал несколько файлов в буфер обмена. Как в лазаре получить список их путей?


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
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