четверг, 12 июля 2012 г.

Как подружить Canon LBP-1120 и Office 2010?


Данная проблема проявляет себя на операционной системе Windows Xp Sp3 и у обладателей принтеров Canon LBP-1120, LBP-800 (Может и с другими моделями Canon). Скажем у вас дошли руки обновить Office 2003 или Office 2007 на новый Office 2010 (офис) и после обновления вы попытались распечатать, из офиса, на вышеуказанный принтер, документ и получили сообщение о закрытие документа с восстановлением имеющейся информации. Так же печать из Adobe Reader может сопровождаться сообщением о закрытие PDF-файла. Первым же решением может прейти переустановка драйверов принтера на новые драйвера с сайта производителя. Но нет, не помогает. Не буду вас мучить, и скажу, что разработчики Canon о нас подумали, и выпустили файл-заплатку, которая устраняет данную проблемку. Кто страдает данным недугом, на сайт Canon по этой ссылке:
Качаем, ставим, радуемся жизни.
Все идеи взяты с нижеуказанных сайтов.

Проблема с принтером HP DeskJet 1280

Как-то столкнулся с проблемой в принтере HP DeskJet 1280, которая заключалась в том, что принтер отказывался печатать, выдавая пустую страницу из любого приложения, с которого была необходимость вывести документ на печать. Так вот, данная проблема не решалась даже переустановкой на свежую версию драйверов. Все это наблюдалось под управлением Windows XP на разных персональных компьютерах, на которых тестировался принтер. В Интернете наткнулся на ветку форума, в которой обсуждалась данная проблема. Причина по которой принтер ведет себя так, является загрязнившийся датчик определения краев бумаги, он находится на движущейся подложке, где устанавливаются картриджи, справой стороны. Что можно попробовать сделать в этом случае:

- Почистить (протереть) загрязненный датчик.

- Установить драйвера от принтера HP DeskJet 1220. Принтеры схожи между собой, в принтер HP DeskJet 1220 нет датчика определения краев бумаги.

Данные решения взяты http://ddriver.ru/kms_forumd+topic+forum-15+ids-2246.html

Удаление Office 2007 не через панель управления


В том случае если переустановка накатом или удаление через панель управления не работает. Можно воспользоваться двумя способами:

- Использовать специальную утилиту FixIt для конкретно установленного у Вас офисного пакета, поддерживаются пакеты 2003, 2007, 2010. Скачать их можно по следующему ссылке:


- Попробовать удалить вручную. Так же в этой статье можно найти ссылки на другие офисные пакеты. 

Установка Ogre3D в Ubuntu 10.04.

В этом посте мне бы хотелось рассказать как установить Ogre3D в Ubuntu. Ставить будем из исходных кодов. На момент написания поста на сайте Ogre, для скачивания, доступна версия 1.7.4. Скачать можно по этой ссылке http://www.ogre3d.org/download/source. Скаченный архив необходимо распаковать в любое удобное место, например ./src/ogre_src_v1-7-4/.
Для сборки исходников необходимо использовать Cmake. Установить его можно следующей командой в терминале:

sudo apt-get install cmake-gui

Узнать версию только что установленной системы cmake можно командой в терминале:
$ cmake - - version
Теперь нам необходимо установить все зависимые библиотеки для сборки Ogre.

sudo apt-get install libfreetype6-dev libboost-date-time-dev \
libboost-thread-dev nvidia-cg-toolkit libfreeimage-dev \
zlib1g-dev libzzip-dev libois-dev libcppunit-dev doxygen \
libxt-dev libxaw7-dev libxxf86vm-dev libxrandr-dev libglu-dev

Так, все готово для сборки. Запустите cmake-gui, с помощью данной программы мы укажем настройки конфигурации для сборки Ogre.


В поле 'Where is the source code' укажите путь к исходникам Ogre3d, у меня этот путь ./src/ogre_src_v1-7-4/. В поле 'Where to build the binaries' укажите путь куда будет собиратся Ogre, у меня этот путь ./src/ogre_bin/. Далее нажимаем Configure.
В диалоге выбора генератора установите 'Unix Makefiles' и нажмите Finish. Выберите нужные вам опции сборки, нажмите Configure потом Generate.
Далее переходим, в терминале, в каталог ogre_bin и выполняем команду make. Запустится процесс сборки. После этого, в этом же каталоге, выполняем make doc.


Окончательно установить Ogre, выполните команду sudo make install. Установка произойдет в каталог /usr/local/.

После этого идем по следующему пути /usr/local/bin/ и запускаем SampleBrowser. Мы увидим следующие окно.


На этом все.

Установка Ogre3D в Windows Vista.

В данном уроке мне бы хотелось описать компиляцию примеров поставляемых вместе с Ogre3D SDK, создание простого приложения с использованием данного движка. Также опишу решение проблем возникших в процессе сборки примеров.
Для начала необходимо скачать Ogre3D SDK под одну из сред компиляции представленные на официальном сайте проекта на ваш выбор. Идём на сайт Ogre3D в раздел Download http://www.ogre3d.org/download/sdk. Т.к. на компьютере установлена MS Visual Studio 2008 (среда) мне необходимо скачать для этой версии среды разработки соответствующую версию Ogre SDK 1.7.2 для Visual C++ .Net 2008 (далее просто Ogre).
Скаченный самораспаковывающийся архив установим в любое для вас удобное место на жестком диске, но желательно с коротким путём и названием каталога латинскими буквами. Я распаковал архив по следующему пути C:\Libs\OgreSDK_vc9_v1-7-2\.
Также для успешной компиляции примеров поставляемых вместе с OgreSDK необходимо скачать и установить СМаке. У меня используется версия CMake 2.8.4 и установлен по пути: C:\Program Files\CMake 2.8\.
Теперь взглянем на содержимое каталога с Ogre:

Все примеры лежат в каталоге Samples, а файл который объединяет все примеры в одном решение называется OGRE.sln. Вот этот файл и необходимо открыть в MS Visual Studio 2008.
После этого в обозревателе решений нашей среды будет отображено одно решение (OGRE) объединяющее в себе 34 проекта, т.е. сами примеры и браузер примеров (программа просмотра примеров).

Следующим нашим шагом будет сборка всех примеров. Для этого щелкаем правой кнопкой на решение с именем OGRE и выбираем Build Solution.
Если в процессе сборки появилось сообщение об ошибке линковщика (Project : error PRJ0019: A tool returned an error code from "Performing Pre-Link Event...") при сборке проекта SampleBrowser, то необходимо щелкнуть правой кнопкой на проекте SampleBrowser выбрать Properties (Свойства). В открывшемся окне выбираем Configuration Properties -> Build Events -> Pre-Link Event. Посмотрите правильно ли указано значение пути к CMake в свойстве Command Line. У меня прописано следующие:
"C:\Program Files\CMake 2.8\bin\cmake.exe" -E make_directory ../../lib/Debug
if errorlevel 1 goto VCReportError
Когда сборка всех примеров выполнено успешно перейдем в каталог bin\debug и найдем файл с именем SampleBrowser_d.exe. После запуска данного файла на дисплее вы увидите приложение OGRE Sample Browser позволяющие выбрать один из примеров и запустить его демонстрацию.
Если SampleBrowser_d.exe не запускается и выдается сообщение о том, что не найдена библиотека d3dx9_42.dll, то вам необходимо выполнить обновление DirectX SDK, последние обновления которого можно скачать в центре загрузок от microsoft.

В следующем посте мы попробуем создать простое приложение в Ogre.

Workout v.1.0.0



Workout – это программа выключит ваш компьютер в назначенное время и сообщит об этом за указанные минуты. Операционная система: Windows XP.

Функция GetSystemMetrics

Я не люблю много времени тратить на поиски информации о какой либо функции. Это конечно же может задеть вас как человека в этом плане ответственного, делающего все до победного конца.
По этому я буду разбирать данную функцию методом тыка, т.е. попробовал применить, посмотрел результат.
Первым делом поискать описание данной функции в help файле Delphi 7. Открываем строку поиска, вводим GetSystemMetrics и ожидаем в предвкушение результата. Ну что, есть что нибудь? У меня есть, возможно у вас тоже что-то найдется. Видим что все написано на английском, если у вас на русском, то вы первый обладатель справки по Delphi 7 на русском языке. Попробуем понять и прочесть то, что до нас хотели довести по этой функции составители документации. Ни чего не понятно? Загоним это в Google Translator.

Стало чуть проще. Данная функция получает метрики и конфигурационные настройки системы. Слово метрики не совсем понятно, возможно имеют в виду размеры. Переведем следующую строчку.
Получает ширину и высоту элементов экрана Windows. Все возвращает в пикселях. Так, может на примерах попонятней будет.
int GetSystemMetrics(
  int nIndex // Указываются параметр того, что мы хотим получить
);


syntax highlighted by Code2HTML, v. 0.9.1
Что мы можем из этого заключить? Функция в качестве аргумента передается параметр того что мы хотим получить (Например размеры экрана по x или у, количество кнопок у мыши и т.д.) результатом функция возвратит нам эти значения. Если функция завершится с ошибкой, она вернет ноль.
Так, ну что продолжим изучение на примере.
Предполагается что вы знакомы со средой Delphi 7 и легко сможете разобраться куда писать соответствущий код для достижения нужного нам результата. Попробую расписать подробно, но могу забыть что-нибудь.
Создадим новый VCL проект File -> New -> VCL Forms Applicatio - Delphi for Win32
Сохраним проект под любым удобным для вас именем File -> Save Project As.. И имя тебе будет ex_p1, модуль формы назовем ex_p1_unit.
С именем определились, теперь необходимо решить что выводить на нашу форму. Для на нашего примера вполне достаточно вывести размеры экрана и количество кнопок мыши. Остальные параметры вы можете вывести самостоятельно.
Для это нам потребуется четыре Label, и одна кнопка закрытия окна. Четыре Label мы расположим на одной панели с включенным свойством Align := alClient, кнопку мы расположим на второй панели с включенным Align := alBottom. Это кнопка типа TBitBtn c установленным свойством Kind := bkClose. У нашей формы Form1 меняем одно свойство BorderStyle := bsDialog.
У вас должно получиться что-то в этом духе:

Переходим к реализации кода.
Начнем с обработчика событий OnCreate. В этом обработчике, в основном, и будут производится все страшные манипуляции с функцией GetSystemMetrics.
Заведем три переменных для хранения результата возвращаемого функцией GetSystemMetrics:
  • для количества кнопок мыши (MouseButtonCount)
  • для количества пикселей экрана по x (XScreenResolution)
  • для количества пикселей экрана по y (YScreenResolution)
Параметры которые мы должный передать в GetSystemMetrics следующие:
  • для количества кнопок мыши (SM_CMOUSEBUTTONS)
  • для количества пикселей экрана по x (SM_CXSCREEN)
  • для количества пикселей экрана по y (SM_CYSCREEN)

procedure TForm1.FormCreate(Sender: Tobject);
var
  MouseButtonCount: Integer;
  XScreenResolution: Integer;
  YScreenResolution: Integer;
begin
  MouseButtonCount := GetSystemMetrics( SM_CMOUSEBUTTONS);
  XScreenResolution := GetSystemMetrics(SM_CXSCREEN);
  YScreenResolution := GetSystemMetrics(SM_CYSCREEN);
  Label4.Caption := IntToStr(MouseButtonCount);
  Label2.Caption := IntToStr(XScreenResolution) + ' X ' + IntToStr(YScreenResolution);
end;


syntax highlighted by Code2HTML, v. 0.9.1

На этом примере можно посмотреть и другие параметры.