Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Старый добрый net send:)   Найти похожие ветки 

 
noname:) ©   (2004-12-01 00:09) [0]

Я понемаю что это заюзаная до дыр тема но всёже:)
У меня такая проблема. В моей программе есть возможность посылать net send сообщения с подменённым именем. В WinXP SP1 код с использованием NetMessageBufferSend всё ОК но уже в WinXP SP2 при попытке отправить сообщение с подменённым именем ничего не выходит! Решил через маилслоты попробовать. С ними сообщения с левым именем нормально шлются но при попытке вместо имени машины получателя поставить её айпи снова ничего не отправляется! Какойто замкнутый круг!!!! Главное в проге LanSend всё работает!!! Короче помогите как говорится кто чем может:)

Привожу код с использованием маилслотов - может я чёто напартачил:)

unit UberNetSend;
interface
 function SendMsg(sServer,sText,sFrom,sTo:string):boolean;
implementation
uses
Windows,sysutils;
function ConvertAnsiToOem(const S : string) : string;
{ ConvertAnsiToOem translates a string into the OEM-defined character set }
{$IFNDEF WIN32}
var
 Source, Dest : array[0..255] of Char;
{$ENDIF}
begin
{$IFDEF WIN32}
 SetLength(Result, Length(S));
 if Length(Result) > 0 then
   AnsiToOem(PChar(S), PChar(Result));
{$ELSE}
 if Length(Result) > 0 then
 begin
   AnsiToOem(StrPCopy(Source, S), Dest);
   Result := StrPas(Dest);
 end;
{$ENDIF}
end; { ConvertAnsiToOem }
function SendMsg(sServer,sText,sFrom,sTo:string):boolean;
var
pack : array[0..447] of char;
i,n : integer;
hsFile: THandle;
chbuf : array [0..$FF] of Char;
begin
 result:=false;
 //конвертируем в OEM
 sText:=ConvertAnsiToOem(sText);
 sFrom:=ConvertAnsiToOem(sFrom);
 sTo:=ConvertAnsiToOem(sTo);
 //отправляем
 hsFile:=CreateFile( PChar("\\" + sServer + "\mailslot\messngr"), GENERIC_WRITE, FILE_SHARE_READ,nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if hsFile=INVALID_HANDLE_VALUE then exit;
 n:=0;
 for i:=1 to length(sFrom) do begin
   pack[n]:=sFrom[i];inc(n);
 end;
 pack[n]:=#0;inc(n);
 for i:=1 to length(sTo) do begin
   pack[n]:=sTo[i];inc(n);
 end;
 pack[n]:=#0;inc(n);
 for i:=1 to length(sText) do begin
   pack[n]:=sText[i];inc(n);
 end;
 pack[n]:=#0;inc(n);
 result:=WriteFile(hsFile, pack , n, DWORD(i), nil);
 CloseHandle(hsFile);
end;
end.

----------Посылаем------------------
SendMsg("alexxx","hi","god","alexxx")
------------------------------------


 
Ильичев С.А. ©   (2004-12-01 05:47) [1]

Так а ты не пытайся айпи вставлять.
Получай имя сначала по айпи.


 
noname:) ©   (2004-12-01 11:05) [2]

Дык пытался... У меня в сетке если у тебя указаны в свойствах подключения DNS-ы для подключения к инету а от этого самого инета тебя отключил злой админ то возвращение имени по айпи страшно тормозит. Вот я и подумал что может ещё какой сопособ есть:)



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
14-1106387500
DSKalugin
2005-01-22 12:51
2005.02.13
восстановление информации на CD-R?


1-1106929868
Боян Георгиев
2005-01-28 19:31
2005.02.13
OnMouseMove := ShapeMouseOver;


1-1107155471
КаПиБаРа
2005-01-31 10:11
2005.02.13
Главная форма как в Delphi IDE


14-1106317972
Aleksandr
2005-01-21 17:32
2005.02.13
Сетевой принтер (что да как)


11-1089933668
Baloo
2004-07-16 03:21
2005.02.13
Что-то я недомудрил с датой?