Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Delphi - Система _ Взаимодействие с Dos приложением

Автор: Lunina 15:02:2008, 20:58

трагичность ситуации в следующем:
есть запущенное DOS приложение. Я знаю только имя процесса, как определить hwnd и т.п. я пока не знаю sad.gif
мне нужно определить считать из этого досовского приложения последнюю строчку и потом послать ему нажатие клавиши Enter.
помогите, люди добрые, заранее благодарна.

Автор: zubr 15:02:2008, 21:55

Если это чисто Досовское приложение, то ничего не получится, а если консольное Win-приложение, тогда можно.

Автор: yerke 19:03:2008, 05:33

Цитата(zubr @ 16:02:2008 - 03:55) *
Если это чисто Досовское приложение, то ничего не получится, а если консольное Win-приложение, тогда можно.

а как сделать так чтобы
программка написанная на дельфи
находил уже запущенное консольное окно лотус сервера
и там вводил нужную команду и нажал на ентер

Автор: zubr 19:03:2008, 08:17

Никак. Твоя программа на Delphi должна запустить процесс лотуса, тогда можно.

Автор: yerke 19:03:2008, 11:38

Цитата(zubr @ 19:03:2008 - 14:17) *
Никак. Твоя программа на Delphi должна запустить процесс лотуса, тогда можно.

такой вариант тоже пойдет
а как это сделать

Код
program Domino_Logon;
//{$APPTYPE CONSOLE}
uses
   Windows, Messages;

var
  h: HWND;
  s:string;
begin
  h:=findwindow(nil, 'DominoServer/KazNPU: Lotus Domino Server');
  if h = 0 then Exit;
  ShowWindow(h, SW_RESTORE);
  //
  s:='tell http quit';
  SendMessage(h, WM_SETTEXT, 0, longint(Pchar(s)));
  SendMessage(h, WM_KEYDOWN, VK_RETURN, 0);


end.


'tell http quit' печатается в заголовке консольного окна домино
а мне нужно оно печатался в самом окне

Автор: sax_ol 19:03:2008, 11:56

Надо захватывать у этого окна консольный (стандартный) ввод/вывод.
Ну или пробовать использовать виртуальную клавиатуру, если не важно знать что там за сообщения идут.

Автор: yerke 19:03:2008, 12:12

Цитата(sax_ol @ 19:03:2008 - 17:56) *
Надо захватывать у этого окна консольный (стандартный) ввод/вывод.

с примером конкретизировать можете

вообщем мне надо так сделать чтобы
при перезагрузке сервака
автоматический набирался пароль для домино
и был нажат ентер

Автор: European 19:03:2008, 12:19

Цитата(yerke @ 19:03:2008 - 15:12) *
с примером конкретизировать можете

Creating a Child Process with Redirected Input and Output

Автор: sax_ol 19:03:2008, 12:36

European + Пояндексив найдутся и http://www.yandex.ru/yandsearch?text=delphi+%D0%B7%D0%B0%D1%85%D0%B2%D0%B0%D1%82%D0%B8%D1%82%D1%8C+%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4+%D0%B2+%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C варианты.

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)