NS5 Posted January 18, 2009 Share Posted January 18, 2009 (edited) My System:MS Office 2007WINDOWS XP SP2AUTOIT V3 Latest version updated last Dec. 24 2008.Hi everyone, I'm having problems with my code when it sits and wait for 5 minutes or less once the code is activated. Auto IT crashes randomly on the specified time period. Can anyone help me out on this...CODE;Code Starts here#Include <Screencapture.au3>Global $error = ObjEvent("AutoIt.Error","Error")HotKeySet("z", "_Do") ;Press to activate codeHotKeySet("x", "_Exit");Press to exit code.Func _Do()DoCapture4()$i = 0Sleep(1000)Until $i= 1EndFunc;Func Capture4()Local $Image = @TempDir&"\ScreenCapture.tif", $v = 0_ScreenCapture_Capture($Image, 13, 419, 257, 454, True)_ImageResize($Image, $Image, 150, 100)$OCR = OCR($Image)If @error then ReturnClipPut($OCR)EndFunc;Func OCR($Image)Local $y = 0, $string$miDoc = ObjCreate("MODI.Document")$miDoc.Create($Image)If @error Then Return SetError(1)$miDoc.Ocr(9, True, True)If @error Then Return SetError(1)EndIfFor $Word In $miDoc.Images(0).Layout.Words $delim = ' 'If $miDoc.Images(0).Layout.Words($y).Rects(0).Bottom < $miDoc.Images(0).Layout.Words($y+1).Rects(0).Top Then $delim = @CRLF $string &= $Word.text & $delim $y += 1 NextReturn StringTrimRight($string,1)EndFuncFunc _ImageResize($sInImage, $sOutImage, $iW, $iH) Local $sOP, $sOF, $sInExt, $Ext, $hBitmap, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0 Local $sType = "BMP|GIF|ICO|JPG|JPEG|PNG|TIF|TIFF" If Not FileExists($sInImage) Then Return SetError(1, 0, 0) $sInExt = StringUpper(StringTrimLeft($sInImage, StringInStr($sInImage, ".", 0, -1))) If Not StringRegExp($sInExt, "\A(" & $sType & ")\z", 0) Then Return SetError(2, 0, 0) $sOP = StringLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1)) If Not FileExists($sOP) Then Return SetError(3, 0, 0) $sOF = StringTrimLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1)) $Ext = StringUpper(StringTrimLeft($sOutImage, StringInStr($sOutImage, ".", 0, -1))) If Not StringRegExp($Ext, "\A(" & $sType & ")\z", 0) Or $Ext = "ICO" Then Return SetError(4, 0, 0) If Not IsInt($iW) And Not IsInt($iH) Then Return SetError(5, 0, 0) _GDIPlus_Startup() $hImage2 = _GDIPlus_ImageLoadFromFile($sInImage) $ImageHeight = (_GDIPlus_ImageGetHeight($hImage2)) * 1.25 $ImageWidth = (_GDIPlus_ImageGetWidth($hImage2)) * 1.25 $hBitmap = _WinAPI_CreateBitmap($ImageWidth, $ImageHeight, 1, 32) $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap) $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1) $ImageHeight = _GDIPlus_ImageGetHeight($hImage2) $ImageWidth = _GDIPlus_ImageGetWidth($hImage2) _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $ImageWidth * 1.25, $ImageHeight * 1.25) $CLSID = _GDIPlus_EncodersGetCLSID($Ext) $sOutImage = @TempDir & '\OCR_ImageResize.jpg' FileDelete($sOutImage) _GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID) _GDIPlus_ImageDispose($hImage1) _GDIPlus_ImageDispose($hImage2) _GDIPlus_GraphicsDispose($hGraphic) _WinAPI_DeleteObject($hBitmap) _GDIPlus_Shutdown() Return SetError(0, 0, 1) EndFunc ;==>_ImageResize;Func Error()EndfuncWhile 1Sleep(1500)WEndFunc _Exit()ExitEndFunc;End of Code Edited January 18, 2009 by NS5 Link to comment Share on other sites More sharing options...
igotandrew Posted January 18, 2009 Share Posted January 18, 2009 expandcollapse popup;Code Starts here #Include <Screencapture.au3> Global $error = ObjEvent("AutoIt.Error","Error") HotKeySet("z", "_Do") ;Press to activate code HotKeySet("x", "_Exit");Press to exit code. Func _Do() Do Capture4() $i = 0 Sleep(1000) Until $i= 1 EndFunc ; Func Capture4() Local $Image = @TempDir&"\ScreenCapture.tif", $v = 0 _ScreenCapture_Capture($Image, 13, 419, 257, 454, True) _ImageResize($Image, $Image, 150, 100) $OCR = OCR($Image) If @error then Return ClipPut($OCR) EndFunc ; Func OCR($Image) Local $y = 0, $string $miDoc = ObjCreate("MODI.Document") $miDoc.Create($Image) If @error Then Return SetError(1) $miDoc.Ocr(9, True, True) If @error Then Return SetError(1) EndIf For $Word In $miDoc.Images(0).Layout.Words $delim = ' ' If $miDoc.Images(0).Layout.Words($y).Rects(0).Bottom < $miDoc.Images(0).Layout.Words($y+1).Rects(0).Top Then $delim = @CRLF $string &= $Word.text & $delim $y += 1 Next Return StringTrimRight($string,1) EndFunc Func _ImageResize($sInImage, $sOutImage, $iW, $iH) Local $sOP, $sOF, $sInExt, $Ext, $hBitmap, $hImage1, $hImage2, $hGraphic, $CLSID, $i = 0 Local $sType = "BMP|GIF|ICO|JPG|JPEG|PNG|TIF|TIFF" If Not FileExists($sInImage) Then Return SetError(1, 0, 0) $sInExt = StringUpper(StringTrimLeft($sInImage, StringInStr($sInImage, ".", 0, -1))) If Not StringRegExp($sInExt, "\A(" & $sType & ")\z", 0) Then Return SetError(2, 0, 0) $sOP = StringLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1)) If Not FileExists($sOP) Then Return SetError(3, 0, 0) $sOF = StringTrimLeft($sOutImage, StringInStr($sOutImage, "\", 0, -1)) $Ext = StringUpper(StringTrimLeft($sOutImage, StringInStr($sOutImage, ".", 0, -1))) If Not StringRegExp($Ext, "\A(" & $sType & ")\z", 0) Or $Ext = "ICO" Then Return SetError(4, 0, 0) If Not IsInt($iW) And Not IsInt($iH) Then Return SetError(5, 0, 0) _GDIPlus_Startup() $hImage2 = _GDIPlus_ImageLoadFromFile($sInImage) $ImageHeight = (_GDIPlus_ImageGetHeight($hImage2)) * 1.25 $ImageWidth = (_GDIPlus_ImageGetWidth($hImage2)) * 1.25 $hBitmap = _WinAPI_CreateBitmap($ImageWidth, $ImageHeight, 1, 32) $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap) $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1) $ImageHeight = _GDIPlus_ImageGetHeight($hImage2) $ImageWidth = _GDIPlus_ImageGetWidth($hImage2) _GDIPlus_GraphicsDrawImageRect($hGraphic, $hImage2, 0, 0, $ImageWidth * 1.25, $ImageHeight * 1.25) $CLSID = _GDIPlus_EncodersGetCLSID($Ext) $sOutImage = @TempDir & '\OCR_ImageResize.jpg' FileDelete($sOutImage) _GDIPlus_ImageSaveToFileEx($hImage1, $sOutImage, $CLSID) _GDIPlus_ImageDispose($hImage1) _GDIPlus_ImageDispose($hImage2) _GDIPlus_GraphicsDispose($hGraphic) _WinAPI_DeleteObject($hBitmap) _GDIPlus_Shutdown() Return SetError(0, 0, 1) EndFunc ;==>_ImageResize ; Func Error() Endfunc While 1 Sleep(1500) WEnd Func _Exit() Exit EndFunc ;End of Code for much more eligibility Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now