Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как определить каким процессом занят файл


Как определить, каким приложением занят файл – Вадим Стеркин

Я просматривал рабочий календарь, когда почтовая программа Outlook 2010 внезапно сообщила об ошибке и закрылась. После перезапуска она не смогла открыть OST-файл, и сегодня я расскажу, как решил эту проблему за три минуты.

При запуске программа выдавала такую ошибку:

На работе у меня ОС и программы с английским интерфейсом, поэтому я приведу эквивалентный текст ошибки из русской версии Office.

Выполнен выход из Microsoft Outlook без правильного закрытия файла данных Outlook. Необходимо перезапустить Microsoft Outlook. Если ошибка повторится, обратитесь в службу поддержки.

Сообщение не блистало информативностью, а запуск почтового клиента в безопасном режиме, удерживая нажатой клавишу Ctrl, ничего не менял.

Я открыл папку программы и запустил диагностическую утилиту scanpst.exe. Она не смогла исправить проблему, но задала конкретное направление для поиска.

Суть сообщения сводилась к тому, что OST-файл занят каким-то другим приложением, что и являлось препятствием для Outlook. Вы уже догадались, какую утилиту я запустил дальше?

В Process Explorer я нажал Ctrl + F и ввел в поиск .ost. В результатах немедленно отобразился «захватчик». Щелкнув по нему, я перешел в нижнюю панель Process Explorer и выбрал в контекстном меню команду Close Handle.


Увеличить рисунок

Это решило проблему! Почтовая программа запустилась нормально, и я вернулся к работе.

Что делать, если веб-камера используется другим приложением

В комментариях читатель Игорь задал вопрос, можно ли использовать Process Explorer, чтобы определить, какое приложение использует веб-камеру. Да, процесс аналогичный, но искать нужно:

#vid

Я в курсе, что существует Unlocker, но его надо было еще скачать, а утилита Process Explorer находилась под рукой. К тому же, мораль записи не только в этих двух программах. Ведь прежде чем применять их, нужно было выйти на причину проблемы.

Upd. 11-Мар-13. Хотелось бы дополнить заметку моментами, всплывшими в ее обсуждении:

  • Если ничего нет под рукой, можно попытаться переименовать файл. Проводник может подсказать программу, использующую его.
  • В Windows 7 и выше можно воспользоваться встроенной программой «Монитор ресурсов» (resmon), где на вкладке CPU есть поиск дескрипторов.
  • Утилита NoVirus Thanks FileGovernor (описание)
  • Утилита NirSoft OpenFilesView (работает с ограничениями на х64).

А вам приходилось использовать Unlocker или Process Explorer в подобных ситуациях? Напишите в комментариях, какую из утилит вы применяли и в чем была проблема!

Обсуждение завершено.

Как узнать какие процессы Windows используют файл?

– Автор: Игорь (Администратор)

Иногда, при попытке удалить, переместить или переименовать файл, могут возникать различные окна с системными предупреждениями следующего вида: 

  • "Не удается удалить файл: отказано в доступе" / "Cannot delete file: Access is denied"
  • "Обнаружена проблема общего доступа" / "There has been a sharing violation"
  • "Исходный файл возможно используется" / "The source or destination file may be in use"
  • "Файл используется другой программой или пользователем" / "The file is in use by another program or user".
  • "Убедитесь, что диск не переполнен и не защищен от записи и что файл не используется в настоящее время" / "Make sure the disk is not full or write-protected and that the file is not currently in use"

Одним из лучших способов справиться с заблокированными файлами и каталогами - это воспользоваться бесплатной программой Process Explorer от Microsoft. Программа уже была описана в обзоре Лучшие бесплатные диспетчеры процессов, и вот как ее можно использовать для того, чтобы узнать какой процесс или какая DLL блокирует доступ к файлу. Вам потребуются права администратора.

Примечание: Как альтернативу, вы так же можете использовать монитор ресурсов Windows для поиска программ, блокирующих доступ к файлу.

Как узнать, какие программы использует файл в Windows 7?

В Windows 7 и выше, системное сообщение может содержать название программы, блокирующую доступ к файлу. В Windows XP, обычно, такой информации нет. В любом случае, есть простой способ, как можно найти программу:

Как определить, какой процесс в Windows 10 не дает переименовать, переместить либо удалить файл или папку

Наверное, каждому из пользователей Windows хотя бы раз приходилось иметь дело с так называемыми неудаляемыми файлами и папками. Как правило, причиной невозможности удалить, переместить или хотя бы переименовать такой объект является использование его каким-то процессом, причём необязательно чтобы этот процесс был системным. Это может быть антивирус, архиватор или какой-нибудь редактор.

Обычно в окне с ошибкой прямо указывается, что за процесс препятствует дальнейшим действиям с объектом, но бывает и так, что вместо этого сообщается, что файл или папка открыты в другой программе. Это понятно, но вот в какой именно?

Так вот, определить её очень просто. Во всех популярных версиях Windows (начиная с 7) есть такая встроенная утилита как «Монитор ресурсов», предназначающаяся для контроля использования программных и аппаратных ресурсов. В её поле зрения попадают все процессы, в том числе и зависшие. Она то как раз и подскажет, что именно держит файл или папку.

Нажмите сочетание клавиш Win + R и выполните в открывшемся окошке команду resmon .

Откроется окно монитора ресурсов. Переключитесь в нём на вкладку «ЦП» и введите в поле «Поиск дескрипторов» название объекта, при удалении, перемещении или переименовании которого возникла ошибка. Результаты отобразятся тут же, чуть ниже. В нашем примере удалению папки «Всякая всячина» препятствовал архиватор WinRAR, но в самом окне с описанием ошибки об этом ничего не говорилось.

Вот так всё просто. Кстати, если удерживающий процесс не является критическим, его можно завершить прямо из окна монитора ресурсов.

После этого проблемный файл, папка или другой объект легко смогут быть удалены обычным способом.

Как узнать, какой процесс блокирует файл или папку в Windows

Как я могу узнать, какой процесс блокирует файл или папку в Windows? Например, при попытке удалить папку Windows сообщает следующее:

Операция не может быть завершена, так как эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.

Такая же ошибка может возникнуть при переименовании или удаления как папки, так и файла. Но как узнать, какая программа или приложение в настоящее время использует его и не позволяет удалить файл или папку?

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

1. Монитор ресурсов

Для поиска программы или процесса, открывшей файл, вы можете использовать Монитор ресурсов (Resource Monitor), который встроен в Windows 7, 8 и 10.

Откройте Монитор ресурсов, это можно сделать несколькими способами:

  • В поле для поиска введите «Монитор ресурсов» или resmon.exe:

  • Или в Диспетчере задач перейдите на вкладку «Производительность» и найдите кнопку «Открыть монитор ресурсов»:

В Мониторе ресурсов перейдите на вкладку ЦП (CPU). Используйте поле поиска в разделе «Связанные дескрипторы»

В результатах поиска в столбце «Образ» вы увидите, какая программа запустила процесс, блокирующий файл.

Здесь же вы можете кликнуть правой кнопкой мыши по любому найденному процессу и нажать «Завершить процесс», чтобы закрыть программу, блокирующую файл.

2. Process Explorer

Process Explorer — это официальная программа от Microsoft/SysInternals, которую можно скачать по ссылке: https://download.sysinternals.com/files/ProcessExplorer.zip

Описание программы на сайте Microsoft: https://docs.microsoft.com/ru-ru/sysinternals/downloads/process-explorer

Перейдите в FindHandle or DLL.

В текстовом поле "Handle or DLL substring:" введите путь до файла или папки. Будут показаны все процессы, которые имеют открытый обработчик на этот файл.

3. OpenedFilesView

OpenedFilesView это бесплатная программа не требующая установки, она покажет все открытые файлы, имеется возможность искать по имени или пути файла:

Сайт программы: https://www.nirsoft.net/utils/opened_files_view.html

4. LockHunter

LockHunter — это надёжная программа для разблокировки файлов.

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

Ключевые особенности

  • Показывает процессы, блокирующие файл или папку
  • Предоставляет вам подробную информацию о процессе
  • Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл
  • Может удалить файл при следующей перезагрузке ОС
  • Позволяет убить процесс блокировки
  • Позволяет удалить процессы блокировки с жёсткого диска
  • Может выгружать DLL из процессов
  • Интегрируется в меню Проводника
  • Он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке
  • Поддерживает как 32, так и 64 битную Windows

Сайт программы: https://lockhunter.com/

Связанные статьи:

Определить каким процессом занят файл

Posted by maloy under Delphi, Архив, Заметки

SibBear

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

rpy3uH

с помощью функции ZwQuerySystemInformation получить список хендлов в системе. Должен получиться список хендлов и процессов к которым относится каждый хендл. Каждый хендл будет представлен следующей структурой

Код:

typedef struct _SYSTEM_HANDLE
 {
 ULONG uIdProcess;
 UCHAR ObjectType; 
 UCHAR Flags;
 USHORT Handle;
 POBJECT pObject;
 ACCESS_MASK GrantedAccess;
 } SYSTEM_HANDLE, *PSYSTEM_HANDLE;

Потом с помощью функции NtQueryInformationFile получаем имена файлов к которым относятся хендлы. Остаётся только найти нужный файл и узнать ID процесса владельца

тема на форуме от 2009 года

Похожие статьи

Как вы узнаете, какой процесс удерживает файл открытым в Windows?

Просто будьте очень осторожны с закрывающимися ручками; это даже более опасно, чем вы думаете, из-за повторного использования дескриптора - если вы закроете дескриптор файла, и программа откроет что-то еще, этот оригинальный дескриптор файла, который вы закрыли, может быть повторно использован для этого «чего-то еще». А теперь угадайте, что произойдет, если программа продолжит работу, думая, что она работает с файлом (чей дескриптор вы закрыли), когда фактически этот дескриптор файла теперь указывает на что-то другое.

Предположим, у службы поиска есть файл, открытый для индексации, но он временно застрял, и вы хотите удалить файл, поэтому вы (неразумно) принудительно закрываете дескриптор. Служба индекса поиска открывает свой файл журнала, чтобы записать некоторую информацию, и дескриптор удаленного файла повторно используется в качестве дескриптора файла журнала. Завершенная операция, наконец, завершается, и служба индекса поиска, наконец, подходит к закрытию того дескриптора, который у нее был открыт, но в конечном итоге невольно закрывает дескриптор файла журнала.

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

Между тем, другой дескриптор, который вы принудительно закрыли, был повторно использован как дескриптор мьютекса, который используется для предотвращения повреждения данных. Когда оригинальный дескриптор файла закрыт, дескриптор мьютекса закрывается и защита от повреждения данных теряется. Чем дольше служба работает, тем более поврежденными становятся ее индексы. В конце концов, кто-то замечает, что индекс возвращает неверные результаты. И когда вы пытаетесь перезапустить службу, она терпит неудачу, потому что ее файлы конфигурации были повреждены.

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

Как узнать, какой процесс Windows использует файл

Вы когда-нибудь пытались удалить, переместить или переименовать файл только для того, чтобы получить системное предупреждение Windows с чем-то вроде одного из этих сообщений?

  • «Невозможно удалить файл: доступ запрещен»
  • «Произошло нарушение совместного использования»
  • «Исходный или целевой файл может использоваться»
  • «Файл используется другой программой или пользователем».
  • «Убедитесь, что диск не заполнен, не защищен от записи и что файл в настоящее время не используется»

Один из лучших способов работы с заблокированными файлами или папками - использовать бесплатную программу Microsoft Process Explorer .Программа была описана в другой статье, и вот как с ее помощью узнать, какая программа, DLL или дескриптор использует файл или папку. Вам нужно будет запустить его от имени администратора.

Как узнать какая программа использует файл

В Windows 7 или 8 системное сообщение может сказать вам, какая программа использует файл. Если это не так или если вы используете Windows XP, есть простой способ найти программу:

  1. Откройте Process Explorer от имени администратора.
  2. На панели инструментов найдите значок прицела справа (выделен на рисунке ниже).
  3. Перетащите значок на открытый файл или заблокированную папку.
  4. Исполняемый файл, который использует файл, будет выделен в основном списке отображения Process Explorer.

Как узнать, какой дескриптор или DLL использует файл

  1. Откройте Process Explorer от имени администратора.
  2. Введите сочетание клавиш Ctrl + F .Или щелкните меню «Найти» и выберите «Найти дескриптор или DLL».
  3. Откроется диалоговое окно поиска.
  4. Введите имя заблокированного файла или другого интересующего файла. Обычно достаточно частичных имен.
  5. Нажмите кнопку «Искать»,
  6. Список будет создан. Может быть несколько записей.
  7. Отдельный дескриптор в списке можно убить, выбрав его и нажав клавишу удаления. Однако при удалении дескрипторов необходимо соблюдать осторожность, поскольку могут возникнуть нестабильности.Часто просто перезагрузка освобождает заблокированный файл.

Process Explorer можно скачать здесь.

Связанная статья: Лучшее бесплатное средство для удаления файлов из удаленных файлов

Опубликуйте свой любимый совет! Знаете полезный технический совет или уловку? Тогда почему бы не опубликовать его здесь и не получить полную оценку? Щелкните здесь, чтобы сообщить нам свой совет.


Этот раздел советов поддерживает Вик Лори. У Вик есть несколько веб-сайтов с практическими рекомендациями, руководствами и учебными пособиями по Windows, в том числе сайт для изучения Windows и Интернета, а также сайт с советами по Windows 7.

Щелкните здесь, чтобы увидеть больше подобных вещей. Еще лучше получить технические советы, доставленные через ваш RSS-канал, или, как вариант, отправить RSS-канал по электронной почте прямо на ваш почтовый ящик.

.

c ++ - как найти размер / объем памяти, занятый «процессом»

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

include - Самый простой способ определить, какой файл включен в C?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

c ++ - Как определить, какой компилятор использовался для компиляции исполняемого файла?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где развиваются
.

Определенная программа, использующая конкретный блок TCP в Windows Server 2003 - Windows Server

  • 2 минуты для лета

In questo articolo

В этой статье описывается определенная программа, использующая конкретный порт TCP (протокол управления передачей).

Для версии Microsoft Windows XP этой статьи, приведенной 281336.

Исходная версия продукта: Windows Server 2003
Исходное число в КБ: 323352

Riepilogo

Неисправность Netstat.exe представляет собой новую опцию, новую версию -o , в градиенте визуализации идентификатора процесса (ID), связанного с единой информацией. Вся информация, которая может быть использована для определенного процесса (программы), содержится в определенном порте.Ad esempio, il netstat -ano comando può produrre l'output seguente:

Proto indirizzo locale stato dell'indirizzo esterno PID
TCP 0.0.0.0:80 0.0.0.0:0 per l'ascolto 888

Если используется диспетчер задач, можно указать все идентификаторы процесса в названии процесса (программе). С этим функционалом можно создать специальный порт, используемый в программе. Poiché un programma utilizza già questa porta specifica, альтернативная программа, используемая для использования стесса порта.

Приходите связать ID-процесс с программой

Для ассоциированного процесса ID в программе, eseguire la procedure seguente:

  1. Премьер CTRL + ALT + CANC и затем нажмите на Активировать .
  2. Fare clic sulla scheda processi .
  3. Если вы не указали столбец PID, пройдите по ссылке на Visualizza > Seleziona columnsne e quindi fare clic per selezionare la casella di controllo PID (Identificatore di processo).
  4. Щелкните на тесте колонны, обозначенной "PID", для обычного процесса обработки PID. Это должно быть сделано, чтобы облегчить идентификацию процесса и выполнить электронную программу в диспетчере задач.

Получите скрытую информацию об использовании Netstat.exe

Для получения скрытой информации об использовании Netstat.exe, выполните следующую процедуру:

  1. Стоимость проезда su Start > Esegui .
  2. Nella casella Apri digitare cmd e quindi fare clic su OK .
  3. Подсказка по цифровой команде netstat /? .
.

java - Как я могу определить, какую кодировку использует файл, прежде чем читать файл?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
.

Смотрите также