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

Вниз

Программа висит в процессах   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.081 c
15-1337788427
AV
2012-05-23 19:53
2013.03.22
Прошу помощи по .htaccess. Переназначить параметр можно?


3-1278159587
alex810
2010-07-03 16:19
2013.03.22
Запрос с нечувствительностью к регистру


15-1350838886
Лида
2012-10-21 21:01
2013.03.22
Обработка различных событий в Delphi


15-1338660812
Knight
2012-06-02 22:13
2013.03.22
Как распечатывать текст программы для диплома?


2-1333845479
SiDimka
2012-04-08 04:37
2013.03.22
Как инициализировать объект?