Столкнулся с казалось бы простенькой задачей, хочу запускать по сети другие
компы. Hа каждом компе установлен NovellClient. Перед загрузкой он вываливает
окно с запросом имени и пароля. Под разные задачи требуется на каждом компе
вводить имя и пароль, при этом зачастую требуется грузить все компы под одним
именем, например - "Admin". Подготовил сервер, на котором и устанавливается
вариант загрузки для всех компов, а вот клиент решил в виде сервиса оформить,
чтобы он когда загрузился, нашел окно этого клиента, и ввел нужное в поля формы
и нажал на ОК. Дык не находит он этого окна. Может грузится позднее. Чтото я в
тупике. Если кто знает подскажите.
Возможно эхой ошибся, не пинайте сильно.
Удачи! Mail_to: FIDO: 2:5009/21.13 E-Mail: oli...@mail.tambov.ru ICQ:
268409918
... Мужчина не собака- на кости не бpосается
Есть клиент и сервер. По техническим причинам сервер может иногда
выключаться. Как сделать так, чтобы клиент продолжал после
отключения искать сервер?
Попробовал повесить в обработчик 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
А сырцы слабо посмотреть ? 90% что получается либо рекурсия, либо стоит
внутри блокировка. Попробуйте делать Open отложенно через посылку
сообщения - т.е. вне обработчика Disconnect.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
Вы писали 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;
Грубо, но заработало! :))