Дипломная работа: Разработка программы приема и передачи сообщений в локальной сети Microsoft
buffer:='';
for i:=0 to Memo1. Lines. Count‑1 do
buffer:=buffer+Memo1. Lines. Text+#10+#13;
name1:='';
namesize:=MAX_COMPUTERNAME_LENGTH + 1;
GetMem (name, MAX_COMPUTERNAME_LENGTH + 1);
GetComputerName (name, namesize);
name2:=name;
for i:=0 to namesize‑1 do
begin
name1:=name1+name2^;
name2:=name2+1;
end;
FreeMem (name);
buffer:=name1+#0+Edit1. Text+#0+buffer;
s:=LPSTR (buffer);
WriteFile (handle, s^, length (buffer) – 2, lpNumberOfBytesWritten, NIL);
if length (buffer) – 2<>lpNumberOfBytesWritten then
begin
ShowMessage ('Error when writing file. Number Of Bytes Written: '+IntToStr (lpNumberOfBytesWritten));
end;
CloseHandle (handle);
end;
Button1. Enabled:=True;
end;
Используя функции NetBIOS, процедура Tform2.NBName определяет. является ли адресат пользователем удалённой машины или данное имя является самим компьютером, а также, не является ли адресат рабочей группой сети Microsoft.
Также, часть данной процедуры определяет, запущена или нет на данной машине ещё одна программа «всплывающих сообщений». Так как для совместимости с аналогичными программами требуется указать одно и то же имя почтового слота (в данном случае, имя компьютера, на котором запущено данное приложение), то при наличии другой подобной программы показывается окно с кодом ошибки. Код ошибки определяется средствами NetBIOS и в данной дипломной работе реализована процедурой NBName.
Рис. 1.11. Ошибка при создании почтового слота