AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Net Send funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Net Send funktioniert nicht

Ein Thema von tail · begonnen am 2. Jun 2005 · letzter Beitrag vom 10. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
tail

Registriert seit: 2. Jun 2005
89 Beiträge
 
#1

Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:25
Ich habe ein Net Send Script geschrieben, womit man einen Eigenen Absender definieren kann. Aber das Klappt nicht, es kommen keine Nachrichten an, auch nicht wenn ich 127.0.0.1 als IP angebe. Nachrichtenserver ist aber aktiviert!
Hier der Code von der Unit1:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Timer1: TTimer;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Label3: TLabel;
    Edit5: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i: integer;

implementation

{$R *.dfm}


type
  TServerBrowseDialogA0 = function(hwnd: HWND; pchBuffer: pointer; cchBufSize:
    DWord): bool; stdcall;

var
  ServerBrowseDialogA0: TServerBrowseDialogA0 = nil;


function LoadLanManDLL: Boolean;
var
  LANMAN_DLL: THandle;
begin
  result := True;
  LANMAN_DLL := GetModuleHandle('NTLANMAN.DLL');
  if LANMAN_DLL = 0 then
    LANMAN_DLL := LoadLibrary('NTLANMAN.DLL');
  if LANMAN_DLL <> 0 then
  begin
    @ServerBrowseDialogA0 := GetProcAddress(LANMAN_DLL, 'ServerBrowseDialogA0');
    if @ServerBrowseDialogA0 = nil then
      result := False;
  end;
end;


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;


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;




procedure TForm1.Button1Click(Sender: TObject);
begin
NetMsgSend('', edit1.text, edit2.text, edit3.text);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
NetMsgSend('', edit1.text, edit2.text, edit3.text);
i := i+1;
edit5.text := Inttostr(i);
if edit5.text = edit4.Text then begin
timer1.Enabled := false;
i := 0;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
timer1.Enabled := true;

end;

procedure TForm1.Button3Click(Sender: TObject);
var
  Buffer: array[0..1024] of Char;
  s: String;
begin
  if LoadLanManDLL then
  begin
    if not ServerBrowseDialogA0(Handle, @Buffer, sizeof(Buffer)) then
    begin
      s := copy(string(Buffer), 3, length(string(Buffer)));
      edit1.text := s;
    end;
  end;

end;

end.
Ich verstehe das nicht. Irgentwie funktionieren bei mir keine Net Send Scripte, und die funktionieren überall bei anderen. Liegt das vllt an meiner Version? Delphi 7 Personal?

Ich habe die Datei mal als Anhang angehängt, dann könnt ihr es euch auch so nochmal anschauen.

Plese helf
Angehängte Dateien
Dateityp: rar net_send_109.rar (214,2 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:27
Klappts denn in der Eingabeaufforderung?
  Mit Zitat antworten Zitat
tail

Registriert seit: 2. Jun 2005
89 Beiträge
 
#3

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:40
Zitat von Treffnix:
Klappts denn in der Eingabeaufforderung?
ja, das geht.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:42
Zitat von Treffnix:
Klappts denn in der Eingabeaufforderung?
mach mal Start->Ausführen->cmd.exe
dort tippst du ein:
Delphi-Quellcode:
net send <IP-Adresse> <Nachricht>
also z.B. net send 192.168.0.1 Hallo, dies ist eine Nachricht
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:43
Geh doch mal mit F7 in Einzelschritten deinen Code durch un guck, wo er aussteigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
tail

Registriert seit: 2. Jun 2005
89 Beiträge
 
#6

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:51
Zitat von Luckie:
Geh doch mal mit F7 in Einzelschritten deinen Code durch un guck, wo er aussteigt.
Wie? Ich arbeite noch nicht lange an delphi, kenne die funktion nicht. Was macht die? Da kommen manchmal so grüne Pfeile, was bedeuten die?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:55
Cursor in Zeile 107 (hier im Forum ) stellen, F5 drücken, dann F9 und wenn er in 107 anhält jede Zeile einzeln mit F7 abarbeiten. Hältst du dann die Maus über eine Variabel, bekommst du deren Inhalt angezeigt.

Desweiteren hast du doch schon eine Fehlerüberprüfung eingebaut:
Delphi-Quellcode:
  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;
Warum rufst du nicht einfach mal MSDN-Library durchsuchenGetLastError auf und läßt dir den letzten fehler anzeigen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 16:57
Wo bin ich?

Mit F5 oder einen Linksclick auf den linken Rand im Codefenster klicken und du setzt einen BreakPoint(Roter Punkt) geht nur an den Stellen mit einen kleinen blauen Punkt an den entsprechenden Zeilen.
Wenn du jetzt F9 drückst und dein Programm an den Haltepunkt(Breakpoint) kommt hält es an und du kannst gucken was passiert. Mit F8 kannst du dann Schritt für Schritt, Zeile für Zeile weitergehen. Mit F7 springst du noch tiefer in die Fktionen rein. Mit F9 geht es normal weiter, bis zum nächsten Haltepunkt bzw. zum Ende.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
tail

Registriert seit: 2. Jun 2005
89 Beiträge
 
#9

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 17:59
Zitat von Luckie:
Cursor in Zeile 107 (hier im Forum ) stellen, F5 drücken, dann F9 und wenn er in 107 anhält jede Zeile einzeln mit F7 abarbeiten. Hältst du dann die Maus über eine Variabel, bekommst du deren Inhalt angezeigt.

Desweiteren hast du doch schon eine Fehlerüberprüfung eingebaut:
Delphi-Quellcode:
  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;
Warum rufst du nicht einfach mal MSDN-Library durchsuchenGetLastError auf und läßt dir den letzten fehler anzeigen?
Ich kannte die Funktion nicht. Wie gebe ich die denn aus?
  Mit Zitat antworten Zitat
tail

Registriert seit: 2. Jun 2005
89 Beiträge
 
#10

Re: Net Send funktioniert nicht

  Alt 2. Jun 2005, 18:12
Ich habe das mit dem f5 gemacht, in zeile 107 war kein Fehler. Aber in Zeile 105
Also diese:
procedure TForm1.Timer1Timer(Sender: TObject);

Ich hoffe, dass es ein Fehler ist, wenn in dem Roten Punkt ein X ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 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