программно проверить управление компьютером - общие папки - открыть файлы для файла - PullRequest
1 голос
/ 18 января 2010

У нас есть клиент-серверное программное обеспечение, которое необходимо обновить. Мне нужно проверить, доступен ли файл в данный момент. Это возможно, если так, как Delphi код, если это возможно. Единственное место, где я могу видеть, открыт ли файл, находится в общих папках открытых файлов. Я пробовал этот код, но просто показывает, что файл не открыт.

function TfrmMain.FileInUse(FileName: string): Boolean;

var H_File : HFILE;
begin
  Result := False;

  if not FileExists(FileName) then
    begin
    showmessage ('Doesnt Exist');
    exit;
    end;
  H_File := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0,
    nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

  Result := (H_File = INVALID_HANDLE_VALUE);
  showmessage('Opened');
  if not Result then
    CloseHandle(H_File);
end;

Ответы [ 3 ]

0 голосов
/ 20 января 2010

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

0 голосов
/ 21 января 2010

Я нашел этот похожий элемент , кто-то предлагает использовать функцию NetFileEnum

0 голосов
/ 19 января 2010

Существует множество информации, к которой вы можете получить доступ через подсистему WBEM, предоставляемую Windows. Я считаю, что есть хорошие компоненты WBEM, но вы также можете импортировать библиотеку типов COM «Microsoft WMI Scripting» (хотя, чтобы выяснить, как она работает, нужно немного потрудиться).

Если вы запрашиваете Win32_ServerConnection объектов, вы получаете список элементов, используемых в данный момент, так же, как вы можете просмотреть их с помощью инструмента «Управление компьютером» из Администрирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...