1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|||||||||||
1 | |||||||||||
Результат выполнения команды SYSTEMINFO записывается в файл в неверной кодировке (Windows XP)15.03.2015, 14:15. Показов 7822. Ответов 19
Метки нет Все метки)
(
Доброго времени суток.
Возникла проблема с программой, которую пишу на Делфи. Под Windows 7 и 8.1 все работает, а на ХР нет. Разобрался в чем проблема. У меня в коде командная строка выполняет такие команды:
Даже если просто в командной строке ХР выполнить команды выше, в файле будут иероглифы. Причем если попробовать к примеру такую команду:
В чем проблема и почему ХР не может перенести команду systeminfo в файл? В самой командной строке команда systeminfo выполняется корректно.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
15.03.2015, 14:15 | |
Ответы с готовыми решениями:
19
Вывести результат выполнения команды HELP в текстовый файл так, чтобы у каждой команды был порядковый номер Запись вывода результата выполнения команды ping в текстовый файл в нужной кодировке |
![]() ![]() |
|
16.03.2015, 09:49 | 2 |
Потому что кодовая страница ком. строки по умолчанию - 866.
А блокнот Windows работает с ANSI. Это не несет никакого влияния. SystemInfo - это внешняя утилита. Ей все равно какая сейчас кодовая страница у ком. строки. Не по теме:
1
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|
16.03.2015, 10:16 [ТС] | 3 |
Dragokas, так ведь на win 7 и 8.1 работает.
Я не батник пишу, у меня просто этот код в Делфи используется. Хотя дело тут не в нем, а в том, что на ХР не могу перенести в файл результат выполнения команды SystemInfo. Это можно как-нибудь решить?
0
|
![]() ![]() |
|
16.03.2015, 10:59 | 4 |
![]() Решение
Хм. Видимо версии утилит отличаются наличием в Win7 проверки.
Segh, здесь в соседней теме Вашему "коллеге" уже подсказали: Как сохранить/перекодировать файл в UTF-8 из консоли?
1
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
|
16.03.2015, 11:03 | 5 |
Какая-то совершенно вольная манипуляция терминами. Что значит перенести? Попытаюсь догадаться, в программе на Дельфи запускается systeminfo.exe? Тогда попробовать запустить "%comspec% /c systeminfo.exe > info.txt" как там это делается на Дельфи, раскрыв переменную среды comspec.
На языке высокого уровня нет возможности перекодировать файл в нужную кодировку? ![]()
1
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
||||||
16.03.2015, 11:18 [ТС] | 6 | |||||
Походу так. И еще chcp работает в win 7. Когда без смены кодировки переносишь в файл, русские символами иероглифами становятся.
Да, как раз только что нашел такой код:
А есть кроме systeminfo в командной сроке какая-нибудь еще команда которая показывает инфу о компьютере? Нашел еще set, но там не то, что нужно. Все говорят про какую-то MDS, но она не работает... Очень нужно определить вюдюху и процессор. Т.к systeminfo выдает описание процессора, а не модель. Перенести, значит systeminfo > info.txt. Как-то так ![]()
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
|
16.03.2015, 11:42 | 7 |
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
|
16.03.2015, 11:46 | 9 |
Имхо, выбрано не то направление. Надо не с батниками и кодировками воевать, а прямо из дельфи определять, какое оборудование установленно.
0
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|
16.03.2015, 14:15 [ТС] | 11 |
В делфи определяю видюху, но почему-то не пишет ее объем. Если бы мог все это определить нормально в делфи, то естественно не парился бы с кодировками
![]() Dragokas, есть разрешение пользоваться любыми средствами и языками программирования, увы... более-менее я знаю только Делфи. Добавлено через 2 часа 17 минут А можно перенаправить этот вывод в файл, но как источник указать не команду или что-то другое, а все, что выведено на экране? В общем, сохранить все что на экране в файл? Раньше пробовал clip - копировать в буфер, но опять же на xp не работает...
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
||||||
16.03.2015, 18:40 | 13 | |||||
Мне кажется, что тут два пути решения проблемы.
1. Делаем всё на дельфи. Например, через WMI. Раз systeminfo получает нужную информацию, значит и в программе эту информацию можно получить. 2. Решаем через внешние утилиты. Разбираемся с разными кодировками и с отличиями утилит в разных системах. Изобретаем способы передачи данных через буфер обмена (это не решит проблемы с кодировками). Придумываем ещё много разных обходных способов, каждый раз решая очередную проблему, не решив её бросаем и придумываем новый способ с новыми проблемами. Вот не убедите меня, что второй способ короче первого. Но хозяин - барин. Хочется решить задачу через одно место - флаг в руки. П.С. (В качестве шутки) Скачать компонент для снятия скриншота экрана. Скачать компонент распознования текста. ![]() П.П.С. В конце концов, разве трудно на дельфи прочитать и по косвеным признакам (ключевым фразам) определить кодировку и перекодировать в нужную? П.П.П.С. У меня вызов
Ради эксперимента дома проверю на XP. А вот видеокарты не показывает. Так что, systeminfo может быть и не решение проблемы.
2
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|
16.03.2015, 20:14 [ТС] | 14 |
На win 7 и 8.1 у меня тоже все прекрасно сохраняет.
Средствами Делфи, не используя что-то стороннее все очень печально. К примеру называние видюхи определяет, а объем нет. С процом вообще беда, только некоторые характеристики, частоту, описание и т.п. Ну и конечно руки кривые и не доходит как все полностью доделать) Уже задавал подобную тему с определением конфигурации компа в форуме по делфи. Кроме видюхи и объема видеопамяти systeminfo еще и название процессора не показывает, а отображает только его описание.
0
|
![]() ![]() |
|||||||||||
16.03.2015, 21:04 | 15 | ||||||||||
Вот еще. Может что полезное найдете. Считывание информации о компьютере
1
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|
16.03.2015, 21:12 [ТС] | 16 |
Dragokas, я собственно из этой темы и нашел некоторый код, который мне нужен. По Вашему совету "искать в этом разделе"
Пробовал в батнике код от Jeka_Osokin, у меня работает.
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
|
16.03.2015, 23:07 | 17 |
Дома у меня под XP systeminfo информацию по видеокарте тоже не вывела. Странно.
А кодировка да, не меняется, всегда 866.
1
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|||||||||||
17.03.2015, 09:20 [ТС] | 18 | ||||||||||
Dragokas, не понял... командой
Или так нельзя делать?) Я думал можно взять всю инфу, которая выведена на экран ком. строки и запихать все в файл. Может она и не должна выводить? А кодировка не меняется наверно из-за того, что как говорил Dragokas "SystemInfo - это внешняя утилита".
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
|
|
17.03.2015, 10:35 | 19 |
Она и в XP и в Win7 внешняя. Под Win7 кодировка меняется, под XP нет.
Тогда зачем все эти пляски с systeminfo, если нужную информацию она не выводит?
0
|
1 / 1 / 0
Регистрация: 08.03.2010
Сообщений: 55
|
|
17.03.2015, 14:14 [ТС] | 20 |
Разобрался.
Я это и имел ввиду, думал по крайней мере)) Она мне нужна для получения других сведений Извращаюсь как могу ![]() Dragokas, Smitis большое спасибо за помощь ![]()
0
|
17.03.2015, 14:14 | |
Помогаю со студенческими работами здесь
20
Как записать результат выполнения команды telnet в файл? Информация записывается или считывается из файла в неверной кодировке Результат парсинга представлен в неверной кодировке Запись в файл в неверной кодировке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |