Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
ВнизВывод из неконсольного приложения в консоль... Найти похожие ветки
← →
cosinus@bk.ru (2008-10-15 11:01) [0]Доброе утро.
Проблемма такая, есть неконсольное приложение, которое запускается с некоторыми ключами, как правило из консоли.
Вопрос собственно, как мне в эту же консоль из под которой я запускаю свое приложение, делать какой-либо вывод?
Нашел толькоAllocConsole\FreeConsole
, но это не то, ибо The AllocConsole function allocates a new console for the calling process. А мне необходимо делать вывод в ту же...
← →
Ega23 © (2008-10-15 11:12) [1]
> есть неконсольное приложение,
это как? В смысле, обычный оконный Application?
← →
Cosinus (2008-10-15 11:14) [2]Вместо ника вбил e-mail (((
То, что я хочу, мне хотелось бы всего-лишь для вывода справки по программе . Можно конечно сделать, как это реализовано в RAdmin, где по ключу/?
просто показывается справка в обычном неконсольном окошке, но на мой взгляд, это "некузяво". Да и вдруг потом когда-нибудь понадобится более обширный обмен данными консоли с неконсолью, поэтому, если возможно, подскажите куда смотреть.
> Ega23 © (15.10.08 11:12) [1]
Да
← →
Palladin © (2008-10-15 11:45) [3]
program KakVRAdmin;
{$APPTYPE CONSOLE}
Uses
Windows;
begin
If ParamStr(1)="/?" Then MessageBox(0,"Ну"#13"и"#13"что"#13"тут"#13"сложного?","Как в RAdmin",MB_OK);
WriteLn("Hello Windows");
end.
← →
Плохиш © (2008-10-15 11:49) [4]
> Palladin © (15.10.08 11:45) [3]
Он же не этого хочет :-)
← →
Ega23 © (2008-10-15 11:52) [5]
> Palladin © (15.10.08 11:45) [3]
Он StdIn и StdOut в оконном приложении хочет.
← →
Cosinus (2008-10-15 11:56) [6]
> Palladin © (15.10.08 11:45) [3]
Плохиш © совершенно прав :)
У меня приложение неконсольное, а в вашем примере, оно таки консольное. Как раз если приложение{$APPTYPE CONSOLE}
, то проблемм то никаких и нет и я с вами полностью согласен, что это элементарно. А в моем случае? И вообще, возможно ли это? Может это моветон? И есть ли смысл с этим заморачиваться, если мне это просто интересно?
Есть как минимум 2 других варианта.
1) Просто сделать все приложение консольным, что сразу прибьет все мои проблеммы
2) Вывести, "как в RAdmin"
Но мне действительно интересно, как :)
← →
Palladin © (2008-10-15 12:03) [7]хм...
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 будет ждать, пока процесс не завершится, в любом случае... как один из выходов придется писать два приложения )
← →
clickmaker © (2008-10-15 12:10) [8]> Но мне действительно интересно, как :)
WinExec(PChar("type " + YourHelpFilePath + " && pause"), SW_SHOWNORMAL);
← →
Cosinus (2008-10-15 13:00) [9]
> 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, то естественно все отрабатывает...
← →
Palladin © (2008-10-15 13:22) [10]
> как осуществлять обмен (ввод\вывод) из тела оконного приложения
> в консоль из под которой оно запущено?
WriteLn
← →
clickmaker © (2008-10-15 13:32) [11]> Не фурычит. Вообще ничего не отображается
ну попробуй через ShellExecute
← →
Cosinus (2008-10-16 10:42) [12]Спасибо всем за помощь, буду разбираться.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c