Einzelnen Beitrag anzeigen

Delphi Star

Registriert seit: 4. Apr 2004
432 Beiträge
 
Delphi 2005 Personal
 
#1

net send mit gefaktem Absender

  Alt 9. Mai 2004, 14:25
Ich möchte ein Programm schreiben mit dem man Net send Nachrichten mit gefaktem Absender verschicken kann. Ich habe zwar schon einen Source-Code gefunden, aber irendetwas ist daran falsch und ich habe keine Ahnung was

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen } 
    function TForm1.NetMessageBufferSendSubstA(ServerName, MsgName, FromName, Msg: AnsiString): Boolean;
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

function TForm1.NetMessageBufferSendSubstA(ServerName, MsgName, FromName, Msg: AnsiString): Boolean;
{.$DEFINE SYNCHRONOUS} 
const
  szService = '\mailslot\messngr';
  MaxBufLen = $700;
var
  hFile: THandle;
  WrittenBytes: DWORD;
{$IFNDEF SYNCHRONOUS} 
  ovs: OVERLAPPED;
  EventName:String;
{$ENDIF} 
begin
  Result := False;
  if Length(Msg) > MaxBufLen then
    SetLength(Msg, MaxBufLen);
{$IFNDEF SYNCHRONOUS} 
  EventName:='NetSendEvent_'+ServerName;
{$ENDIF} 
  ServerName := '\\' + Servername + szService;
  hFile := CreateFileA(
    @ServerName[1], GENERIC_WRITE, FILE_SHARE_READ, nil, OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL or FILE_FLAG_NO_BUFFERING or FILE_FLAG_OVERLAPPED, 0);
  if hFile <> INVALID_HANDLE_VALUE then
  try
    Msg := FromName + #0 + MsgName + #0 + Msg;
{$IFNDEF SYNCHRONOUS} 
    ovs.hEvent := CreateEventA(nil, True, False, @EventName[1]);
    WriteFile(hFile, Pointer(Msg)^, Length(Msg), WrittenBytes, @ovs);
{$ELSE} 
    WriteFile(hFile, Pointer(Msg)^, Length(Msg), WrittenBytes, nil);
{$ENDIF} 
    Result := GetLastError = ERROR_IO_PENDING;
  finally
{$IFNDEF SYNCHRONOUS} 
    if WaitForSingleObject(ovs.hEvent, INFINITE) <> WAIT_TIMEOUT then
{$ENDIF} 
      CloseHandle(hFile);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
NetMessageBufferSendSubstA('127.0.0.1', 'Ist eh egal', 'DerAbsender', 'Die Nachricht');
end;

end.
Beim Compilen bekomme ich folgende Fehlermeldungen:
  • [Fehler] Unit1.pas(15): Undefinierter Bezeichner: 'Form1'
  • [Fehler] Unit1.pas(27): Bezeichner redefiniert: 'Form1'
  • [Fehler] Unit1.pas(41): '(' erwartet, aber ')' gefunden
  • [Fehler] Unit1.pas(52): '(' erwartet, aber ':=' gefunden
  • [Fehler] Unit1.pas(52): Undefinierter Bezeichner: 'MsgName'
  • [Fehler] Unit1.pas(52): Inkompatible Typen
  • [Fehler] Unit1.pas(54): Operator oder Semikolon fehlt
  • [Fehler] Unit1.pas(55): '(' erwartet, aber ')' gefunden
  • [Fehler] Unit1.pas(55): '(' erwartet, aber ')' gefunden
  • [Fehler] Unit1.pas(55): Anweisung erforderlich, aber Ausdruck vom Typ 'Cardinal' gefunden
  • [Fehler] Unit1.pas(62): Operator oder Semikolon fehlt
  • [Fehler] Unit1.pas(66): '.' erwartet, aber ';' gefunden
  • [Fehler] Unit1.pas(69): Undefinierter Bezeichner: 'NetMessageBufferSendSubstA'
  • [Hinweis] Unit1.pas(15): Das private-Symbol 'Form1' wurde deklariert, aber nie verwendet
  • [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Real programmers code in binary
SwapIt: Punkte