delphi: Probleme mit NetSend

  • #1
M

Mister_Register

Bekanntes Mitglied
Themenersteller
Dabei seit
17.08.2002
Beiträge
100
Reaktionspunkte
0
Hallöle.
ich versuche grade ein programm zu schreiben, dass es erleichtert, über das lokale Netzwerk nachrichten zu verschicken...
ich will dazu das 'programm' netSend benutzen.
habe allerdings einige probleme beim Einbinden....:


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

type
TFmHaupt = class(TForm)
Send: TButton;
procedure SendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FmHaupt: TFmHaupt;

implementation
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;
procedure TFmHaupt.SendClick(Sender: TObject);

const
NERR_BASE = 2100;
NERR_NameNotFound = NERR_BASE + 173;
NERR_NetworkError = NERR_BASE + 36;
NERR_Success = 0;

var
Res: Longint;
sMsg: string;
begin
Res := NetSend('LoginName', 'Your Message...');
case Res of
ERROR_ACCESS_DENIED: sMsg := 'user does not have access to the requested information.';
ERROR_INVALID_PARAMETER: sMsg := 'The specified parameter is invalid.';
ERROR_NOT_SUPPORTED: sMsg := 'This network request is not supported.';
NERR_NameNotFound: sMsg := 'The user name could not be found.';
NERR_NetworkError: sMsg := 'A general failure occurred in the network hardware.';
NERR_Success: sMsg := 'Message sent!';
end;
ShowMessage(sMsg);
end;
end.



das is der code...
er meldet nun beim ausführen folgenden fehler:

Project (dateiname).exe raised exception class EResNotFound with message 'Ressource TFmHaupt not found'. Process stopped. Use next or Run to continue


daraus werde ich irgendwie nicht schlau... kann mir das mal jemand erklären und vielleicht sogar das problem lösen?
 
  • #2
*schnüff* wieso hilft mir denn keiner?
bitte sagt mir wenigstens warum ihr nich antwortet...
 
  • #3
Hi

Nicht traurig sein, aber meines Wissens ist die Anzahl von Delphi Codern hier noch relativ gering.

Wenn einer die Lösung weiß, wird er sie bestimmt auch noch posten.

Gruß, Michael
 
  • #4
danke, das baut mich auf... ;)
aber ich habe mein problem selbst gefunden....:
ziemlich weit oben, habe ich anstelle:
implementation
{$R *.dfm}

nur
implementation

eingegeben... tja, that's life...

falls das Programm jemand haben will, muss er mich kontaktieren...
damit ist es möglich, mithilfe des Programmes NetSend, nachrichten über das lokale Netzwerk zu verschicken... ohne dabei immer das Start/Ausführen fenster zu benutzen....!
 
  • #5
Hi crazy_duck,
send mir mal das Programm an : [red]Mail-Adresse entfernt wg. Spamschutz[/red]

Vielleicht mit quellcode und Projektdateien (falls du es mit selhpi 7 gemacht hast)

Ich hoffe das du es mir senden kannst.
 
  • #6
Hallo,

Ich bin immer mit ein paar Freunden im Teamspeak und wir würden dort immer gerne etwas Musik haben.

Allerdings ein Problem: ich kriegst nicht hin, dass ich reden kann und gleichzeitig über eine zweite instanz von TS Musik läuft, weil der ganze audioausgangs meines PCs beim "Musik-TS" als input genommen wird. Jetzt wenn jemand von meinen Freunden spricht wird das wieder von der 2. TS instanz wiedergegeben....

Da meistens die Musik über Youtube kommt wollte ich, dass wenn möglich das audiosignal von opera als Input des Musik-TS genommen wird. Nur: Geht das überhaupt und wenn ja, wie ?

Vielen dank schon mal :D

MfG Julian
 
Thema:

delphi: Probleme mit NetSend

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben