Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem: net send mit anderem Absender (https://www.delphipraxis.net/99905-problem-net-send-mit-anderem-absender.html)

MaSk 19. Sep 2007 12:47


Problem: net send mit anderem Absender
 
Ich will ein eigenes Programm schreiben, mit dem es möglich ist 'net send' Nachrichten im Netzwerk zu senden, wobei auf dem eingehenden Rechner statt meinem Computername ein anderer als Absender steht. :coder:
Ich habe auch schon gefunden was ich dafür brauche (NetMessageSend in der netapi32.dll) und es versucht. es klappt aber immer nur dann wenn ich als Absender (FromParameter) meinen PC-Namen eingeb(was ich ja eigentlich nicht will).

Ich verwende folgenden Code:
Delphi-Quellcode:
function NetSend(Sender,Empfaenger,msg:String):LongInt;
begin
  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(Empfaenger, 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(Sender, 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;
könnte mir vielleichtg´irgendjemand helfen, was ich falsch mache!!!

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]

Bernhard Geyer 19. Sep 2007 12:50

Re: Problem: net send mit anderem Absender
 
Es wird aufgrund des Mißbrauchspotentials einfach nicht gewünscht sein das du falsche Angaben mitgiebst. Netsent wurde ja einige Zeit mal für Spams mißbraucht und deshalb vermutlich im Rahmen von Sicherheitsupdates verbessert.

shmia 19. Sep 2007 12:54

Re: Problem: net send mit anderem Absender
 
Man kann eine Ebene unter NetMessageBufferSend ansetzen und hat so volle Kontrolle.
Ich weiss aber nicht, ob ich das hier verraten soll.

MaSk 19. Sep 2007 13:04

Re: Problem: net send mit anderem Absender
 
Die Rechner auf denen ich mein PRogramm teste sind die pcs ausdem PC-Raum meiner schule.
Ich weiß, dass es irgendwie möglich sein muss wie beschrieben nachrichten zu senden, weil ich ein prog gefunden habe, dass genau das kann, und das funzt.

Luckie 19. Sep 2007 13:08

Re: Problem: net send mit anderem Absender
 
Zitat:

Zitat von MaSk
Die Rechner auf denen ich mein PRogramm teste sind die pcs ausdem PC-Raum meiner schule.

Diese Aussage lässt darauf schliessen, dass das Programm keinen guten Zweck erfüllen soll. Entweder du findest selber raus, wie man so etwas schreibt oder du lässt es bleiben. Aber helfen wird dir hier im Forum hoffentlich keiner. Ich sehe mal davon ab den Thread an dieser Stelle zu schliessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz