Вверх ↑
Этот топик читают: Гость
Ответов: 1528
Рейтинг: 57
#1: 2011-10-27 08:56:30 ЛС | профиль | цитата
Вызываю CMD команду, она завершается после выполнения, а WinExec молчит партизан
code_25578.txt
карма: 0

0
файлы: 1code_25578.txt [793B] [83]
Ответов: 1841
Рейтинг: 369
#2: 2011-10-27 09:07:19 ЛС | профиль | цитата
подтверждается...
Win 7 SP1, Delphi 4 kolfix.
SVN: не знаю, черепаха глюкнула...
карма: 1
0
Ответов: 3889
Рейтинг: 362
#3: 2011-10-27 09:39:25 ЛС | профиль | цитата
CriDos писал(а):
подтверждается...

... что не все пользователи со стажем читают список скрытых точек
code_25579.txt
карма: 1

0
файлы: 1code_25579.txt [912B] [99]
Ответов: 1528
Рейтинг: 57
#4: 2011-10-27 09:49:19 ЛС | профиль | цитата
1nd1g0, а что если он выдаёт информацию в N выхлопов, как например у меня сейчас (Memo там стоит в качестве накопителя)?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#5: 2011-10-27 10:12:08 ЛС | профиль | цитата
hitman249 писал(а):
выдаёт информацию в N выхлопов

При режиме Wait onExec происходит только после отработки первого (cmd) процесса. Вы запускаете внешнее приложение, элемент его, естественно, не отслеживает, мало ли какие команды системы запускаются и какие деревья потоков порождаются, за всеми не уследишь. Либо анализируйте//считайте "выхлопы" на предмет конца, либо отслеживайте запущенный процесс\окно (ipconfig) самостоятельно.
карма: 1

0
Ответов: 1528
Рейтинг: 57
#6: 2011-10-27 15:09:39 ЛС | профиль | цитата
code_25580.txt
Вариант решения, может кому пригодится
------------ Дoбавленo в 15.09:
появилась проблема
не на всех ОС выхлоп в одинаковой кодировке
на XP работает, на Win7 кракозябры

команда cmd /c chcp && pause говорит что кодировка везде одинаковая CP866
карма: 0

0
файлы: 1code_25580.txt [1.2KB] [102]
Ответов: 3889
Рейтинг: 362
#7: 2011-10-27 15:24:45 ЛС | профиль | цитата
hitman249, на NT6.x вообще могут очень сильно отличаться форматы выдачи информации (не буду вдаваться в подробности, но система кардинально переписана), в связи с чем желательно индивидуально обрабатывать эти ОС.
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#8: 2011-10-27 15:56:03 ЛС | профиль | цитата
hitman249 писал(а):
на Win7 кракозябры

Всегда, что на XP, что на Семерке ставили



Add(Charset,6920947,462,336)
{
}

карма: 22

0
Ответов: 1528
Рейтинг: 57
#9: 2011-10-27 16:00:52 ЛС | профиль | цитата
nesco, уже пробовал
в таком случае выходит наоборот, на Win7 норм, на XP кракозябры
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#10: 2011-10-27 16:06:57 ЛС | профиль | цитата
hitman249 писал(а):
на XP кракозябры

Что у тебя за локаль на XP, если не кириллица, то так и будет. Только что проверил, нормально работает на нормальном XP с кириллической локалью
карма: 22

0
Ответов: 3889
Рейтинг: 362
#11: 2011-10-27 16:20:22 ЛС | профиль | цитата
hitman249, кстати, локаль у процессов может серьёзно различаться, помню, в молодости вынудил одного разработчика озадачится глобальной локалью для конвертора кодировок, т.к. на некоторых ОС (как раз NT6.x) всё портило наследование локали от родительского процесса. В общем, убеждаемся, что у нас самая последняя версия конструктора и не стоит патч реестра, вынуждающий командную строку работать в другой кодировке. И шрифты можно заодно проверить.
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#12: 2011-10-27 16:20:44 ЛС | профиль | цитата
Странно, но используй тогда определение версии ОС при помощи нового EnumProcess, он позволяет определять мажор версию ОС
карма: 22

0
Ответов: 1841
Рейтинг: 369
#13: 2011-10-27 18:44:53 ЛС | профиль | цитата
1nd1g0 писал(а):
... что не все пользователи со стажем читают список скрытых точек

хм, мои действия:
1) Я запустил HiAsm и вставил схему hitman249.
2) Запустил, события завершения не увидел.
3) Посмотрел описания всех точек и залез в wiki.
4) Скопировал 2 схему из wiki WinExec и вставил, прикрутил к точке *onConsoleTerminate=Событие происходит при завершении работы консольной программы* Msg и запустил. Далее через диспетчер задач выгрузил cmd.exe но реакции никакой не увидел...
5) Собственно прочитал ещё раз описание точки.
6) Написал что подтверждается.

Т.е. описание к точке не несёт информацию о том в каком случае выдаётся событие (в случае применения точки doConsoleTerminate)

p.s. как то так
карма: 1
0
Ответов: 1376
Рейтинг: 197
#14: 2011-10-27 18:53:41 ЛС | профиль | цитата
1nd1g0 писал(а):
В общем, убеждаемся, что у нас самая последняя версия конструктора
И она не помагает иной раз, т.к. не всё обновлено по последнему, пришлось (по надобности) покомпонетно обновлять, даже SVN не помогло (использовал TortoiseSVN)... [offtop]Вааааще непонимаю что творится, тем более, от куда оплодотворятся, где искать честные компоненты [/offtop]Мои были действия:
Обновился с SVN, но при использовании какого-то компонента выскакивала ошибка, которая исправлялась после обновления компонента по правой клавише. И смотрел, если обновился только .pas то можно запускать схему без перезапуска HiAsm, а если .ini, то перезапуск...
карма: 1

0
Ответов: 3889
Рейтинг: 362
#15: 2011-10-27 18:59:38 ЛС | профиль | цитата
[offtop]CriDos, Вы правы, в конструкторе документация иногда больше путает, чем помогает, по собственному опыту замечаю, что лучше всего помогает она тем, кто и так уже знает объектный паскаль. В итоге исходный код компонента - лучшая документация... Во многом это обусловлено тем, что конструктор затрагивает сферы, в которые ранее не программистам путь был заказан.[/offtop]
------------ Дoбавленo в 18.59:
foksov,[flood] намекаете на альтернативную сборку конструктора?[/flood]
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)