powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Открытие файлов
10 сообщений из 10, страница 1 из 1
Открытие файлов
    #32828503
Mashutka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, как можно получить список всех открытых файлов на локальном компьютере?
...
Рейтинг: 0 / 0
Открытие файлов
    #32828613
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в какеом смысле открытых?
...
Рейтинг: 0 / 0
Открытие файлов
    #32828660
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно перебрать все процессы и посмотреть какие модули ими загружены, но это ещё не все открытые файлы, конечно.


Код: plaintext
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.
38.
39.
40.
41.
42.
using System;
using System.Diagnostics;

namespace Processes
{
	class Class1
	{
		[STAThread]
		static void Main(string[] args)
		{
            Process[] prs;
            try 
            {
                prs = Process.GetProcesses();
                foreach (Process p in prs)
                {
                    // Процесс {имя_процесса} c {уровень приоритета} приоритетом имеет хэндл {хэндл} и занимает {число_байт} в памяти
                    Console.WriteLine
                        ("Process {1} with {2} priority has handle {0} and use {3} bytes of memory", 
                        p.Handle, p.ProcessName, p.PriorityClass, p.WorkingSet);

                    
                    // здесь отображаются все модули, загруженные процессом WINWORD
                    if (p.ProcessName=="WINWORD")
                    {
                        foreach (ProcessModule mc in p.Modules)
                        {
                            Console.WriteLine("* {0} - {1}",mc.ModuleName,mc.FileName);
                        
                        }
                        Console.ReadLine();
                    }
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
		}
	}
}
...
Рейтинг: 0 / 0
Открытие файлов
    #32828767
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
процесс != открытый файл
...
Рейтинг: 0 / 0
Открытие файлов
    #32828792
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так будет, думаю, правильней
Код: plaintext
1.
2.
3.
4.
try
 if not p.MainWindowHandle.Equals(Intptr.zero)then console.WriteLine(p.MainWindowtitle) 'если у процесса есть Handle окна, значит, у него есть визуальная оболочка, но и это еще не факт, что это окрытый файл!
catch
end try
...
Рейтинг: 0 / 0
Открытие файлов
    #32829094
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артёмпроцесс != открытый файл

это так, но сам процесс открывает файлы, вопрос как их все перечислить, а не только открытые библиотеки.
...
Рейтинг: 0 / 0
Открытие файлов
    #32829390
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получить список всех открытых файлов в системе NT можно с использованием низкоуровнего API - NtQueryObject, NtOpenDirectoryObject и пр ( из ntdll.dll). дело достаточно трудоемкое и муторное.

примеры реализации можно посмотреть у Марка Руссиновича на сайте www.sysinternals.com
это несколько утилит:
Process Explorer (procexp.exe) - GUI
Handle (handle.exe) - Command line

PS: последнюю можно использовать, если перехватить и распаристь ее вывод
...
Рейтинг: 0 / 0
Открытие файлов
    #32829402
Один
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артёмвот так будет, думаю, правильней
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
try
 if not p.MainWindowHandle.Equals(Intptr.zero)then 
 console.WriteLine(p.MainWindowtitle) 
'если у процесса есть Handle окна, значит, 
'у него есть визуальная оболочка, но и это еще не факт, что это окрытый файл!
catch
end try
С Handle окна и виз. оболочкой не все так просто
http://www.sql.ru/forum/actualthread.aspx?tid=145528
...
Рейтинг: 0 / 0
Открытие файлов
    #32829653
Mashutka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется в виду получение списка файлов, которые в данный момент просматриваются на пользователем, типа текстовых, документов, музыка, картинки и т.п.
...
Рейтинг: 0 / 0
Открытие файлов
    #32829754
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как ты себе это представляешь?
Допустим, программа вычитала файл и показывает его пользователю... она же тебе не скажет, откуда она его вычитала! :-)))
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Открытие файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]