powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Командная строка как послать команду в неё?
13 сообщений из 13, страница 1 из 1
Командная строка как послать команду в неё?
    #34593319
Фотография dartvaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема такая есть консольное приложение которым нужно управлять....
т.е. в консоле Win Xp запускать это приложение и прописывать команды и ключи запуска.....

Подскажите как осуществить управление этим приложением с других приложений?
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593348
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cmd.exe /c ...
Пример:
cmd /c net time \\dcserver /set /y

и стоит посмотреть
Пуск-Выполнить-cmdcmd /?
только оно же по идее и независимо оттого, откуда запущено, будет понимать ключи?
Пуск-Выполнить-program.exe Param1 Param2 ... ParamN
В общем, задача неясна :)
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593572
Фотография dartvaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rrrrrrrrrrcmd.exe /c ...
Пример:
cmd /c net time \\dcserver /set /y

и стоит посмотреть
Пуск-Выполнить-cmdcmd /?
только оно же по идее и независимо оттого, откуда запущено, будет понимать ключи?
Пуск-Выполнить-program.exe Param1 Param2 ... ParamN
В общем, задача неясна :)

это параметры запуска , или ключи запуска....

А как управлять уже запущенным приложением ?
т.е. допустим у меня в приложении если ввести чего либо , то произведе ться какое либо действие... ,
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593575
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, вы про посылку команд в окна? nnCron'ом попробуйте, он умеет вроде. По крайней мере, активировать консольное окно и закинуть туда пару-тройку символов сможет.
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593623
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо штатными средствами - WSH WshShell.SendKeys
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593643
Фотография dartvaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rrrrrrrrrrа, вы про посылку команд в окна? nnCron'ом попробуйте, он умеет вроде. По крайней мере, активировать консольное окно и закинуть туда пару-тройку символов сможет.

Крон всё емеет :)
А как логировать тогда результаты работы консоля?
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593652
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перенаправлением его вывода в файл?
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593701
Фотография dartvaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rrrrrrrrrrперенаправлением его вывода в файл?
да!
Чем ?, каким софтом можно это осуществить , кроме CTRL+A;СTRL+C;CTRL+V?
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593745
GeT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartvaider rrrrrrrrrrперенаправлением его вывода в файл?
да!
Чем ?, каким софтом можно это осуществить , кроме CTRL+A;СTRL+C;CTRL+V?
date /T >> backup.log - будет дописывать в конец
date /T > backup.log - будет каждый раз переписывать
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593746
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перенаправление вывода производится через символы перенаправления:
> - ввод в файл
< - чтение из файла
| - перенаправить ввод другой программе
Примеры:
ipconfog /all > c:/ipconf.txt

ipconfog /all | more
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593789
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынц на подробный хелп по перенаправлению.
Только вот у меня стандартно не вышло направить и в файл, и на консоль и вроде как народ для этого использует юниксовый tee.exe
А без вывода на консоль автор вроде как не сможет туда команды закидывать?
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593843
Фотография dartvaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Green2Перенаправление вывода производится через символы перенаправления:
> - ввод в файл
< - чтение из файла
| - перенаправить ввод другой программе
Примеры:
ipconfog /all > c:/ipconf.txt

ipconfog /all | more
Posted via ActualForum NNTP Server 1.4
Пытаюсь залогировать консольное приложение
YSM ICQ - You Sick Me - ICQ Client

http://]http://sourceforge.net/project/downloading.php?groupname=ysmv7&filename=ysmv7_2_9_9_1-win32.zip&use_mirror=belnet

, ошибку выдает:

*** Error: getline(): not interactive, use stdio.
...
Рейтинг: 0 / 0
Командная строка как послать команду в неё?
    #34593875
dboev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в справке Win32 Help к дэльфе есть такой пример

Creating a Child Process with Redirected Input and Output
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
#include <stdio.h>  
#include <windows.h> 
 
#define BUFSIZE  4096  
 
HANDLE hChildStdinRd, hChildStdinWr, hChildStdinWrDup, 
   hChildStdoutRd, hChildStdoutWr, hChildStdoutRdDup, 
   hInputFile, hSaveStdin, hSaveStdout; 
 
BOOL CreateChildProcess(VOID); 
VOID WriteToPipe(VOID); 
VOID ReadFromPipe(VOID); 
VOID ErrorExit(LPTSTR); 
VOID ErrMsg(LPTSTR, BOOL); 
 
DWORD main(int argc, char *argv[]) 
{ 
   SECURITY_ATTRIBUTES saAttr; 
   BOOL fSuccess; 
 
// Set the bInheritHandle flag so pipe handles are inherited. 

 
   saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); 
   saAttr.bInheritHandle = TRUE; 
   saAttr.lpSecurityDescriptor = NULL; 
 
   // The steps for redirecting child process's STDOUT: 
   //     1. Save current STDOUT, to be restored later. 
   //     2. Create anonymous pipe to be STDOUT for child process. 
   //     3. Set STDOUT of the parent process to be write handle of 
   //        the pipe, so it is inherited by the child process. 
   //     4. Create a noninheritable duplicate of the read handle and

   //        close the inheritable read handle. 
 
// Save the handle to the current STDOUT. 
 
   hSaveStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
 
// Create a pipe for the child process's STDOUT. 
 
   if (! CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr,  0 )) 
      ErrorExit("Stdout pipe creation failed\n"); 
 
// Set a write handle to the pipe to be STDOUT. 
 
   if (! SetStdHandle(STD_OUTPUT_HANDLE, hChildStdoutWr)) 
      ErrorExit("Redirecting STDOUT failed"); 

 
// Create noninheritable read handle and close the inheritable read 
// handle. 

    fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdoutRd,
        GetCurrentProcess(), &hChildStdoutRdDup ,  0 ,
        FALSE,
        DUPLICATE_SAME_ACCESS);
    if( !fSuccess )
        ErrorExit("DuplicateHandle failed");
    CloseHandle(hChildStdoutRd);

   // The steps for redirecting child process's STDIN: 
   //     1.  Save current STDIN, to be restored later. 

   //     2.  Create anonymous pipe to be STDIN for child process. 
   //     3.  Set STDIN of the parent to be the read handle of the 
   //         pipe, so it is inherited by the child process. 
   //     4.  Create a noninheritable duplicate of the write handle, 
   //         and close the inheritable write handle. 
 
// Save the handle to the current STDIN. 
 
   hSaveStdin = GetStdHandle(STD_INPUT_HANDLE); 
 
// Create a pipe for the child process's STDIN. 

 
   if (! CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr,  0 )) 
      ErrorExit("Stdin pipe creation failed\n"); 
 
// Set a read handle to the pipe to be STDIN. 
 
   if (! SetStdHandle(STD_INPUT_HANDLE, hChildStdinRd)) 
      ErrorExit("Redirecting Stdin failed"); 
 
// Duplicate the write handle to the pipe so it is not inherited. 
 
   fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdinWr, 
      GetCurrentProcess(), &hChildStdinWrDup,  0 , 
      FALSE,                  // not inherited 

      DUPLICATE_SAME_ACCESS); 
   if (! fSuccess) 
      ErrorExit("DuplicateHandle failed"); 
 
   CloseHandle(hChildStdinWr); 
 
// Now create the child process. 
 
   if (! CreateChildProcess()) 
      ErrorExit("Create process failed"); 
 
// After process creation, restore the saved STDIN and STDOUT. 
 
   if (! SetStdHandle(STD_INPUT_HANDLE, hSaveStdin)) 
      ErrorExit("Re-redirecting Stdin failed\n"); 
 
   if (! SetStdHandle(STD_OUTPUT_HANDLE, hSaveStdout)) 

      ErrorExit("Re-redirecting Stdout failed\n"); 
 
// Get a handle to the parent's input file. 
 
   if (argc > 1) 
      hInputFile = CreateFile(argv[1], GENERIC_READ, 0, NULL, 
         OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); 
   else 
      hInputFile = hSaveStdin; 
 
   if (hInputFile == INVALID_HANDLE_VALUE) 
      ErrorExit("no input file\n"); 
 
// Write to pipe that is the standard input for a child process. 
 
   WriteToPipe(); 
 
// Read from pipe that is the standard output for child process. 

 
   ReadFromPipe(); 
 
   return 0; 
} 
 
BOOL CreateChildProcess() 
{ 
   PROCESS_INFORMATION piProcInfo; 
   STARTUPINFO siStartInfo; 
 
// Set up members of STARTUPINFO structure. 
 
   ZeroMemory( &siStartInfo, sizeof(STARTUPINFO) );
   siStartInfo.cb = sizeof(STARTUPINFO); 
 
// Create the child process. 
 
   return CreateProcess(NULL, 
      "child",       // command line 
      NULL,          // process security attributes 
      NULL,          // primary thread security attributes 

      TRUE,          // handles are inherited 
      0,             // creation flags 
      NULL,          // use parent's environment 
      NULL,          // use parent's current directory 
      &siStartInfo,  // STARTUPINFO pointer 
      &piProcInfo);  // receives PROCESS_INFORMATION 
}
 
VOID WriteToPipe(VOID) 
{ 
   DWORD dwRead, dwWritten; 
   CHAR chBuf[BUFSIZE]; 
 
// Read from a file and write its contents to a pipe. 
 
   for (;;) 
   { 
      if (! ReadFile(hInputFile, chBuf, BUFSIZE, &dwRead, NULL) || 

         dwRead == 0) break; 
      if (! WriteFile(hChildStdinWrDup, chBuf, dwRead, 
         &dwWritten, NULL)) break; 
   } 
 
// Close the pipe handle so the child process stops reading. 
 
   if (! CloseHandle(hChildStdinWrDup)) 
      ErrorExit("Close pipe failed\n"); 
} 
 
VOID ReadFromPipe(VOID) 
{ 
   DWORD dwRead, dwWritten; 
   CHAR chBuf[BUFSIZE]; 
   HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 

// Close the write end of the pipe before reading from the 

// read end of the pipe. 
 
   if (!CloseHandle(hChildStdoutWr)) 
      ErrorExit("Closing handle failed"); 
 
// Read output from the child process, and write to parent's STDOUT. 
 
   for (;;) 
   { 
      if( !ReadFile( hChildStdoutRdDup, chBuf, BUFSIZE, &dwRead, 
         NULL) || dwRead ==  0 ) break; 
      if (! WriteFile(hSaveStdout, chBuf, dwRead, &dwWritten, NULL)) 
         break; 
   } 
} 
 
VOID ErrorExit (LPTSTR lpszMessage) 
{ 
   fprintf(stderr, "%s\n", lpszMessage); 

   ExitProcess( 0 ); 
} 
 
// The code for the child process. 

#include <windows.h> 
#define BUFSIZE  4096  
 
VOID main(VOID) 
{ 
   CHAR chBuf[BUFSIZE]; 
   DWORD dwRead, dwWritten; 
   HANDLE hStdin, hStdout; 
   BOOL fSuccess; 
 
   hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
   hStdin = GetStdHandle(STD_INPUT_HANDLE); 
   if ((hStdout == INVALID_HANDLE_VALUE) || 
      (hStdin == INVALID_HANDLE_VALUE)) 
      ExitProcess( 1 ); 
 
   for (;;) 
   { 
   // Read from standard input. 

      fSuccess = ReadFile(hStdin, chBuf, BUFSIZE, &dwRead, NULL); 
      if (! fSuccess || dwRead ==  0 ) 
         break; 
 
   // Write to standard output. 
      fSuccess = WriteFile(hStdout, chBuf, dwRead, &dwWritten, NULL); 
      if (! fSuccess) 
         break; 
   } 
} 
 

я когда-то делал на оснве этого кода управление консольным приложением
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Командная строка как послать команду в неё?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]