Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NovelClient

0 views
Skip to first unread message

Ivan Burmakin

unread,
Mar 18, 2006, 2:06:32 PM3/18/06
to
ПРИВЕТ, _All_!!!
=====================

Столкнулся с казалось бы простенькой задачей, хочу запускать по сети другие
компы. Hа каждом компе установлен NovellClient. Перед загрузкой он вываливает
окно с запросом имени и пароля. Под разные задачи требуется на каждом компе
вводить имя и пароль, при этом зачастую требуется грузить все компы под одним
именем, например - "Admin". Подготовил сервер, на котором и устанавливается
вариант загрузки для всех компов, а вот клиент решил в виде сервиса оформить,
чтобы он когда загрузился, нашел окно этого клиента, и ввел нужное в поля формы
и нажал на ОК. Дык не находит он этого окна. Может грузится позднее. Чтото я в
тупике. Если кто знает подскажите.
Возможно эхой ошибся, не пинайте сильно.

Удачи! Mail_to: FIDO: 2:5009/21.13 E-Mail: oli...@mail.tambov.ru ICQ:
268409918
... Мужчина не собака- на кости не бpосается

Andy

unread,
Mar 20, 2006, 5:59:37 AM3/20/06
to
Здравствуйте, ALL.

Есть клиент и сервер. По техническим причинам сервер может иногда
выключаться. Как сделать так, чтобы клиент продолжал после
отключения искать сервер?

Попробовал повесить в обработчик OnDisconnect команду
ClientSocket1.Open, но ее почему-то игнорируют, хотя обработчик явно
запускается: успевает перед закрытием выдать строку в мемо

Вот куски кода:

var
IsError: Boolean = False;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Memo1.Lines.Add('ClientSocket1Connecting');
IsError:=True;
Socket.Close; //избавляемся от ошибок
ClientSocket1.Open;
ErrorCode:=0; //избавляемся от ошибок
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('ClientSocket1Disconnect');
//Без этого условия виснит
If not IsError then begin
Memo1.Lines.Add('Reconnect'); //это успевает показать!
ClientSocket1.Open; // а это почему-то игнорируется! :((
end;
IsError := False;
end;

--
С уважением,
Andy mailto:an...@cherno.cv.ua

Alexey G. Nalimov

unread,
Apr 1, 2006, 2:13:25 PM4/1/06
to
> procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
> Socket: TCustomWinSocket);
> begin
> Memo1.Lines.Add('ClientSocket1Disconnect');
> //Без этого условия виснит
> If not IsError then begin
> Memo1.Lines.Add('Reconnect'); //это успевает показать!
> ClientSocket1.Open; // а это почему-то игнорируется! :((
> end;
> IsError := False;
> end;

А сырцы слабо посмотреть ? 90% что получается либо рекурсия, либо стоит
внутри блокировка. Попробуйте делать Open отложенно через посылку
сообщения - т.е. вне обработчика Disconnect.

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Andy

unread,
Apr 3, 2006, 6:42:13 AM4/3/06
to
Здравствуйте, Alexey.

Вы писали 3 квЁтня 2006 р., 22:13:25:

>> procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
>> Socket: TCustomWinSocket);
>> begin
>> Memo1.Lines.Add('ClientSocket1Disconnect');
>> //Без этого условия виснит
>> If not IsError then begin
>> Memo1.Lines.Add('Reconnect'); //это успевает показать!
>> ClientSocket1.Open; // а это почему-то игнорируется! :((
>> end;
>> IsError := False;
>> end;

AGN> А сырцы слабо посмотреть ? 90% что получается либо рекурсия, либо стоит
AGN> внутри блокировка. Попробуйте делать Open отложенно через посылку
AGN> сообщения - т.е. вне обработчика Disconnect.

Перечитал много форумов - советуют создавать таймер...
Так и сделал! :)
При дисконекте запускается таймер (созданный не визуально), в котором

If not ClientSocket1.Active then ClientSocket1.Open;

Грубо, но заработало! :))

0 new messages