![]() |
Net Send funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
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:
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?
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 habe die Datei mal als Anhang angehängt, dann könnt ihr es euch auch so nochmal anschauen. Plese helf :wink: |
Re: Net Send funktioniert nicht
Klappts denn in der Eingabeaufforderung?
|
Re: Net Send funktioniert nicht
Zitat:
|
Re: Net Send funktioniert nicht
Zitat:
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 |
Re: Net Send funktioniert nicht
Geh doch mal mit F7 in Einzelschritten deinen Code durch un guck, wo er aussteigt.
|
Re: Net Send funktioniert nicht
Zitat:
|
Re: Net Send funktioniert nicht
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:
Warum rufst du nicht einfach mal
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; ![]() |
Re: Net Send funktioniert nicht
:gruebel: Wo bin ich? :mrgreen:
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 |
Re: Net Send funktioniert nicht
Zitat:
|
Re: Net Send funktioniert nicht
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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