![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
net send без имени компа? [D5, Win95/98, WinME, NT4, Win2k]
Osmiy © (2001-11-22 13:38:00)Есть какой либо способ послать сообщение типа net send только чтобы не выдовало имя компа с которого посылается.
Tosov (2001-12-01 16:25:00) [1]marconi
Пожалуйста прокоментируй эту строчку (есть подозрение, что она требует прав админа :(, к сожалению проверить пока не могу ):
NetMessageBufferSend("", User, UName, MsgBuff, lStrLenW(MsgBuff)* SizeOf(pWideChar));
Osmiy (2001-12-01 15:43:00) [2]marconi:Спасибо за код, но он к сожалению посылает сообщение только если вместо StrPas(" TEST "); я напишу имя своего компа, иначе он пишет :) в метке типа ошибка 2273, вроде как подходит к ошибке 2200-2299 - NNTP, но что это значит... мне мало что говорит.
Если знаешь как от этого избавится то можешь поиочь?
marconi (2001-11-29 10:31:00) [3]
unit Net_Send2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, lmmsg;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Function UserName: string;
var
Size: DWORD;
Buffer : PChar;
begin
Size:=32;
GetMem(Buffer, Size);
try
if GetUserName(Buffer,Size) then
Result := StrPas("TEST"); //StrPas(Buffer); <--- Имя !!! от кого мессага
finally
FreeMem(Buffer);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Code : Integer;
MsgBuff : pWideChar;
Size, NewSize : Integer;
User, UName : Array[0..127] Of WideChar;
begin
Size := Length(Memo1.Text);
StringToWideChar(ComboBox1.Text, User, SizeOf(User) div 2);
StringToWideChar(UserName, UName, SizeOf(UName) div 2);
NewSize := Size * 2;
MsgBuff := VirtualAlloc(nil, Size, Mem_Commit, Page_ReadWrite);
MultiByteToWideChar(CP_ACP, 0, PChar(Memo1.Text), Size, MsgBuff, NewSize);
Code := NetMessageBufferSend("", User, UName, MsgBuff, lStrLenW(MsgBuff)* SizeOf(pWideChar));
If Code = 0 Then
Label3.Caption := "Message was sent Successfully!"
Else
Label3.Caption := "Returned Error Code: " + IntToStr(Code);
{case a of
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");
Else
ShowMessage("Unknow Error");
end;
}
end;
end.
marconi (2001-11-28 12:50:00) [4]Я в своем время использовал Languard Network Scaner, он позвалял отсылать net send с чужим именем (каким захочеш) поищи в сети, но если тебе нужно самому написать то сорри ....
Osmiy (2001-11-28 12:32:00) [5]Tosov:
Спасибо за адресок.
Работать то работает, но имя исходящего компа поменять нельзя, работает только если введео имя моего компа!
Мне хотелось бы чтобы вместо имени моего компабыло написано что я захочу!
Tosov (2001-11-24 16:13:00) [6]Уточняющий вопрос:
тебе надо просто net send (на дельфи : http://delphi.xonix.ru/faq/lan/netsend01.shtmlна С поищи NetMessageBufferSend ) или надо net send без имени пользователя или компа??
Osmiy (2001-11-24 15:28:00) [7]Уточняю я не админ.
Т.е. Мне надо исходничек net"a, мона на Делфе, но лучше на С конечно.
Tosov (2001-11-23 21:50:00) [8]2handra
>под NT4 - есть способ отправить сообщение по абсолютно любым именем
КАК???
handra (2001-11-23 10:54:00) [9]под NT4 - есть способ отправить сообщение по абсолютно любым именем
Tosov (2001-11-23 00:56:00) [10]Вроде имеется возможность послать сообщение от другого компа (ты там должен быть админом)[WinNT/Win2k]