Видеоклип в Excel

На сайте excel.acdc.com представлен клип группы AC/DC в очень необычном формате. По ссылке можно скачать Excel-файл, который может проигрывать «видео».

Интересно узнать, как реализован такой фокус. Если посмотреть на техническую сторону этой занимательной безделушки, то можно увидеть следующий код макроса (код даже не закрыт паролем) на VBA, проигрывающий псевдо-видео:

Sub PlayVideo()

Dim i As Long
Dim Start, Delay

i = 100
Do While Sheet1.Cells(i, 17).Value <> ""

   Start = Timer                'Set start to internal timer
   Delay = Start + 0.083        'Set delay so frames change 12 per sec.

   'Display
   Do While Timer < Delay
      DoEvents
   Loop
   Sheet1.Range("B2").Value = Sheet1.Cells(i, 17).Value
   DoEvents

   If StopPlaying = True Then
      Exit Do
   End If

   Start = Timer                'and reset the timer
   Delay = Start + 0.083        'and the delay
   i = i + 1
Loop

'Stop audio
Call PlayBackStop
'Clear video
Sheet1.Range("B2").Value = ""
'Show logo
Sheet1.Range("B2").Value = Sheet1.Range("Q99").Value
'Move cursor
'Sheet1.Range("A1").Select

End Sub
&#91;/sourcecode&#93;
</p>
<p>Каждые 0.083 секунды, то есть примерно с частотой 12 кадров в секунду происходит заполнение ячеек новыми данными.</p>
<p> Проигрывание звука осуществляется через импортированную функцию библиотеке winmm.dll :</p> 
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
        (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Предварительно звук извлекается из xls-файла в файл ACDC.wav c помощью простого поиска заголовка внутри бинарного xls-файла. Файл ACDC.wav был предварительно внедрен в Excel-документ.

Acronis Disk Director Suite BSOD

Удалось победить крайне неприятные переодические синие экраны смерти, возникавшие в случае интенсивной работы с жестким диском, а также при установке программ (в особенности через установщик MSI) и 100% гарантированный BSOD при установке одного из обновлений безопасности Windows 7. Если у Вас случаются синие экраны с кодами ошибок (скриншот внизу) KMODE_EXCEPTION_NOT_HANDLED (код 1E) и/или ATTEMPTED_SWITCH_FROM_DPC(код B8) и установлен один из продуктов работы с разделами жесткого диска Acronis, то возможно, проблема в драйверах Acronis.

Перед всеми действиями по удалению Acronis рекомендую сделать точку восстановления системы, так как после того, как я удалил Acronis Disk Director Suite штатным деинсталлятором, перезагрузил компьютер и установил обновления Windows, систему нельзя было загрузить даже в безопасном режиме (возникал синий экран). Горе-программисты Acronis, не написавшие нормальные драйвера и даже нормальное удаление своего продукта из системы, выпустили такое же горе-обновление, требующее ручных манипуляций с реестром. Рекомендую сразу удалять Acronis именно этим средством Acronis Disk Director 11 Home Cleanup Utility, важно после удаления не перезагружать компьютер и проделать следующие действия:

1.Запустить редактор реестра (Пуск-выполнить-regedit.exe)
2.В следующих ключах реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{71A27CDD-812A-11D0-BEC7-08002BE2092F} и HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E967-E325-11CE-BFC1-08002BE10318} отредактировать ключи UpperFilters и LowerFilters удалением из них строк snapman*, tdrpman*, timounter (сами ключи с остальным содержимым должны остаться!!! например, вместо «snapman fvevol rdyboost», должно стать «fvevol rdyboost»)

После такого удаления Acronis Disk Director Suite наконец-то удалось заставить компьютер функционировать должным образом и устанавливать новые программы и обновления.

Увеличение размера диска virtualbox

Вопрос увеличения емкости виртуального жесткого диска является одним из часто возникающих при использовании Oracle VirtualBox. Почему-то в графической оболочке средства для такой операции отсутствуют. Но можно воспользоваться консольным приложением VBoxManage.

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

Итак, что нужно сделать:

1. Перед запуском необходимо, что старый образ жесткого диска не используется запущенным VirtualBox, в этом случае операция не удастся, так как файл будет заблокирован.

2. Выполнить cледующую команду (new_name — переменная с именем образа, new_size  — новый размер в мегабайтах):

VBOXManage  modifyhd «%new_name%» —resize %new_size%

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

3. Теперь емкость тома увеличилась, раздел можно расширить обычными средствами. Для Windows существует удобное бесплатное средство MiniTool Partition Wizard, которое бесплатно для домашнего использования(версия Home).

 

С утилитой VBoxManage.exe есть одна неприятная проблема — если процесс изменения виртуального диска запустить под адмнистратором, то можно получить ошибки » Failed to create the VirtualBox object! Code CO_E_SERVER_EXEC_FAILURE (0x80080005) — Server execution failed (extended info not available)» Решение в данном случае простое — просто запускать в обычной консоли без повышения прав.

Разрешение одновременной работы пользователей в Windows 7 (Concurrent Sessions)

Как известно, в Windows , отличных от серверных не разрешаются параллельные сессии — если зайти на компьютер удаленно по RDP, активный пользователь увидит окно логина. Для решения этой проблемы можно использовать Universal Termsrv.dll Patch, процесс установки описан здесь

Патч проверен на личном опыте, все работает без нареканий.

Используем Google Voice Search в своем приложении .NET

Публикую свой топик с хабрахабра.

Функция распознавания речи с некоторого времени доступна в браузере Google Chrome . Посмотреть как это выглядит можно, например, здесь.

Так как исходный Chromium открыт, возникает закономерное желание подсмотреть, можно ли использовать технологию в своих корыстных целях наступления мира на земле.

Как это часто бывает, все уже сделано за нас в этой статье. Все оказывается очень просто, необходимо сделать POST запрос на адрес https://www.google.com/speech-api/v1/recognize со звуковыми данными в формате FLAC или Speex. Реализуем демонстрацию распознавания WAVE-файлов с помощью C# .

Читать далее Используем Google Voice Search в своем приложении .NET