Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
functionNetSend(dest, Source, Msg: string
): Longint; overload; type
TNetMessageBufferSendFunction = function
(servername, msgname, fromname: PWideChar; buf: PWideChar; buflen: Cardinal): Longint; stdcall
; var
NetMessageBufferSend: TNetMessageBufferSendFunction; SourceWideChar: PWideChar; DestWideChar: PWideChar; MessagetextWideChar: PWideChar; Handle: THandle; begin
Handle := LoadLibrary('NETAPI32.DLL'); if
Handle = 0 then
begin
Result := GetLastError; Exit; end
; @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend'); if
@NetMessageBufferSend = nil
then
begin
Result := GetLastError; Exit; end
; MessagetextWideChar := nil
; SourceWideChar := nil
; DestWideChar := nil
; try
GetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1); if
Source = '' then
Result := NetMessageBufferSend(nil
, DestWideChar, nil
, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1) else
begin
GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1); StringToWideChar(Source, SourceWideChar, 20 * SizeOf(WideChar) + 1); Result := NetMessageBufferSend(nil
, DestWideChar, SourceWideChar, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1); FreeMem(SourceWideChar); end
; finally
FreeMem(MessagetextWideChar); FreeLibrary(Handle); end
; end
; function
NetSend(Dest, Msg: string
): Longint; overload; begin
Result := NetSend(Dest, '', Msg); end
; function
NetSend(Msg: string
): Longint; overload; begin
Result := NetSend('', '', Msg); end
; // Example: procedure
TForm1.Button1Click(Sender: TObject); const
NERR_BASE = 2100; NERR_NameNotFound = NERR_BASE + 173; NERR_NetworkError = NERR_BASE + 36; NERR_Success = 0; var
Res: Longint; sMsg: string
; begin
Res := NetSend('LoginName', 'Your Message...'); case
Res of
ERROR_ACCESS_DENIED: sMsg := 'user does not have access to the requested information.'; ERROR_INVALID_PARAMETER: sMsg := 'The specified parameter is invalid.'; ERROR_NOT_SUPPORTED: sMsg := 'This network request is not supported.'; NERR_NameNotFound: sMsg := 'The user name could not be found.'; NERR_NetworkError: sMsg := 'A general failure occurred in the network hardware.'; NERR_Success: sMsg := 'Message sent!'; end
; ShowMessage(sMsg); end
;