做一程序但不知如何調用Dos下的net send ComputerName 'message'中net Send的命令,請各們達人指教。 如何用shellexecute這個函數達到這種效果呀,.....,就我建一個窗口,在上面填入別人的電腦名或者IP,填入信息,點發送就用net send命令發送出去。多謝幫忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接使用API发吧====================unit Dummy;interface function NetSend(Dest, Source, Msg: string) : Longint;constNERR_Success=0;NERR_BASE =2100;NERR_NameNotFound =(NERR_BASE+173);NERR_NetworkError =(NERR_BASE+36);{ NERR_Success:caption:='NERR_Success'; ERROR_ACCESS_DENIED: ShowMessage('The user does not have access to the requested information.'); ERROR_INVALID_PARAMETER : ShowMessage('The specified parameter is invalid.'); ERROR_NOT_SUPPORTED : ShowMessage('This network request is not supported.'); NERR_NameNotFound : ShowMessage('The user name could not be found.'); NERR_NetworkError : ShowMessage('A general failure occurred in the network hardware.');}implementationuses windows;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 { NetSend } Handle := LoadLibrary('NETAPI32.DLL'); if Handle=0 then begin Result := GetLastError; Exit; end; { Handle=0 } @NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend'); if @NetMessageBufferSend=nil then begin Result := GetLastError; Exit; end; { @NetMessageBufferSend=nil } 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; { not (Source='') } finally FreeMem(MessagetextWideChar); FreeLibrary(Handle); end; { try }end; { NetSend }function NetSend(Dest, Msg: string) : Longint; overload;begin { NetSend } Result := NetSend(Dest, '', Msg);end; { NetSend }function NetSend(Msg: string) : Longint; overload;begin { NetSend } Result := NetSend('', '', Msg);end; { NetSend }//begin// NetSend('exchage', 'Hello, Mike');end. 还是建议直接API的http://lysoft.7u7.net ShellExecute(Self.Handle, 'OPEN', 'net', 'send 192.168.0.1 ''这样应该可以了吧!''', SW_SHOW); winexec(pchar('net send 172.18.93.150 发送内容'),0);开始的时候USE 一下 WINDOWSNET SEND在98下不能运行要打开WINPUPO.EXE c语言中(*y)[i]=1.1; 怎样解释翻译成delphi语言! DBGrid找回编号字段 能用TADODataset向两个关联表插入数据吗? 怎么判断输入给 edit 框的内容是不是日期型的。 急、急、急:一个变量怎样传入到流中的操作? 在表中搜索数据 急!Delphi+Ado+SqlServer2000 如何在代码中创建表?马上结帖!!!! 关于TQuery的简单问题,请DX指点 关于Delphi 7 中的dbExpress和DataSnap连Oracle的问题 intranet虚拟域名 请教有丰富开发经验的Delphi高手 推荐、好歌、进者有分
====================
unit Dummy;interface
function NetSend(Dest, Source, Msg: string) : Longint;
const
NERR_Success=0;
NERR_BASE =2100;
NERR_NameNotFound =(NERR_BASE+173);
NERR_NetworkError =(NERR_BASE+36);
{
NERR_Success:caption:='NERR_Success';
ERROR_ACCESS_DENIED: ShowMessage('The user does not have access to the requested information.');
ERROR_INVALID_PARAMETER : ShowMessage('The specified parameter is invalid.');
ERROR_NOT_SUPPORTED : ShowMessage('This network request is not supported.');
NERR_NameNotFound : ShowMessage('The user name could not be found.');
NERR_NetworkError : ShowMessage('A general failure occurred in the network hardware.');
}
implementation
uses
windows;
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 { NetSend }
Handle := LoadLibrary('NETAPI32.DLL');
if Handle=0 then
begin
Result := GetLastError;
Exit;
end; { Handle=0 }
@NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
if @NetMessageBufferSend=nil then
begin
Result := GetLastError;
Exit;
end; { @NetMessageBufferSend=nil }
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; { not (Source='') } finally
FreeMem(MessagetextWideChar);
FreeLibrary(Handle);
end; { try }
end; { NetSend }function NetSend(Dest, Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend(Dest, '', Msg);
end; { NetSend }function NetSend(Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend('', '', Msg);
end; { NetSend }//begin
// NetSend('exchage', 'Hello, Mike');
end.
开始的时候USE 一下 WINDOWS
NET SEND在98下不能运行要打开WINPUPO.EXE