The only downside of MODI library is that it relies 100 % on MS Office.
So if you don’t have the proper version installed it will not find the needed COM object.
Check the Office version you have installed and see if MODI is in there.
Go in Uninstall Programs and click on Change/Repair on the MS Office version you have. From there you can check if MODI documents are installed.
Edit: Install MDI to TIFF Files Converter and SharePoint Designer from this link: https://support.microsoft.com/en-us/kb/982760
After installing them go to > Uninstall a Program>MS Office SharePoint Designer 2007> Right click on it and select Change>select Add or Remove Features.
From there in the menu you will find the option Office Tools. Expand it.
Then click on the small arrows on MODI(Microsoft Office Document Imaging) and select «Run all from my Computer».
And you are ready to go!
Edit2: Here is a tested and working example.
#include <GUIConstants.au3>
#include <Array.au3>
Dim $miDoc, $Doc
Dim $str
Dim $oWord
Dim $sArray[500]
Const $miLANG_CZECH = 5
Const $miLANG_DANISH = 6
Const $miLANG_DUTCH = 19
Const $miLANG_ENGLISH = 9
Const $miLANG_FINNISH = 11
Const $miLANG_FRENCH = 12
Const $miLANG_GERMAN = 7
Const $miLANG_GREEK = 8
Const $miLANG_HUNGARIAN = 14
Const $miLANG_ITALIAN = 16
Const $miLANG_JAPANESE = 17
Const $miLANG_KOREAN = 18
Const $miLANG_NORWEGIAN = 20
Const $miLANG_POLISH = 21
Const $miLANG_PORTUGUESE = 22
Const $miLANG_RUSSIAN = 25
Const $miLANG_SPANISH = 10
Const $miLANG_SWEDISH = 29
Const $miLANG_TURKISH = 31
Const $miLANG_SYSDEFAULT = 2048
Const $miLANG_CHINESE_SIMPLIFIED = 2052
Const $miLANG_CHINESE_TRADITIONAL = 1028
Local $ImagePath = @DesktopDir & "Untitled.png" ; you can choose .tif format if you also want
; Initialize error handler
$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$miDoc = ObjCreate("MODI.Document")
$miDocView = ObjCreate("MiDocViewer.MiDocView")
$Viewer = GUICreate("Embedded MODI Viewer", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
;Creates an ActiveX Control in the GUI.
$GUIActiveX = GUICtrlCreateObj($miDocView, -1, -1, 640, 580)
GUICtrlSetResizing($Viewer, $GUI_DOCKAUTO)
$miDoc.Create($ImagePath)
$miDoc.Ocr($miLANG_ENGLISH, True, False)
; Show GUI
GUISetState()
$miDocView.Document = $miDoc
$miDocView.SetScale(0.75, 0.75)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
$i = 0
For $oWord In $miDoc.Images(0).Layout.Words
$str = $str & $oWord.text & @CRLF
ConsoleWrite($oWord.text & @CRLF)
$sArray[$i] = $oWord.text
$i += 1
Next
_ArrayDisplay($sArray, "OCR Result")
;MsgBox(0,"",$miDocView.FileName)
;------------------------------ This is a COM Error handler --------------------------------
Func MyErrFunc()
$HexNumber = Hex($oMyError.number, 8)
MsgBox(0, "COM Error Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & $HexNumber & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext _
)
SetError(1) ; to check for after this function returns
EndFunc ;==>MyErrFunc
Hi, folks. New guy on the block here. Have been using AutoIT for a very short time, and I’m needing to open Outlook, search for and open a message with a specific subject, save an attachment (CSV file) to the Desktop, then close/minimize Outlook and manipulate the file with Excel. Instead of using Run, WinActivate, etc., I was hoping to use COM instead, as it seemed more programmatic and less error-prone. However, I’m running into trouble right out of the chute. My first two statements are:
CODE
;Open Outlook:
$outlook = ObjCreate(«Outlook.Application»)
$outlook.Visible
When I save and run this, though, I get the following error message in my output:
CODE
>Running:(3.2.2.0):C:Program FilesAutoIt3autoit3.exe «C:Documents and SettingsStoneS2DesktopFormatMECSV.au3»
C:Documents and SettingsStoneS2DesktopFormatMECSV.au3 (22) : ==> Variable must be of type «Object».:
$outlook.Visible
$outlook^ ERROR
I tried using the #include <IE.au3> at the beginning of the script, because I saw it in someone’s example code somewhere. Didn’t have any effect. (Couldn’t imagine why it would have, but I’ll try most things once.)
Any ideas, folks, about what I’m doing wrong? I’ve hit the forums here, MSDN, the AutoIT help files, and several other sources and can’t figure out what I’m doing wrong. Incidentally, I’m using Outlook 2003 on Windows XP with all the latest SPs and patches.
Thanks in advance for any and all help…
Shawn Stone
Сообщения: 8
Благодарности: 0
Сообщения: 52416
Благодарности: 15170
Конфигурация компьютера | |
Процессор: Intel Core i7-3770K | |
Материнская плата: ASUS P8Z77-V LE PLUS | |
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб) | |
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб | |
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS | |
Звук: Realtek ALC889 HD Audio | |
Блок питания: be quiet! Straight Power 11 650W | |
CD/DVD: ASUS DRW-24B5ST | |
Монитор: ASUS VG248QE 24″ | |
ОС: Windows 8.1 Pro x64 | |
Индекс производительности Windows: 8,1 | |
Прочее: корпус: Fractal Design Define R4 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Решена Майнер taskhost.exe
Каждые несколько минут вылезает ошибка
Line 20800 (File «C:ProgramdataRealtekHDtaskhost.exe»):
Error: Variable must be of type «Object».
необходима помощь в исправлении ошибки (удалении вредоносного ПО
AVZ — настойчиво не хочет создавать лог
Вложения
- 4 Май 2022
- #2
Скачайте, распакуйте и запустите (от имени администратора) AV block remover.
По окончании всех процедур произойдет перезагрузка системы. Прикрепите созданный утилитой лог AV_block_remove.log к следующему сообщению.
Если не запускается, то переименуйте ее (например в AV_br.exe)
Повторно запустите Autologger и прикрепите новый CollectionLog.
Warork
Новый пользователь
- 4 Май 2022
- #3
Вложения
- 4 Май 2022
- #4
После перезагрузки, выполните такой скрипт:
Файл quarantine.7z из папки с распакованной утилитой AVZ отправьте с помощью этой формы или (если размер архива превышает 10 MB) на этот почтовый ящик: quarantine <at> safezone.cc (замените <at> на @) с указанием ссылки на тему в теме (заголовке) сообщения и с указанием пароля: malware в теле письма.
Скачайте Farbar Recovery Scan Tool (или с зеркала) и сохраните на Рабочем столе.
Примечание: необходимо выбрать версию, совместимую с вашей операционной системой. Если вы не уверены, какая версия подойдет для вашей системы, скачайте обе и попробуйте запустить. Только одна из них запустится на вашей системе.
Когда программа запустится, нажмите Да (Yes) для соглашения с предупреждением.
Суть скрипта:
Ищем файлы в папке меняем в них данные. И Все это по циклу. В каких папках искать и на что менять берём из exel.xlsm
Проблема:
Без циклов скрипт работает хорошо. Делает 2-4 цикла тоже хорошо. Но в какой-то момент слетает и выдает ошибку: Variable must be of type «Object» (есть подозрение что после определённо количества замен)
AutoIT Гуру
- 11 Ноя 2016
- #2
Новичок
- 11 Ноя 2016
- #3
AutoIT Гуру
- 11 Ноя 2016
- #4
Новичок
- 11 Ноя 2016
- #5
Спасибо но опять увы(
Исправленный скрипт выглядит так:
inververs
AutoIT Гуру
- 11 Ноя 2016
- #6
AutoIT Гуру
- 11 Ноя 2016
- #7
Новичок
- 11 Ноя 2016
- #8
Извините, не ругайтесь
Сейчас скрип работает также,
т.е. задаю ему 10 циклов он делает 4 и останавливается.
Но верно ошибка другая, вернее её нет!
Пишет в консоли следующее:
!>17:26:15 AutoIt3.exe ended.rc:-1073741819
+>17:26:15 AutoIt3Wrapper Finished.
>Exit code: 3221225477 Time: 41.25
AutoIT Гуру
- 11 Ноя 2016
- #9
А это уже аварийное завершение. Здесь уже сложно чем-то помочь.
Можете после каждой строки в скрипте прописать вывод в консоль или в файл (типа трассировки). Тогда хоть примерно узнаете после какой строки это происходит. Если это как-то с макросами связано — попробуйте макрос переписать или найти другой способ «копировать» и «сместить».
Или, как вам inververs предложил, попробуйте предыдущую версию AutoIt.
Нашли строку, но не знаете что с ней делать? Поставьте перед сбойной строкой MsgBox с выводом значения переменной, чтоб увидеть, являются ли данные тем, что необходимо получить. И если переменная является массивом, то используйте _ArrayDisplay, добавив в начало скрипта
Если скрипт был найден на форуме, то попытайтесь выяснить версию AutoIt3, с которой использовался скрипт, например по дате поста. Проверьте чтобы все необходимые скрипту
Если окно ошибки указывает на переменную являющуюся элементом массива, даже если вы уверены что с массивом всё в порядке, то очень вероятно, что цикл использует индекс превышающий существующие индексы в массиве. Используйте
Ниже приведен полный список фатальных ошибок AutoIt, возникающих при неправильном написании скриптов пользователем. Всего 74
-
#1
Каждые несколько минут вылезает ошибка
Line 20800 (File «C:ProgramdataRealtekHDtaskhost.exe»):
Error: Variable must be of type «Object».
необходима помощь в исправлении ошибки (удалении вредоносного ПО
AVZ — настойчиво не хочет создавать лог
-
CollectionLog-2022.05.04-17.17.zip
85.1 KB
· Просмотры: 10
-
#2
Скачайте, распакуйте и запустите (от имени администратора) AV block remover.
По окончании всех процедур произойдет перезагрузка системы. Прикрепите созданный утилитой лог AV_block_remove.log к следующему сообщению.
Если не запускается, то переименуйте ее (например в AV_br.exe)
Повторно запустите Autologger и прикрепите новый CollectionLog.
-
#3
-
AV_block_remove_2022.05.04-18.29.log
4.8 KB
· Просмотры: 1 -
CollectionLog-2022.05.04-18.45.zip
83 KB
· Просмотры: 7
-
#4
Закройте все программы, временно выгрузите антивирус, файрволл и прочее защитное ПО.
Выполните скрипт в АВЗ из папки Autologger (Файл — Выполнить скрипт):
begin
ExecuteFile('net.exe', 'stop tcpip /y', 0, 15000, true);
if not IsWOW64
then
begin
SearchRootkit(true, true);
SetAVZGuardStatus(True);
end;
QuarantineFile('C:ProgramdataRealtekHDtaskhost.exe', '');
QuarantineFile('C:ProgramdataRealtekHDtaskhostw.exe', '');
QuarantineFile('C:ProgramDataWindows Tasks Servicewinserv.exe', '');
DeleteFile('C:ProgramdataRealtekHDtaskhost.exe', '64');
DeleteFile('C:ProgramdataRealtekHDtaskhostw.exe', '64');
DeleteFile('c:programdatawindows tasks servicewinserv.exe', '64');
DeleteSchedulerTask('MicrosoftWindowsWininetRealtekMO');
DeleteSchedulerTask('MicrosoftWindowsWininetRealtekOnLogon');
DeleteSchedulerTask('MicrosoftWindowsWininetTaskhostMO');
DeleteSchedulerTask('MicrosoftWindowsWininetTaskhostOnlogon');
DeleteSchedulerTask('MicrosoftWindowsWininetwinser');
DeleteSchedulerTask('MicrosoftWindowsWininetwinsers');
BC_ImportALL;
ExecuteSysClean;
ExecuteWizard('SCU', 2, 3, true);
BC_Activate;
RebootWindows(true);
end.
Компьютер
перезагрузится
.
После перезагрузки, выполните такой скрипт:
begin
DeleteFile(GetAVZDirectory+'quarantine.7z');
ExecuteFile(GetAVZDirectory+'7za.exe', 'a -mx9 -pmalware quarantine .Quarantine*', 1, 300000, false);
end.
Файл quarantine.7z из папки с распакованной утилитой AVZ отправьте с помощью этой формы или (если размер архива превышает 10 MB) на этот почтовый ящик: quarantine <at> safezone.cc (замените <at> на @) с указанием ссылки на тему в теме (заголовке) сообщения и с указанием пароля: malware в теле письма.
Скачайте Farbar Recovery Scan Tool (или с зеркала) и сохраните на Рабочем столе.
Примечание: необходимо выбрать версию, совместимую с вашей операционной системой. Если вы не уверены, какая версия подойдет для вашей системы, скачайте обе и попробуйте запустить. Только одна из них запустится на вашей системе.
Когда программа запустится, нажмите Да (Yes) для соглашения с предупреждением.
Нажмите кнопку Сканировать (Scan).
После окончания сканирования будут созданы отчеты FRST.txt и Addition.txt в той же папке, откуда была запущена программа. Прикрепите отчеты к своему следующему сообщению.
Подробнее читайте в этом руководстве.
-
#5
Спасибо за помощь
последние необходимые логи
-
FRST.txt
39.1 KB
· Просмотры: 9 -
Addition.txt
123.5 KB
· Просмотры: 9
-
#6
Примите к сведению — после выполнения скрипта (возможно) все открытые вкладки браузеров будут закрыты, произойдет выход из аккаунтов, временные файлы, корзина, история браузеров, куки и кэш будут очищены.
- Отключите до перезагрузки антивирус.
- Выделите следующий код:
Start:: SystemRestore: On CreateRestorePoint: HKLMSOFTWAREPoliciesMicrosoftWindows Defender: Ограничение <==== ВНИМАНИЕ HKLMSOFTWAREPoliciesMozillaFirefox: Ограничение <==== ВНИМАНИЕ HKLMSOFTWAREPoliciesGoogle: Ограничение <==== ВНИМАНИЕ ContextMenuHandlers1: [Advanced SystemCare] -> {2803063F-4B8D-4dc6-8874-D1802487FE2D} => -> Нет файла EmptyTemp: Reboot: End::
- Скопируйте выделенный текст (правой кнопкой — Копировать).
- Запустите FRST (FRST64) от имени администратора.
- Нажмите Исправить (Fix) один раз (!) и подождите. Программа создаст лог-файл (Fixlog.txt). Прикрепите его к своему следующему сообщению.
Компьютер будет перезагружен автоматически.
Подробнее читайте в этом руководстве.
После проверяйте, что с проблемой.
-
#7
Проблема решена ещё на прошлом шаге, оповещений об ошибке больше нет
-
Fixlog.txt
2 KB
· Просмотры: 7
-
#8
Тогда завершаем
Подготовьте лог лог SecurityCheck by glax24
Чтобы автоматически удалить все файлы и папки, созданные FRST, в том числе сам инструмент, переименуйте FRST/FRST64.exe в uninstall.exe и запустите его. Процедура требует перезагрузки