Windows file open function

openfiles openfiles

Позволяет администратору запрашивать, отображать или отключать файлы и каталоги, открытые в системе. Enables an administrator to query, display, or disconnect files and directories that have been opened on a system. Эта команда также включает или отключает глобальный флаг System обслуживание списка объектов . This command also enables or disables the system Maintain Objects List global flag.

Openfiles/Disconnect openfiles /disconnect

Позволяет администратору отключить файлы и папки, открытые удаленно через общую папку. Enables an administrator to disconnect files and folders that have been opened remotely through a shared folder.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
ключ /s Указывает удаленную систему для подключения (по имени или IP-адресу). Specifies the remote system to connect to (by name or IP address). Не используйте обратные косые черты. Don’t use backslashes. Если параметр /s не используется, команда по умолчанию выполняется на локальном компьютере. If you don’t use the /s option, the command is run on the local computer by default. Этот параметр применяется ко всем файлам и папкам, указанным в команде. This parameter applies to all files and folders that are specified in the command.
/u [ \] /u [ \] Выполняет команду, используя разрешения указанной учетной записи пользователя. Runs the command using the permissions of the specified user account. Если параметр /u не используется, по умолчанию используются разрешения системы. If you don’t use the /u option, system permissions are used by default.
/p [

] Указывает пароль учетной записи пользователя, указанной в параметре /u . Specifies the password of the user account that is specified in the /u option. Если вы не используете параметр /p , при выполнении команды появится запрос на ввод пароля. If you don’t use the /p option, a password prompt appears when the command is run. /ID /id Отключает открытые файлы по указанному ИДЕНТИФИКАТОРу файла. Disconnects open files by the specified file ID. С этим параметром можно использовать подстановочный знак (*). You can use the wildcard character (*) with this parameter.

Примечание. для поиска идентификатора файла можно использовать команду openfiles/Query . Note: You can use the openfiles /query command to find the file ID. / /a

Отключает все открытые файлы, связанные с именем пользователя, указанным в параметре акцесседби . Disconnects all open files associated with the user name specified in the accessedby parameter. С этим параметром можно использовать подстановочный знак (*). You can use the wildcard character (*) with this parameter. /o /o Отключает все открытые файлы с указанным значением в открытом режиме. Disconnects all open files with the specified open mode value. Допустимые значения: Чтение, запись, чтение и запись. Valid values are Read, Write, or Read/Write. С этим параметром можно использовать подстановочный знак (*). You can use the wildcard character (*) with this parameter. /Op /op Отключает все соединения открытых файлов, созданные с помощью определенного имени открытого файла. Disconnects all open file connections that are created by a specific open file name. С этим параметром можно использовать подстановочный знак (*). You can use the wildcard character (*) with this parameter. /? /? Отображение справки в командной строке. Displays help at the command prompt.

Примеры Examples

Чтобы отключить все открытые файлы с помощью идентификатора файла 26843578, введите: To disconnect all open files with the file ID 26843578, type:

Чтобы отключить все открытые файлы и каталоги, к которым обращается пользователь хироплн, введите: To disconnect all open files and directories accessed by the user hiropln, type:

Чтобы отключить все открытые файлы и каталоги с режимом чтения и записи, введите: To disconnect all open files and directories with read/write mode, type:

Чтобы отключить каталог с открытым именем файла * К:\тестшаре * , независимо от того, кто обращается к нему, введите: To disconnect the directory with the open file name *C:\testshare*, regardless of who is accessing it, type:

Чтобы отключить все открытые файлы на удаленном компьютере срвмаин , к которым обращается пользовательская хироплн, независимо от их идентификатора, введите: To disconnect all open files on the remote computer srvmain that are being accessed by the user hiropln, regardless of their ID, type:

Openfiles/Query openfiles /query

Запрашивает и отображает все открытые файлы. Queries and displays all open files.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
ключ /s Указывает удаленную систему для подключения (по имени или IP-адресу). Specifies the remote system to connect to (by name or IP address). Не используйте обратные косые черты. Don’t use backslashes. Если параметр /s не используется, команда по умолчанию выполняется на локальном компьютере. If you don’t use the /s option, the command is run on the local computer by default. Этот параметр применяется ко всем файлам и папкам, указанным в команде. This parameter applies to all files and folders that are specified in the command.
/u [ \] /u [ \] Выполняет команду, используя разрешения указанной учетной записи пользователя. Runs the command using the permissions of the specified user account. Если параметр /u не используется, по умолчанию используются разрешения системы. If you don’t use the /u option, system permissions are used by default.
/p [

] Указывает пароль учетной записи пользователя, указанной в параметре /u . Specifies the password of the user account that is specified in the /u option. Если вы не используете параметр /p , при выполнении команды появится запрос на ввод пароля. If you don’t use the /p option, a password prompt appears when the command is run. [/FO

] [/fo
]
Отображает выходные данные в указанном формате. Displays the output in the specified format. Допустимые значения: Valid values include:

  • Таблица — отображает выходные данные в таблице. TABLE — Displays output in a table.
  • List — отображает выходные данные в списке. LIST — Displays output in a list.
  • CSV — отображает выходные данные в формате с разделителями-запятыми (CSV). CSV — Displays output in Comma Separated Values (CSV) format.
использован /nh Подавляет вывод заголовков столбцов в выходных данных. Suppresses column headers in the output. Допустим, только если параметр /FO имеет значение Table или CSV. Valid only when the /fo parameter is set to TABLE or CSV.
/v /v Указывает, что в выходных данных отображаются подробные (подробные) сведения. Specifies that detailed (verbose) information be displayed in the output.
/? /? Отображение справки в командной строке. Displays help at the command prompt.

Примеры Examples

Чтобы запросить и отобразить все открытые файлы, введите: To query and display all open files, type:

Чтобы запросить и отобразить все открытые файлы в формате таблицы без заголовков, введите: To query and display all open files in table format without headers, type:

Чтобы запросить и отобразить все открытые файлы в формате списка с подробными сведениями, введите: To query and display all open files in list format with detailed information, type:

Чтобы запросить и отобразить все открытые файлы в удаленной системе срвмаин , используя учетные данные пользователя хироплн в домене маиндом , введите: To query and display all open files on the remote system srvmain by using the credentials for the user hiropln on the maindom domain, type:

В этом примере пароль указан в командной строке. In this example, the password is supplied on the command line. Чтобы запретить отображение пароля, оставьте параметр /p . To prevent displaying the password, leave out the /p option. Вам будет предложено ввести пароль, который не будет отображаться на экране. You’ll be prompted for the password, which won’t be echoed to the screen.

Openfiles/Local openfiles /local

Включает или отключает глобальный флаг System обслуживании списка объектов . Enables or disables the system Maintain Objects List global flag. Если используется без параметров, то openfiles/Local отображает текущее состояние флага » сохранить глобальный список объектов «. If used without parameters, openfiles /local displays the current status of the Maintain Objects List global flag.

Изменения, внесенные с помощью параметра вкл . или выкл ., вступают в силу только после перезагрузки системы. Changes made by using the on or off option don’t take effect until you restart the system. Включение глобального флага » Ведение списка объектов » может замедлить работу системы. Enabling the Maintain Objects List global flag might slow down your system.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
[on | off] Включает или отключает глобальный флаг System обслуживание списка объектов , который отслеживает дескрипторы локальных файлов. Enables or disables the system Maintain Objects List global flag, which tracks local file handles.
/? /? Отображение справки в командной строке. Displays help at the command prompt.

Примеры Examples

Чтобы проверить текущее состояние глобального флага » сохранить список объектов «, введите: To check the current status of the Maintain Objects List global flag, type:

По умолчанию глобальный флаг « Ведение списка объектов » отключен, и появляется следующее сообщение: INFO: The system global flag ‘maintain objects list’ is currently disabled. By default, the Maintain Objects List global flag is disabled, and the following message appears, INFO: The system global flag ‘maintain objects list’ is currently disabled.

Чтобы включить глобальный флаг » Ведение списка объектов «, введите: To enable the Maintain Objects List global flag, type:

При включении глобального флага появляется следующее сообщение: SUCCESS: The system global flag ‘maintain objects list’ is enabled. This will take effect after the system is restarted. The following message appears when the global flag is enabled, SUCCESS: The system global flag ‘maintain objects list’ is enabled. This will take effect after the system is restarted.

Чтобы отключить глобальный флаг » Ведение списка объектов «, введите: To disable the Maintain Objects List global flag, type:

Записки программиста

Учимся работать с файлами через Windows API

Из предыдущих постов, посвященных WinAPI, мы научились настраивать Visual Studio и узнали, как в нем писать простые консольные приложения. Следующим маленьким шажком в изучении WinAPI будет освоение работы с файлами.

Для этого нелегкого дела нам понадобятся следующие процедуры:

В Windows для того, чтобы открыть или создать файл, нужно вызвать процедуру, имеющую целых семь аргументов. К счастью, большинство из них приходится использовать крайне редко. Аргумент szName задает имя файла, а dwAccess — желаемый доступ к файлу, обычно это GENERIC_READ, GENERIC_WRITE или оба значения, объединенные логическим или. Параметр dwShareMode определяет, что могут делать с файлом другие процессы, пока мы с ним работаем. Возможные значения — FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE и их комбинации, однако часто этот параметр просто устанавливают в ноль. Параметр dwCreationDisposition определяет, как именно мы хотим открыть файл, может быть, например, CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS. О семантике этого хозяйства нетрудно догадаться самостоятельно. С помощью dwFlags можно указать дополнительные свойства файла, например, хранить ли его в зашифрованном или сжатом виде, или сказать, что файл является скрытым, временным или системным. Обычно сюда передают FILE_ATTRIBUTE_NORMAL. Наконец, про lpSecurityAttributes и hTemplateFile сейчас знать не нужно, сюда можно смело передавать NULL.

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

Чтение из файла в буфер lpBuff размером dwBuffSize. В переменную dwCount записывается реальное количество прочитанных байт. Последний опциональный аргумент называется lpOverlapped и о нем сейчас знать не нужно.

Аргументы и семантика процедуры WriteFile полностью аналогичны ReadFile.

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

Посмотрим теперь на все это хозяйство в действии. Следующая программа пишет в файл counter.dat количество собственных запусков. Первые пять запусков ничем не примечательны. На шестой и последующие запуски программа сообщает, что у нее истек триал и просит приобрести полную версию.

#define MAX_TRIAL_RUNS 5

const TCHAR szCounterFileName [ ] = L «counter.dat» ;
const TCHAR szMsgTmpl [ ] = L «Вы запустили программу в %d-й раз. %s.» ;
const TCHAR szCheckOk [ ] = L «Все в порядке, продолжайте работу» ;
const TCHAR szCheckFailed [ ] = L «Триал истек, купите полную версию» ;

DWORD ReadCounter ( ) <
DWORD dwCounter , dwTemp ;
HANDLE hFile = CreateFile ( szCounterFileName , GENERIC_READ , 0 , NULL ,
OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL ) ;
if ( INVALID_HANDLE_VALUE == hFile ) <
return 1 ;
>
ReadFile ( hFile , & dwCounter , sizeof ( dwCounter ) , & dwTemp , NULL ) ;
if ( sizeof ( dwCounter ) != dwTemp ) <
CloseHandle ( hFile ) ;
return 1 ;
>
CloseHandle ( hFile ) ;
return dwCounter ;
>

VOID WriteCounter ( DWORD dwCounter ) <
DWORD dwTemp ;
HANDLE hFile = CreateFile ( szCounterFileName , GENERIC_WRITE , 0 , NULL ,
CREATE_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL ) ;
if ( INVALID_HANDLE_VALUE == hFile ) <
return ;
>
WriteFile ( hFile , & dwCounter , sizeof ( dwCounter ) , & dwTemp , NULL ) ;
CloseHandle ( hFile ) ;
>

int main ( ) <
TCHAR szMsg [ 256 ] ;
DWORD dwCounter = ReadCounter ( ) ;
LPCWSTR lpCheckResult = dwCounter > MAX_TRIAL_RUNS ?
szCheckFailed : szCheckOk ;
wsprintf ( szMsg , szMsgTmpl , dwCounter , lpCheckResult ) ;
MessageBox ( 0 , szMsg , L «Сообщение» , 0 ) ;

if ( dwCounter MAX_TRIAL_RUNS ) <
WriteCounter ( dwCounter + 1 ) ;
>

Как обычно, программа также успешно компилируется при помощи MinGW и запускается под Wine.

В качестве домашнего задания можете попробовать модифицировать программу так, чтобы она выводила время, когда производились все ее запуски. Для этого вам понадобятся процедуры GetLocalTime, SetFilePointer и GetFileSizeEx. Если это задание покажется вам слишком простым, попробуйте найти информацию о том, как при помощи процедур, упомянутых в этой заметке, (1) написать консольное приложение и (2) открыть диск C: на чтение, словно он является обычным файлом.

Если у вас есть дополнения или возникли вопросы, смелее пишите комментарии, не стесняйтесь!

Читайте также:  Как удалить сенсорную клавиатуру windows 10
Оцените статью