![]() |
Net send mit Delphi
Hallo
Ich möchte eine Delphi Programm schreiben mit dem ich per net send Nachrichten verschicken. Dazu brauche ich ja wahrscheinlich eine Batch Datei. Eine net send Zeile würde ja so aussehen. net send {computername} {Nachricht} Mein Problem ist mit einer Procedur eine Batch Datei mit den Parametern für Nachricht und Computername zu erstellen und zu öffnen. Danke schon mal im Vorraus. |
nimmste dir ein memo, fügst da alles ein
und speicherst es mit
Delphi-Quellcode:
ab.
memo.lines.savetofile('filename.bat')
dann kursiert hier im forum eine funktion der shellapi, mit der du das dann öffnen kannst. ![]() Viel Spass noch, Kaemmi :D |
Danke werd ich gleich mal ausprobieren. :coder:
|
Na ja, man kann es bestimmt noch umständlicher machen. Ich müßte dazu nur etwas nachdenken.
Warum startest du nicht das Programm net mit Shellexecute und übergibst als Parameter "send" "Computername" "Nachricht"? Oder noch besser: Nutz die von Microsoft dafür bereitgestellte API-Funktion: NetMessageBufferSend. |
Hast ja recht. Hab mal wieder nich nachgedacht. :oops:
danke für die korrektur. :wink: CU, Kammi P.S. hab hier noch was: Zitat:
|
Dein PS gehört hier wohl nicht hin. Zu dem ist es auch, wie ich finde, nicht sehr lustig und geschmacklos, da alle drei Personenn nichts miteinander zu tun haben.
|
Danke für deinen Vorlschlag Luckie.
Funktioniert wirklich besser so. Hab aber noch mal ne Frage. Kann ich mit deinem Vorlschlag, denn auch an mehrere Computer eine Nachricht gleichzeitig schicken, ohne alles zweimal schreiben zu müssen? |
Oh, Gott. Hab dich nicht so.
Machs auch nie wieder. Versprochen. :D |
gibt es auch eine möglichkeit die "net send"-funktionalität ohne ein "shell execute" zu benutzten?
gruß xpmstos p.s. @ kaemmi: bill gates hat bewundernswertes geleistet, auch wenn es in deinen augen nicht so scheint, schließlich hat er einen weltweiten standard geschaffen durch denen viele (sehr sehr viele) menschen heutzutage ihren lebensunterhalt verdienen, leider ist er dafür auch der große buhmann, wäge selber beide sachen auf und denk mal drüber nach was wäre wenn es nicht soeinen software-standard geben würde und wenn jede firma ihr eigenes ding durchziehen würde... (das gehört hier nicht her, aber ich musste das einfach mal loswerden wo ich soein sch**ß hier lesen muss) |
Zitat:
|
:oops: danke für den hinweis, habs jetzt gelesen...
gruß xpmstos |
Hallo hummer,
nachfolgender Link wäre auch eine nette Lösung des Problems " ![]() bye |
Und wo ist in dem Source der Absender?
|
Hallo joe666sa,
versuchs es doch mal herauszufinden :wink: bye |
Hi,
wie wärs denn da mit ?
Delphi-Quellcode:
MfG BungeeBug
function NetSend(dest, Source, Msg: string): Longint; overload;
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(Dest, 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(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; function NetSend(Dest, Msg: string): Longint; overload; begin Result := NetSend(Dest, '', Msg); end; function NetSend(Msg: string): Longint; overload; begin Result := NetSend('', '', Msg); end; P.S.: Wehe das gibt nen Bomber .... :) |
Ich kapiers immer noch nicht wo der absender ist und wie das funzt. Kann mir das bitte einer erklären.
|
Der Absender wird automatisch durch Windows vergeben. Der Absendername ist automatisch der Rechnername (Wie beim einfachen net send)!
Chris |
Man kann aber auch einen beliebigen mit geben, siehe mein NetSend auf meiner Homepage.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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