HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #20  
Старый 23.12.2019, 13:55
guest11
Новичок
Регистрация: 04.12.2018
Сообщений: 20
С нами: 3917846

Репутация: 0
По умолчанию

работает , даже в memo записывает ,

.SpoilerTarget" type="button">Spoiler: 1
unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

potok = class(TThread) //Этой строкой мы унаследовали класс потока

private

str: string;//в разделе private описываются переменные с помощью которых мы

nomer : Integer;//будем передавать значения между процедурами внутри потока

protected

procedure Execute; override;//это главная процедура потока, она начинает свою работу

//после того как мы создали поток

public

procedure synchro;//в разделе public вы можете объявить процедуры какие только душе

//угодно

constructor Create(CreateSuspended: Boolean);//эта строка говорит о том, что мы в

//implementation опишем конструкцию

//потока

end;

var

a: array [1..10] of potok;

Form1: TForm1;

nom:integer;

implementation

constructor potok.Create(CreateSuspended: Boolean);

begin

inherited Create(CreateSuspended);//Эта строка говорит о том, что поток после создания

//будет приостановлен если ему передать значение true при создание, если false, то сразу

//начнёт работу.

end;

{$R *.dfm}

procedure Ping(IP: String; OutMemo:TMemo);

const BUFSIZE = 2000;

var SecAttr : TSecurityAttributes;

hReadPipe,

hWritePipe : THandle;

StartupInfo: TStartUpInfo;

ProcessInfo: TProcessInformation;

Buffer : Pchar;

WaitReason,

BytesRead : DWord;

begin

with SecAttr do

begin

nlength := SizeOf(TSecurityAttributes);

binherithandle := true;

lpsecuritydescriptor := nil;

end;

if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then

begin

Buffer := AllocMem(BUFSIZE + 1);

FillChar(StartupInfo, Sizeof(StartupInfo), #0);

StartupInfo.cb := SizeOf(StartupInfo);

StartupInfo.hStdOutput := hWritePipe;

StartupInfo.hStdInput := hReadPipe;

StartupInfo.dwFlags := STARTF_USESTDHANDLES +

STARTF_USESHOWWINDOW;

StartupInfo.wShowWindow := SW_HIDE;

if CreateProcess(nil,

PChar('ping.exe '+IP),

@SecAttr,

@SecAttr,

true,

NORMAL_PRIORITY_CLASS,

nil,

nil,

StartupInfo,

ProcessInfo) then

begin

repeat

WaitReason := WaitForSingleObject( ProcessInfo.hProcess,100);

Application.ProcessMessages;

until (WaitReason <> WAIT_TIMEOUT);

Repeat

BytesRead := 0;

ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);

Buffer[BytesRead]:= #0;

OemToAnsi(Buffer,Buffer);

OutMemo.Text := OutMemo.text + String(Buffer);

until (BytesRead
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.