Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПрограмма висит в процессах Найти похожие ветки
← →
leklerk © (2012-06-04 12:29) [0]Добрый день! Почему-то программа (пингующая компьютер и отсылающая сообщение) висит в процессах. Что не так?
unit UnitPingAndMsg_Test;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, IdIcmpClient, IdBaseComponent, IdComponent,
IdRawBase, IdRawClient, ExtCtrls;
type
TForm1 = class(TForm)
IdIcmpClient1: TIdIcmpClient;
procedure FormCreate(Sender: TObject);
procedure IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
// массив имен пользователей
users: array[1..1] of AnsiString;
// массив IP-адресов
ip: array[1..1] of AnsiString;
i: Integer;
iWinExec: Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
users[1] := "nikolay";
ip[1] := "10.10.1.7";
for i := 1 to 1 do begin
IdIcmpClient1.Host:=ip[i];
IdIcmpClient1.ReceiveTimeout := 1001;
IdIcmpClient1.Ping;
end;
end;
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
var
Str: AnsiString;
begin
try
if AReplyStatus.MsRoundTripTime<1000 then
begin
Str := "cmd.exe /c msg " + users[i]
+ " "Тестовое сообщение!"";
try
iWinExec:= WinExec(PAnsiChar(Str), SW_HIDE);
if iWinExec>31 then
ShowMessage(IntToStr(iWinExec));
except
end;
end
else
ShowMessage("Ping не прошел!");
finally
Form1.Close;
end;
end;
end.
← →
Anatoly Podgoretsky © (2012-06-04 13:11) [1]
> IdIcmpClient1.Ping;
Это убери отсюда
← →
leklerk © (2012-06-04 13:19) [2]В своем репертуаре. ))
← →
Anatoly Podgoretsky © (2012-06-04 13:29) [3]Ты так нифига и не понял, что вообще то неудивительно.
← →
leklerk © (2012-06-04 13:49) [4]Если Ping убрать, то программа перестанет работать. Вы это понимаете, дяденька?
← →
И. Павел © (2012-06-04 14:15) [5]> Что не так?
Попробуй этот код:procedure TForm1.FormCreate(Sender: TObject);
begin
Close;
end;
Если ты форму еще не открыл, то она и не закроется.
← →
Cobalt © (2012-06-04 16:02) [6]А что видно в отладчике?
← →
Anatoly Podgoretsky © (2012-06-04 16:07) [7]Убери в другое место все это
> for i := 1 to 1 do begin
> IdIcmpClient1.Host:=ip[i];
> IdIcmpClient1.ReceiveTimeout := 1001;
> IdIcmpClient1.Ping;
> end;
Видимо ума на это не хватило.
← →
Anatoly Podgoretsky © (2012-06-04 16:07) [8]Хотя можешь рогом упираться, кто запрещает.
← →
DVM © (2012-06-04 17:54) [9]
> leklerk ©
Даже если ты все ошибки исправишь твоя программа все равно будет испытывать проблемы при работе не из под админа.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.072 c