1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Запись файла на удаленный комп [РЕШЕНО]

Тема в разделе "Delphi", создана пользователем ExPlayer, 23 янв 2018.

  1. Ветеран

    Регистрация:
    5 мар 2014
    Сообщения:
    375
    Симпатии:
    69
    Доброго времени суток!
    Подскажите, как можно реализовать запись файла в расшаренную папку на другом компе, при выключении своего компа.
    Поясню: пользователь нажимает "Завершить работу" или "Выйти из системы" в это время на удаленный комп (в расшаренную папку) должен записаться файл с датой и временем выключения.

    Пытался сделать через WM_QUERYENDSESSION, но во время выхода из системы появляется сообщение с ошибкой: "I/O error 123".

    Сам код:
    Код (Delphi):

    procedure TForm1.WMOFF(var Msg: TWMQueryEndSession);
    var
      t:TextFile;
      d:TDateTime;
      pc: array[0..MAX_COMPUTERNAME_LENGTH] of char;
      sizepc: dword;
    begin
      d:=Now;
      GetComputerName(pc,sizepc);
      assignfile(t,'\\IP компа\lipc\'+StrPas(pc)+'.txt');
      if FileExists('\\IP компа\lipc\'+StrPas(pc)+'.txt') then Append(t)
         else Rewrite(t);
         writeln(t,DateToStr(d)+' '+TimeToStr(d));
         closefile(t);
    close;
    end;
    Тот же самый код пытался сделать в событиях OnClose и OnDestroy (ошибки не было, но и файл не записывался).

    P.S. пишу на Delphi 7.
     
    Последнее редактирование: 24 янв 2018
  2. Ветеран

    Регистрация:
    5 мар 2014
    Сообщения:
    375
    Симпатии:
    69
    Всё. Проблему решил. Закройте тему, пожалуйста.
     
  3. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    727
    Симпатии:
    454
    Поделись решением, может еще кому пригодится
     
  4. Ветеран

    Регистрация:
    5 мар 2014
    Сообщения:
    375
    Симпатии:
    69
    Как такого решения не нашёл, скорее применил "костыль":
    1. Программа запускается -> записываем файл (на локальный диск) -> отправляем его на сервер;
    2. Комп выключается (или перезагружается) -> записываем файл (на локальный диск).

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

    P.S. программу делал для работы (просили сделать логирование включения/выключения компов).
     

Поделиться этой страницей