Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2008, 13:38   #11
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

Если мы знаем этот формат то да:

Например: chkdsk; отображает сколько завершено изменяется в одной строке. потом фиксирует на 100% переходит на новую строку. На этап 2.

if [Format: проверенно : n%] then
TMemo.Lines[текущая]:=s
else
TMemo.Lines[следющая]:=s

Однако допустим мы формата не знаем тогда и происходит проблема.

Может можно сделать привязку к текущему местоположению в памяти, а лучше к памяти определённой строки Cmd? Т.е. если информация на том же месте в памяти(читай строке), иначе если в новой строке....
Don't worry be happy
Izhic вне форума Ответить с цитированием
Старый 18.10.2008, 13:57   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Я чтот не пойму проблема прочитать строку и найти нужное место с процентами и куда там их вывести или перевести или проблема в том что вы пишете программу которая незнает что запускает и незнает где и как читать строку ? Ну если вариант два тогда я не в помошь Сформулируйте пожалуйста вопрос что именно у вас есть как в это получаите и что надо получить на выводе !
Какая еще строка памяти CMD. Как вы себе представляите искать указатель на эту строку... это бессмысленно.

Последний раз редактировалось BOBAH13; 18.10.2008 в 14:00.
BOBAH13 вне форума Ответить с цитированием
Старый 19.10.2008, 12:02   #13
Izhic
Форумчанин
 
Аватар для Izhic
 
Регистрация: 08.10.2008
Сообщений: 668
По умолчанию

Цитата:
программу которая незнает что запускает
а точнее одну но где нет строгого формата.
Цитата:
Какая еще строка памяти CMD
Не знаю Я такого не нашёл. Однако это же не значит что такого нет :-D
Поэтому Я и спрашиваю, может Вы знаете.
Don't worry be happy

Последний раз редактировалось Izhic; 19.10.2008 в 12:15.
Izhic вне форума Ответить с цитированием
Старый 19.10.2008, 12:51   #14
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ну факт остается фактом, что вы пишите прогу которая собирается читать формат строки который неизвествно каким может быть... это не реально! Когда поймете чего хотите и что пишите тогда обращайтесь.
BOBAH13 вне форума Ответить с цитированием
Старый 28.10.2008, 23:20   #15
GreenIdea
Новичок
Джуниор
 
Регистрация: 28.10.2008
Сообщений: 1
По умолчанию Консоль запускается и тут же закрывается

ПОМОГИТЕ, ЛЮДИ, PLEASE...))) Консоль только запускается и сразу же закрывается...Не могу понять что не так???
Код:
var
Form1: TForm1;
stinfo : TStartupInfo;
prinfo : TProcessInformation;
ReadPipe,WriteToCommand,ReadFromCommand,WritePipe, ReadP, WriteP: THandle;
SecAtt : PSecurityAttributes;
PipeLab: integer;
ChildProc : TChildProc;
implementation

{$R *.dfm}
function TChildProc.CreateChildProcess(ExeName, CommandLine: string;
ReadP,WriteP: THandle): Boolean;
var
piProcInfo: TProcessInformation;
siStartInfo: TStartupInfo;
SecAtr : PSecurityAttributes;

begin

// Set up members of STARTUPINFO structure.
ZeroMemory(@siStartInfo, SizeOf(TStartupInfo));
siStartInfo.cb := SizeOf(TStartupInfo);
siStartInfo.hStdInput := ReadP;
siStartInfo.hStdOutput := WriteP;
siStartInfo.wShowWindow := SW_SHOW;
siStartInfo.dwFlags :=STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES;
// Create the child process.
Result := CreateProcess(nil,
PChar(ExeName + ' ' + CommandLine), // command line
SecAtt, // process security attributes
SecAtt, // primary thread security attributes
TRUE, // handles are inherited
REALTIME_PRIORITY_CLASS, // creation flags
nil, // use parent's environment
nil, // use parent's current directory
siStartInfo, // STARTUPINFO pointer
piProcInfo); // receives PROCESS_INFORMATION



end;


procedure TForm1.Button1Click(Sender: TObject);
var Tmp1, Tmp2 : THandle; sErr : string;
begin
sErr:='Error';

if (Edit1.Text='CreatePipe') and (PipeLab<>1) then
begin
PipeLab:=1;
New(SecAtt);
SecAtt.nLength := SizeOf(PSecurityAttributes);
SecAtt. bInheritHandle := True;
SecAtt.lpSecurityDescriptor := nil;
if not ((CreatePipe(ReadPipe, WriteToCommand, SecAtt, 0)) or
(CreatePipe(ReadFromCommand, WritePipe, SecAtt, 0))) then

Edit1.Text:='Fuck:)' else
begin




DuplicateHandle(GetCurrentProcess(), ReadPipe,
GetCurrentProcess(), @Tmp1, 0, False, DUPLICATE_SAME_ACCESS);




DuplicateHandle(GetCurrentProcess(), WritePipe,
GetCurrentProcess(), @Tmp2, 0, False, DUPLICATE_SAME_ACCESS);



CloseHandle(ReadPipe);
CloseHandle(WritePipe);
ReadPipe := Tmp1; //И воткнем их места НЕ наследуемые дубликаты
WritePipe := Tmp2;

Edit1.Text:='Ok';


end;
end
else if (Edit1.Text='Cmd') and (PipeLab=1) then
begin

if ChildProc.CreateChildProcess('cmd.exe', '',
ReadPipe, WritePipe)
then
Begin

PipeLab:=2;
Edit1.Text:='Process starts';
end else Edit1.Text:='Can not start process';
end

Последний раз редактировалось rpy3uH; 29.10.2008 в 13:06.
GreenIdea вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и копирование текста из консольного окна Mago Паскаль, Turbo Pascal, PascalABC.NET 8 25.07.2008 15:04
Программа ввода и вывода последовательности символов(Assembler) WST Помощь студентам 1 01.04.2008 12:33
Си против Си++ - сис. ввода-вывода Sota Общие вопросы C/C++ 4 31.07.2007 17:52
Перехват вывода консольного приложения Роман Радер Общие вопросы Delphi 0 12.02.2007 18:40