вторник, 9 ноября 2010 г.

Ошибка при взаимодействии с Excel

На одном компьютере (WinXP MSOffice 2007) при попытке выгрузить отчет из самописной (.NET 3.5) программы в Excel проявилась следующая ошибка: Невозможно привести COM-объект типа "Microsoft.Office.Interop.Excel.ApplicationClass" к интерфейсному типу "Microsoft.Office.Interop.Excel._Application". Операция завершилась со сбоем, поскольку вызов QueryInterface COM-объекта для интерфейса с IID "{000208D5-0000-0000-C000-000000000046}" возвратил следующую ошибку: Ошибка при загрузке библиотеки. (Исключение из HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)).

Ну да, программа компилировалась на компе с MSOffice 2003, и это наложило определенный отпечаток на набор ее библиотек. Но ведь на других станциях всё работает... Единственная особенность - на проблемной машине зачем-то были установлены primary interop assemblies 2007. В итоге помог метод грубой силы: деинсталляция этих самых assemblies и восстановление офиса.

UPD 2018-08-10: По крайней мере, в одном случае удалось установить причину этой ошибки. Как оказалось, по адресу HKEY_CLASSES_ROOT\Interface\{000208D5-0000-0000-C000-000000000046}\TypeLib лежит некий guid (в моём случае {00020813-0000-0000-C000-000000000046}) и номер версии, который нужно использовать (в моём случае 1.6).

Так вот, в ветке реестра HKCR\TypeLib\{00020813-0000-0000-C000-000000000046} перечислены разные версии, и среди них оказалась одна запись (1.9), оставшаяся от деинсталлированного офиса 2010. Если эту запись, отсылающую к несуществующей версии excel-а, удалить, то ошибка пропадает.

Навело на решение это обсуждение.

RDP + командная строка

Кстати, службой терминалов можно управлять не только с помощью графического интерфейса tsadmin.exe, но и через командную строку

ASUS O!Play Air HDP R-3

Так-то штука, конечно, забавная, но есть некоторое количество вопросов.
1. при подключении "тюльпанами" (композитное видео, что ли) засыпает на пятнадцатой минуте полета, причем хорошо так засыпает, практически намертво. Хотя, может, просто телевизор старый... Через HDMI всё нормально.
2. Русские буквы как-то не везде. В прошивке 1.21p по крайней мере глючит RSS, а при попытке поработать с прибором через телнет, соответственно слегка чудит встроенный линукс, не давая ввести русские названия радиостанций (видимо, из-за странного понимания UTF8).

воскресенье, 7 ноября 2010 г.

всякая всячина о линуксе

убрать мусор в приглашении mc:
echo PS1=\'\\u@\\h:\\w\\$ \' >> ~/.mc/bashrc

узнать размер папки:
du -sh bin/
-s, --summarize (display only a total for each argument)
-h, --human-readable ( print sizes in human readable format (e.g., 1K 234M 2G))

посмотреть открытые порты:
nmap -sT -O localhost
посмотреть, кто открыл порты:
netstat -anp
lsof -i

примонтировать флэшку:
подсмотреть в журнале, какое устройство нужно монтировать:
dmesg
смонтировать:
mount -t vfat -o codepage=866,iocharset=utf8 /dev/sdc /media/usb_flash1

получить адрес с DHCP:
sudo dhclient -r
sudo dhclient
или
ifdown eth0
ifup eth0
/etc/init.d/network restart

понедельник, 1 ноября 2010 г.

Чокнулся GSM-модем

Начал выдавать с завидной периодичностью вот такое:
^BOOT:78236782,0,0,0,87
^RSSI:7
^RSSI:7
^RSSI:7

Вылечилось командой AT^CURC=0 благодаря подсказке отсюда:
You might try to use this command
AT^CURC? Current setting of periodic status messages
AT^CURC=? See what you possible values are
AT^CURC=0 turn off periodic status messages