![]() |
Nachricht an Computer im Netzwerk senden
Hi,
ich habe folgenden Code aus dem SwissDelphiCenter gefunden:
Delphi-Quellcode:
Ich möchte die Nachricht an einen Computer im Netzwerk senden. Geht das damit? Also wenn ich dort wo jetzt 'LoginName' steht, den Computernamen meines Rechners eingebe kommt die dritte Fehlermeldung. Oder gibt's ne Möglichkeit den angemeldeten User auf einem anderem Computer im Netzwerk auszulesen?
function NetSend(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; |
Re: Nachricht an Computer im Netzwerk senden
Das sendet Nachrichten via NetSend. NetSend dürfte auf den meisten PCs deaktiviert sein.
Ist also ne dumme Idee. Und nein, ohne ein extra Programm dafür kannst du anders nicht Nachrichten auf einen anderen PC zaubern. |
Re: Nachricht an Computer im Netzwerk senden
Da es um zwei Computer geht auf dehnen das aktiviert ist (bzw. ich werde ich es aktivieren :) ), würde ich trotzdem gerne eine Lösung auf mein Problem haben.
|
Re: Nachricht an Computer im Netzwerk senden
Zitat:
|
Re: Nachricht an Computer im Netzwerk senden
Ich kann ja auch an meinen eigenen Rechner keine Nachrichten schreiben, obwohl der Nachrichtendiesnt gestartet ist. Aber ich weiß ja auch gar nicht was ich bei 'Loginname' reinschreiben soll, da ich von dem anderem Rechner den Benutzernamen nicht weiß, da verschiedene Leute eingeloggt sein können. Muss bei'Loginname' ein Benutzername rein oder geht auch ein Computername oder ne ip? Wenn nicht, wie finde ich den Benutzernamen von dem Computer im Netzwerk heraus?
|
Re: Nachricht an Computer im Netzwerk senden
Der Netzname vom PC muss da hin, als LoginName.
Siehst Du über CMD -> ipconfig /all Da steht dann "Hostname", den musst eintippen. |
Re: Nachricht an Computer im Netzwerk senden
Also der Computername und kein Benutzername? Wenn das so ist, dann ist das Problem geklärt.
|
Re: Nachricht an Computer im Netzwerk senden
Zitat:
|
Re: Nachricht an Computer im Netzwerk senden
Ansonsten müsste net send ja wissen, an welchem Rechner der Benutzer gerade sitzt. Wäre doch mal ne nette Erweiterung (Biometrie, Gesichtserkennung, etc. *g*).
|
Re: Nachricht an Computer im Netzwerk senden
Und man kann das auch mit dem eigenen Rechner testen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz