NS5 Posted January 18, 2009 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
igotandrew Posted January 18, 2009 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
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