![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод из неконсольного приложения в консоль... [D7, XP, 2003]
cosinus@bk.ru © (2008-10-15 11:01:00)Доброе утро.
Проблемма такая, есть неконсольное приложение, которое запускается с некоторыми ключами, как правило из консоли.
Вопрос собственно, как мне в эту же консоль из под которой я запускаю свое приложение, делать какой-либо вывод?
Нашел толькоAllocConsole\FreeConsole, но это не то, ибо The AllocConsole function allocates a newconsole for the calling process.А мне необходимо делать вывод в ту же...
Cosinus (2008-10-16 10:42:00) [1]Спасибо всем за помощь, буду разбираться.
clickmaker (2008-10-15 13:32:00) [2]> Не фурычит. Вообще ничего не отображается
ну попробуй через ShellExecute
Palladin (2008-10-15 13:22:00) [3]
> как осуществлять обмен (ввод\вывод) из тела оконного приложения
> в консоль из под которой оно запущено?
WriteLn
Cosinus (2008-10-15 13:00:00) [4]
> Palladin © (15.10.08 12:03) [7]
Спасибо. В моем случае это видимо решит проблемму.
Но это частный случай, а существует ли решение в общем виде, как осуществлять обмен (ввод\вывод) из тела оконного приложения в консоль из под которой оно запущено? Но это уже так... Для развития :)
> clickmaker © (15.10.08 12:10) [8]
Эм... Что-то не то. Хотя решение очень красивое и если бы я помнил проtype <имя файла>, то посмотрев на описаниеWinExec, в коем сказано, чтоThis function is provided for compatibility with earlier versions of Windows... pCmdLine:наверно бы и сам допер, но про
Points to a null-terminated character string that contains the command line (filename plus optional parameters) for the application to be executed.typeя не помнил - давно это было :) Да, если честно, то и в справку поWinExecтолько сейчас глянул. Спасибо за полезную информацию.
А что по поводу, почему "не так" ... Не фурычит. Вообще ничего не отображается, хотя если вбиваю эту строку напрямую в cmd, то естественно все отрабатывает...
clickmaker (2008-10-15 12:10:00) [5]> Но мне действительно интересно, как :)
WinExec(PChar('type ' + YourHelpFilePath + ' && pause'), SW_SHOWNORMAL);
Palladin (2008-10-15 12:03:00) [6]хм...
program Project1;
{$APPTYPE CONSOLE}
uses
Windows,
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
If ParamStr(1)='/?' Then
Begin
WriteLn('HelloWindows');
Exit;
End Else FreeConsole;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
вот только при запуске из FAR например, FAR будет ждать, пока процесс не завершится, в любом случае... как один из выходов придется писать два приложения )
Cosinus (2008-10-15 11:56:00) [7]
> Palladin © (15.10.08 11:45) [3]
Плохиш © совершенно прав :)
У меня приложение неконсольное, а в вашем примере, оно таки консольное. Как раз если приложение{$APPTYPE CONSOLE}, то проблемм то никаких и нет и я с вами полностью согласен, что это элементарно. А в моем случае? И вообще, возможно ли это? Может это моветон? И есть ли смысл с этим заморачиваться, если мне это просто интересно?
Есть как минимум 2 других варианта.
1) Просто сделать все приложение консольным, что сразу прибьет все мои проблеммы
2) Вывести, "как в RAdmin"
Но мне действительноинтересно, как :)
Ega23 (2008-10-15 11:52:00) [8]
> Palladin © (15.10.08 11:45) [3]
Он StdIn и StdOut в оконном приложении хочет.
Плохиш (2008-10-15 11:49:00) [9]
> Palladin © (15.10.08 11:45) [3]
Он же не этого хочет :-)
Palladin (2008-10-15 11:45:00) [10]
program KakVRAdmin;
{$APPTYPE CONSOLE}
Uses
Windows;
begin
If ParamStr(1)='/?' Then MessageBox(0,'Ну'#13'и'#13'что'#13'тут'#13'сложного?','Как в RAdmin',MB_OK);
WriteLn('Hello Windows');
end.
Cosinus (2008-10-15 11:14:00) [11]Вместо ника вбил e-mail (((
То, что я хочу, мне хотелось бы всего-лишь для вывода справки по программе . Можно конечно сделать, как это реализовано в RAdmin, где по ключу/?просто показывается справка в обычном неконсольном окошке, но на мой взгляд, это "некузяво". Да и вдруг потом когда-нибудь понадобится более обширный обмен данными консоли с неконсолью, поэтому, если возможно, подскажите куда смотреть.
> Ega23 © (15.10.08 11:12) [1]
Да
Ega23 (2008-10-15 11:12:00) [12]
> есть неконсольное приложение,
это как? В смысле, обычный оконный Application?