Вызываю CMD команду, она завершается после выполнения, а WinExec молчит партизан
code_25578.txt
Этот топик читают: Гость
Ответов: 1528
Рейтинг: 57
|
|||
карма: 0 |
| ||
файлы: 1 | code_25578.txt [793B] [83] |
Ответов: 1841
Рейтинг: 369
|
|||
подтверждается...
Win 7 SP1, Delphi 4 kolfix. SVN: не знаю, черепаха глюкнула... |
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
CriDos писал(а): подтверждается...... что не все пользователи со стажем читают список скрытых точек code_25579.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_25579.txt [912B] [99] |
Ответов: 1528
Рейтинг: 57
|
|||
1nd1g0, а что если он выдаёт информацию в N выхлопов, как например у меня сейчас (Memo там стоит в качестве накопителя)?
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
hitman249 писал(а): выдаёт информацию в N выхлоповПри режиме Wait onExec происходит только после отработки первого (cmd) процесса. Вы запускаете внешнее приложение, элемент его, естественно, не отслеживает, мало ли какие команды системы запускаются и какие деревья потоков порождаются, за всеми не уследишь. Либо анализируйте//считайте "выхлопы" на предмет конца, либо отслеживайте запущенный процесс\окно (ipconfig) самостоятельно. |
|||
карма: 1 |
|
Ответов: 1528
Рейтинг: 57
|
|||
code_25580.txt
Вариант решения, может кому пригодится ------------ Дoбавленo в 15.09: появилась проблема не на всех ОС выхлоп в одинаковой кодировке на XP работает, на Win7 кракозябры команда cmd /c chcp && pause говорит что кодировка везде одинаковая CP866 |
|||
карма: 0 |
| ||
файлы: 1 | code_25580.txt [1.2KB] [102] |
Ответов: 3889
Рейтинг: 362
|
|||
hitman249, на NT6.x вообще могут очень сильно отличаться форматы выдачи информации (не буду вдаваться в подробности, но система кардинально переписана), в связи с чем желательно индивидуально обрабатывать эти ОС.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
hitman249 писал(а): на Win7 кракозябрыВсегда, что на XP, что на Семерке ставили
|
|||
карма: 22 |
|
Ответов: 1528
Рейтинг: 57
|
|||
nesco, уже пробовал
в таком случае выходит наоборот, на Win7 норм, на XP кракозябры |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
hitman249 писал(а): на XP кракозябрыЧто у тебя за локаль на XP, если не кириллица, то так и будет. Только что проверил, нормально работает на нормальном XP с кириллической локалью |
|||
карма: 22 |
|
Ответов: 3889
Рейтинг: 362
|
|||
hitman249, кстати, локаль у процессов может серьёзно различаться, помню, в молодости вынудил одного разработчика озадачится глобальной локалью для конвертора кодировок, т.к. на некоторых ОС (как раз NT6.x) всё портило наследование локали от родительского процесса. В общем, убеждаемся, что у нас самая последняя версия конструктора и не стоит патч реестра, вынуждающий командную строку работать в другой кодировке. И шрифты можно заодно проверить.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Странно, но используй тогда определение версии ОС при помощи нового EnumProcess, он позволяет определять мажор версию ОС
|
|||
карма: 22 |
|
Ответов: 1841
Рейтинг: 369
|
|||
1nd1g0 писал(а): ... что не все пользователи со стажем читают список скрытых точекхм, мои действия: 1) Я запустил HiAsm и вставил схему hitman249. 2) Запустил, события завершения не увидел. 3) Посмотрел описания всех точек и залез в wiki. 4) Скопировал 2 схему из wiki WinExec и вставил, прикрутил к точке *onConsoleTerminate=Событие происходит при завершении работы консольной программы* Msg и запустил. Далее через диспетчер задач выгрузил cmd.exe но реакции никакой не увидел... 5) Собственно прочитал ещё раз описание точки. 6) Написал что подтверждается. Т.е. описание к точке не несёт информацию о том в каком случае выдаётся событие (в случае применения точки doConsoleTerminate) p.s. как то так |
|||
карма: 1 |
|
Ответов: 1376
Рейтинг: 197
|
|||
1nd1g0 писал(а): В общем, убеждаемся, что у нас самая последняя версия конструктораОбновился с SVN, но при использовании какого-то компонента выскакивала ошибка, которая исправлялась после обновления компонента по правой клавише. И смотрел, если обновился только .pas то можно запускать схему без перезапуска HiAsm, а если .ini, то перезапуск... |
|||
карма: 1 |
|
Ответов: 3889
Рейтинг: 362
|
|||
[offtop]CriDos, Вы правы, в конструкторе документация иногда больше путает, чем помогает, по собственному опыту замечаю, что лучше всего помогает она тем, кто и так уже знает объектный паскаль. В итоге исходный код компонента - лучшая документация... Во многом это обусловлено тем, что конструктор затрагивает сферы, в которые ранее не программистам путь был заказан.[/offtop]
------------ Дoбавленo в 18.59: foksov,[flood] намекаете на альтернативную сборку конструктора?[/flood] |
|||
карма: 1 |
|