![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DLL и завершение работы Windows [D7, WinXP]
megaadmin © (2009-02-05 07:10:00)Здравствуйте уважаемые мастера Delphi.
Я хочу написать программу которая будет отображать на компьютерах нашего интернет-кафе оставшееся время работы клиента.
На сервера программа следит за временем и пишет информацию в расшареную папку "clients". Машины клиентов периодически читают свой файл и пишут информацию вверху экрана.
Я хочу написать её в виде DLL т.к. софт постоянно обновляем.
Все работает нормально но при выключении компьютера выскакивает окно "Программа не отвечает".
Чтоб решить проблему можно экспортировать еще 1 функцию например "ExitProgram" но тогда эта библиотека будет не универсальной.
Вот код DLL:
library timeshow;
uses
Windows, Graphics, Forms, SysUtils, Classes;
procedure Start;
var
c: TCanvas;
ms: TMemoryStream;
d: TDateTime;
work: Boolean;
begin
work := True;
ms := TMemoryStream.Create;
c := TCanvas.Create;
c.Handle := GetDC(0);
while work do
begin
Sleep(5000);
ms.LoadFromFile('\\192.168.9.1\clients\client_time_1.dat');
ms.Position := 0;
ms.Read(d, SizeOf(TDateTime));
c.TextOut(Trunc(Screen.Width / 2), 0, TimeToStr(Time));
end;
c.Free;
ms.Free;
end;
exports Start;
begin
end.
Вызвать можно например так:
rundll32.exe timeshow.dll,Start
Спасибо за помощь.
Anatoly Podgoretsky (2009-02-05 09:05:00) [1]Удалено модератором
Anatoly Podgoretsky (2009-02-05 09:02:00) [2]> megaadmin (05.02.2009 7:10:00) [0]
Ну и чем обосновано использование именно ДЛЛ
brother (2009-02-05 07:44:00) [3]> Sleep(5000);
это зачем?