Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Net Send ohne Absender (https://www.delphipraxis.net/10302-net-send-ohne-absender.html)

Matze 15. Okt 2003 16:27


Net Send ohne Absender
 
Hi!

Ich verwende den Net Send Code:
Delphi-Quellcode:
Send := 'send ' + Edit1.Text + ' ' + Memo1.Text + '';
    ShellExecute (GetDesktopWindow, 'open', 'net.exe', PChar(Send), nil, SW_HIDE);
wobei send ein string ist.

Jetzt ist es ja normal, dass beim PC folgende Meldung kommt:
Zitat:

Nachricht von ... an ...
Kann ich auch den Absender verheimlichen oder wenigstens verändern (anderer Absender-name eingeben)? :gruebel:

sakura 15. Okt 2003 16:36

Re: Net Send ohne Absender
 
Solange Du das Standart "net send" nutzt, nein ;-) Suche mal im Forum nach Code zur Programmierung des Services ;-)

...:cat:...

Matze 15. Okt 2003 16:46

Re: Net Send ohne Absender
 
OK, danke.
Das ist mir etwas zu kompliziert, ich möchte ja nur an einen User eine kleine nachricht schicken. ;)

Duffy 15. Okt 2003 16:51

Re: Net Send ohne Absender
 
Hallo Matze,
diese Funktionen sollten Dir helfen
Delphi-Quellcode:
//-----------------------------------------------------------------------//

//#######################################################################//
//## Function NetSend:                                                ##//
//#######################################################################//
//##      Datum: Änderung:                                            ##//
//##      ====== =========                                            ##//
//##  10.07.2001 Initial Release                                      ##//
//#######################################################################//
{$HINTS OFF}
function NetSend(Dest, Source, Msg: string): Longint; overload;
type
  TNetMessageBufferSendFunction = function(Servername, Mmsgname, 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
    begin
      Result := NetMessageBufferSend(nil, DestWideChar, nil, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)
    end
    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;
{$HINTS ON}
//-----------------------------------------------------------------------//

//#######################################################################//
//## Function NetSend:                                                ##//
//#######################################################################//
//##      Datum: Änderung:                                            ##//
//##      ====== =========                                            ##//
//##  10.07.2001 Initial Release                                      ##//
//#######################################################################//
function NetSend(Dest, Msg: string): Longint; overload;
begin
  Result := NetSend(Dest, '', Msg);
end;
//-----------------------------------------------------------------------//

//#######################################################################//
//## Function NetSend:                                                ##//
//#######################################################################//
//##      Datum: Änderung:                                            ##//
//##      ====== =========                                            ##//
//##  10.07.2001 Initial Release                                      ##//
//#######################################################################//
function NetSend(Msg: string): Longint; overload;
begin
  Result := NetSend('', '', Msg);
end;
bye

sakura 15. Okt 2003 16:52

Re: Net Send ohne Absender
 
Also das ist doch ganz einfach... Du startest ein neues Delphi-Projekt, kopierst den Code aus folgendem Thread hinein: http://www.delphipraxis.net/internal...ect.php?t=7078

und dann rufst Du die Funktion einfach auf:
Delphi-Quellcode:
  NetMessageBufferSendSubstA('Empfaenger-PC', 'Ist eh egal', 'DerAbsender', 'Die Nachricht');
...:cat:...

Matze 15. Okt 2003 16:54

Re: Net Send ohne Absender
 
Wow!! :thumb:
Vielen, vielen Dank sakura! :D

Matze 15. Okt 2003 16:57

Re: Net Send ohne Absender
 
Es geht!!
Nochmals Danke!

PS: Aber du musst schon zugeben, etwas komplizierter ist diese variante schon. ;)

sakura 15. Okt 2003 16:59

Re: Net Send ohne Absender
 
Zitat:

Zitat von Matze
PS: Aber du musst schon zugeben, etwas komplizierter ist diese variante schon. ;)

Hm, die Suche ist vielleicht kompliziert, aber Copy & Waste ist ja nicht soooo schwer *g*

Matze 15. Okt 2003 17:01

Re: Net Send ohne Absender
 
Ich meinte ja auch den Code. ;)
Ich verstehe dich schon! :thumb:

negaH 15. Okt 2003 19:10

Re: Net Send ohne Absender
 
Ich habe den Code von Duffy schon öffters gesehen, und meine das er wohl eine Pascal Translation eines schlechten C/C++ Sources sein muß. Mit Delphi kann man diese Funktion viel eleganter programieren:

Delphi-Quellcode:

function NetMsgSend(const ServerName, MsgName, FromName, Msg: WideString): Integer;

  function WC(const Name: WideString): PWideChar;
  begin
    if Name = '' then Result := nil
      else Result := PWideChar(Name);
  end;

var
  NetLib: THandle;
  NetMessageBufferSend: function(ServerName, MsgName, FromName: PWideChar;
                           Buffer: PWideChar; BufferLen: DWord): Integer; stdcall = nil;
begin
  Result := -1;
  NetLib := LoadLibrary('NETAPI32.DLL');
  if NetLib <> 0 then
  try
    @NetMessageBufferSend := GetProcAddress(NetLib, 'NetMessageBufferSend');
    if Assigned(NetMessageBufferSend) then
      Result := NetMessageBufferSend(WC(ServerName), WC(MsgName), WC(FromName),
                  Pointer(Msg), Length(Msg) * 2);
  finally
    FreeLibrary(NetLib);
  end;
end;
Gruß hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.
Seite 1 von 5  1 23     Letzte »    

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 by Thomas Breitkreuz