Обо мне

Моя фотография
Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!
Показаны сообщения с ярлыком windows. Показать все сообщения
Показаны сообщения с ярлыком windows. Показать все сообщения

вторник, 18 октября 2011 г.

HandyRecovery - верный помощник в восстановлении файлов


Довольно редко, но возникает ситуация, когда нужно восстановить нечаянно удаленные файлы. Существует много программ-помощников: EasyRecovery, GoBack, GetDataBack, Active@Undelete и т.д. Ранее все пользовался последней из приведенного списка, но в последний раз, когда понадобилось восстановить несколько файлов ни одна из перечисленных выше программ не смогла – Первая и последняя файлов почему-то не увидели, а GoBack так и вовсе подвисла.

Поэтому было принято решение найти что-то новое, простое и функциональное. После непродолжительных поисков приятно удивила программа-утилита HandyRecovery, Которую я скачал в виде portable версии. Работает быстро, файлы показывает с оригинальными именами. Что еще нужно?!

пятница, 19 августа 2011 г.

TitleRead - ваш надежный товарищ

Часто ли у Вас зарождалось подозрение, что кто-то в ваше отсутствие на работе (например, на обеде) использует ваш компьютер без вашего ведома?

Как быть, Вы можете прочитать на страничке моей новой программки

четверг, 18 августа 2011 г.

[Qt, WinApi] получение иконки чужого процесса

В данной заметке хотел бы показать как просто можно получить иконку чужого процесса.

[Qt, WinApi] получение информации об архитектуре процессора

QString processorInfo()
{
#if defined(Q_WS_WIN32)
SYSTEM_INFO info;
    GetSystemInfo(&info);
switch(info.wProcessorArchitecture)
{
#ifdef PROCESSOR_ARCHITECTURE_AMD64
            case PROCESSOR_ARCHITECTURE_AMD64:
                return "x86_64";
                break;
#endif
            case PROCESSOR_ARCHITECTURE_INTEL:
                return "x86";
                break;
            case PROCESSOR_ARCHITECTURE_IA64:
#ifdef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
            case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64:
#endif
                return "IA64";
                break;
            default:
                return "Unknown";
                break;
}
#endif

return QString();
}

среда, 17 августа 2011 г.

[Qt, WinApi] имя текущего пользователя

[Qt, WinApi] получение заголовка активного окна

Добрый день! Хотел бы разместить несколько небольших заметок об использовании WinApi функций в Qt. Начну, пожалуй, с простого - получение заголовка активного окна.



Не забудьте подключить заголовочный файл qt_windows.h к вашему проекту.


четверг, 28 июля 2011 г.

[Qt] Создание нового документа MS Word с параметрами по-умолчанию

Добрый день! Возникла необходимость создать новый документ Microsoft Word с заданными по-умолчанию некоторыми параметрами, например, пароль на открытие файла. Достичь желаемого результата можно очень и очень просто! Нам на помощь опять приходит нет-нет, не Чип и Дейл, а сокровищница знаний MSDN...


четверг, 19 мая 2011 г.

Saladin - двухпанельный файловый менеджер на Qt

На форумах по программированию часто встречаются топики, в которых разработчики либо интересуются как создать свой собственный, либо представляют на суд общественности уже готовый. Qt-сообщество не является исключением, наверное, на каждого из нас находило вдохновение по написанию собственного файлового менеджера. Под windows двухпанельных менеджеров пруд-пруди, чего стоит один только TotalCommander со своими почти неограниченными возможностями.. Под linux дела обстоят несколько хуже, Total-подобных программ достаточно мало - DoubleCmd, EmelFm, Krusader, который является наиболее удачным аналогом своего windows собрата, однако безбожно увяз в KDE зависимостях. Из интересных проектов, которые были бы написаны на чистом Qt, без разного рода громоздких сторонних зависимостей, в принципе, ничего стоящего не встречается. На нашем дорогом форуме для программистов однажды забрезжил свет надежды в виде PanterCommander, однако проект так завершен и не был. Из созданных исключительно под windows os, честно скажу, заинтересовал лишь один - Saladin, который использует на всю мощь возможности операционной системы и написанный нашим соседом-поляком.


Ознакомиться с возможностями программы вы можете проследовав на официальный сайт, расположенный по адресу - http://saladin.mimec.org/


воскресенье, 1 мая 2011 г.

[Qt] Статическая сборка под windows посредством Microsoft Visual Studio 2008. Это просто!

Для начала скачиваем с сайта Nokia пакет с исходным кодом библиотеки Qt и распаковываем его.
Затем переходим в данную директорию и открываем командную строку (консоль) из состава Microsoft Visual Studio Command Prompt и запускаем configure.exe со следующими параметрами:


-static
-release
-fast
-no-qt3support
-qt-gif
-qt-libpng
-qt-libmng
-qt-libjpeg
-qt-libtiff
-no-dsp
-no-vcproj
-no-plugin-manifests
-mp
-nomake
demos
-nomake
examples

После того, как процесс конфигурирования будет закончен, вводим команду nmake для запуска  сборки. По окончании удалим ненужные созданные в процессе сборки файлы командой nmake confclean.

суббота, 23 апреля 2011 г.

[Qt] Сборка vlc-qt. Пошагово. Часть 1

Сегодня я хотел бы рассказать о том, как можно собрать и использовать в своем проекте замечательную библиотеку vlc-qt, посредством которой становится возможным воспроизведение любых мультимедийных файлов.

1. Скачиваем саму библиотеку vlc-qt по ссылке http://qt-apps.org/content/show.php/VLC-Qt+library?content=133649

2. Скачиваем исходный код проигрывателя VLC по ссылке http://sourceforge.net/projects/vlc/files/1.1.9/vlc-1.1.9.tar.bz2/download, а также собранный дистрибутив проигрывателя, который сразу же устанавливаем.

3. Скачиваем дистрибутив CMake, который понадобится нам для сборки библиотеки по ссылке http://www.cmake.org/cmake/resources/software.html

4. Убеждаемся в том, что у нас в системе есть библиотека Qt, компилятор mingw32 и, что пути к ним прописаны в системном PATH.

5. Создаем директорию, например, D:\VLC

6. Распаковываем в нее исходники библиотеки vlc-qt, которую скачали в п.1 (у нас должно получиться D:\vlc\libvlc-qt-0.5.0\)

7. Из исходников VLC копируем (распаковываем) папку vlc, которая находится в папке vlc-1.1.9\include\vlc в D:\vlc\libvlc-qt-0.5.0\src (должно получиться D:\vlc\libvlc-qt-0.5.0\src\vlc)

8. Создаем каталог D:/vlc/libvlc-qt-0.5.0/build

9. Устанавливаем Cmake и запускаем cmake gui

10. "Where is the source code" нажимаем кнопку Browse Source и выбираем каталог D:/vlc/libvlc-qt-0.5.0

11. "Where to build the binaries" нажимаем кнопку Browse Build ... и выбираем каталог D:/vlc/libvlc-qt-0.5.0/build

12. Нажимаем кнопку Configure

13. Получаем ошибку. Не расстраиваемся и делаем все в соответствии с изображением из следующего пункта

14.

Смысл в том, чтобы для поля LIBVLC_INCLUDE_DIR выбрать в качестве параметра директорию D:/vlc/libvlc-qt-0.5.0/src/vlc (то есть ту папку в которую мы копировали заголовочные файлы из архива с исходниками самого проигрывателя)

Для параметра LIBVLCCORE_LIBRARY выбираем библиотеку C:/Program Files/VideoLAN/VLC/libvlccore.dll, которая установилась с проигрывателем VLC из п. 2

Для параметра LIBVLC_LIBRARY выбираем библиотеку C:/Program Files/VideoLAN/VLC/libvlc.dll, которая установилась с проигрывателем VLC из п. 2

Установленные библиотеки нужны для линковки.

15. Снова нажимаем Configure

16. Нажимаем на кнопку Generate

17. Закрываем Cmake

18. Открываем командную консоль (Меню Пуск-Выполнить-cmd либо через Total Commander, если пользуетесь им, Open Terminal Here)

19. В консоли переходим в нужный нам каталог, если не перешли ранее, cd D:/vlc/libvlc-qt-0.5.0/build

20. Собираем библиотеку. В консоли вводим команду mingw32-make (при условии, что путь к компилятору у вас добавлен в PATH, либо пишете полный путь к компилятору D:\Qt\2010.05\mingw\bin\mingw32-make.exe

21. ждите

22. Вроде собралось без ошибок.

Всё, на этом сборка собственной библиотеки закончилась. На днях я подробно расскажу о том, как подключить к своему проекту данную библиотеку. Для нетерпеливых рекомендую ознакомиться с примерами vlc-qt. Там все ясно и понятно.

Обсуждение на Russian Qt forum

Постоянный партнер блога:

Профессиональные услуги адвоката в Минске. Абрамович В.А. Корректировка таможенной стоимости. Защита интересов в хозяйственных судах. Признание и приведение в исполнение судебных постановлений иностранных судов на территории Республики Беларусь. - Abramovich.by

пятница, 1 апреля 2011 г.

[Qt] Создание красивого всплывающего окошка OSD

Для своей программки LinForismatic, отображающей цитаты на рабочем столе, понадобилось выводить красивые всплывающие окошки содержащие произвольный текст и, по мере необходимости, небольшое изображение-иконку.

Под линуксом с этим проблем нет - libnotify поможет всем. Однако хотелось кросс-платформенного решения, под определение которого подпадал widget для вывода OSD из состава музыкального проигрывателя Clementine.

Немного порывшись в исходном коде проигрывателя нужные классы были найдены. Единственное чего не хватало в реализации, так это установление произвольного шрифта - что я и добавил, собственно в этот widget.

В итоге получаем:


Если кому интересно, то я выложил отдельный архив:
http://dl.dropbox.com/u/6896945/prettyosd.zip

Использовать можно следующим образом:

osd = new OSDPretty(OSDPretty::Mode_Popup);
osd->set_fading_enabled(true);
QFont font("Tahoma",11);
osd->setOsdFont(font);
osd->set_popup_duration(20000);
osd->SetMessage(name,text,QImage());
osd->show();


среда, 30 марта 2011 г.

[Qt] Поиск и замена текста в Microsoft Word посредством ActiveQt

Обратил внимание на то, что в интернете на форумах достаточно сложно найти информацию о том, как производить поиск и замену текста в Microsoft Word посредством ActiveQt. Для собственного проекта написал следующую процедуру:

void MsWordDocument::replaceString(const QString& oldString, const QString& newString)
{
  QAxObject* WordSelection = WordApplication->querySubObject("Selection");

  QAxObject* Find = WordSelection->querySubObject("Find");
  if (!Find) return;
  Find->dynamicCall("ClearFormatting()");

  QList<QVariant> params;
  params.operator << (QVariant(oldString));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(true));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(newString));
  params.operator << (QVariant("2"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  Find->dynamicCall("Execute(const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,const QVariant&)",
                    params);
 
}
Более подробную информацию о передаваемых параметрах можно прочитать на MSDN 

вторник, 22 марта 2011 г.

[Qt] конвертация файлов из Microsoft Word (doc) в RTF

Сказано - сделано:
QAxObject* WordApplication = new QAxObject("Word.Application");
  WordApplication->dynamicCall("SetVisible(bool)", false);
  WordApplication->querySubObject("Documents")->querySubObject("Open(QVariant)", _filename);


  QString newFilename = ...new...name...

  QAxObject* active_doc = WordApplication->querySubObject("ActiveDocument");
  QVariant newF(_outputDir + newFilename);
  QVariant fileFormat(6); //Сохраняем в rtf. 2 - txt
  active_doc->querySubObject("SaveAs(const QVariant&, const QVariant&)", newF, fileFormat);

  // Закрываем
  WordApplication->querySubObject("ActiveDocument")->dynamicCall("Close()");
  WordApplication->dynamicCall("Quit()");

Открываем doc файл, сохраняем его в rtf. При этом окно Ms Word скрываем