|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.07.2012, 16:30 | #1 |
Пользователь
Регистрация: 27.07.2012
Сообщений: 12
|
Проблема совместимости Win XP и Win 2000 при взаимодействии с консолью.
Доброго времени суток.
Существует проблема: необходимо связаться с консолью по ее идентификатору. Затем необходимо по очереди передать в консоль команды и получить результат выполнения этих команды в текстовый файл. В коде снизу я захватываю консоль по ее идентификатору и в цикле передаю команду dir (экспериментирую на cmd ), выполнение команды отображается в консоли, затем результат выполнения записываю в файл. Но появилась проблема совместимости: на Win XP работает как часы, а вот на Win 2000 спотыкается на этой строчке AttachConsole(mProcessID). Необходимо реализовать для Win 2000. P.S: Консоль (стороннего производителя, а не cmd и подобных ) всегда запущена, запускать программным путем ее не нужно: CreateProcess (nil,PChar(CmdLine),@Security,@Secu rity,true,NORMAL_PRIORITY_CLASS,nil ,nil,start,ProcessInfo) – использование отпадает, так как ее запускают (delphiworld.narod.ru/base/console_to_memo.html). Я так думаю нужно, как то совместить технологию Pipe и поиска идентификатора консоли. В инсети такой реализации не нашел. Пожалуйста, подскажите, как это сделать? Код:
Последний раз редактировалось Stilet; 27.07.2012 в 20:09. Причина: ошибка в коде |
27.07.2012, 17:12 | #2 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Requirements Minimum supported client Windows XP Minimum supported server Windows Server 2003 |
27.07.2012, 17:25 | #3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Функция AttachConsole не существует в Windows 2000.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
27.07.2012, 17:27 | #4 | |
Пользователь
Регистрация: 27.07.2012
Сообщений: 12
|
Цитата:
Подменить ее на более современную не представляется возможным. Такое вот условие... |
|
27.07.2012, 17:30 | #5 |
Пользователь
Регистрация: 27.07.2012
Сообщений: 12
|
|
27.07.2012, 18:12 | #6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Внедрение в процесс + IPC + DuplicateHandle.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
27.07.2012, 18:53 | #7 |
Пользователь
Регистрация: 27.07.2012
Сообщений: 12
|
|
27.07.2012, 21:02 | #8 |
Форумчанин
Регистрация: 11.04.2012
Сообщений: 212
|
> на библиотеку Kernel32.dll намекаете?
Я ни на что не намекаю. Есть официальный первоисточник - в нем черным по белому написаны требования. > В Win 2000 она присутствует. Да неужели ? А я и не знал. |
01.08.2012, 22:31 | #9 |
Пользователь
Регистрация: 27.07.2012
Сообщений: 12
|
Лучше дайте дельный совет, как решить данную проблему, в инете тема не раскрыта.
|
02.08.2012, 13:54 | #10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Совет дали. Писать код за тебя - увольте.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
висне сет при запуску Win XP после установки Win 7 | VVkSoft | Windows | 3 | 15.09.2009 10:36 |
Проблема при установке 2 win | Bandit71 | Компьютерное железо | 5 | 15.06.2008 21:13 |
пути в реестре, где находятся программы автозагрузки для win'95 win'98 win' me win 2000 | Prisian | Win Api | 1 | 11.09.2007 20:07 |
ветви в реестре для автозагрузки для win'95, win'98, win' me, win 2000 | Prisian | Windows | 1 | 09.09.2007 23:15 |