<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cyrill &#187; ranorex</title>
	<atom:link href="http://cyrill.co.uk/tag/ranorex/feed/" rel="self" type="application/rss+xml" />
	<link>http://cyrill.co.uk</link>
	<description>Чувак с пассатижами / sux, bugs &#38; plug ‘n’ play</description>
	<lastBuildDate>Sun, 01 Nov 2009 11:53:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Продолжение автоматизации FineReader: работа над ошибками</title>
		<link>http://cyrill.co.uk/2008/03/28/python-fr-gui-automation/</link>
		<comments>http://cyrill.co.uk/2008/03/28/python-fr-gui-automation/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 14:35:31 +0000</pubDate>
		<dc:creator>Cyrill</dc:creator>
				<category><![CDATA[Hints&tips]]></category>
		<category><![CDATA[Малая механизация]]></category>
		<category><![CDATA[finereader]]></category>
		<category><![CDATA[p01]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ranorex]]></category>

		<guid isPermaLink="false">http://cyrill.co.uk/2008/03/28/%d0%bf%d1%80%d0%be%d0%b4%d0%be%d0%bb%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-finereader-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0/</guid>
		<description><![CDATA[Друзья, вынужден признать, что опубликованный мной скрипт AutoIT для автоматизации Finereader работает из рук вон плохо, кроме того неоптимален по времени и использованию ресурсов. После небольшого прохода по Google была обнаружена компания Ranorex GmbH, предлагающая замечательные средства для работы с Windows GUI. Поскольку я давно собирался начать осваивать Python, выбор скриптового языка для работы с [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Друзья, вынужден признать, что опубликованный мной скрипт AutoIT для автоматизации Finereader работает из рук вон плохо, кроме того неоптимален по времени и использованию ресурсов. После небольшого прохода по Google была обнаружена компания <a href="http://ranorex.com/" target="_blank" title="Ranorex">Ranorex GmbH</a>, предлагающая замечательные средства для работы с Windows GUI. Поскольку я давно собирался начать осваивать <a href="http://www.python.org/" target="_blank" title="Python">Python</a>, выбор скриптового языка для работы с FR не был вопросом.</p>
<p>Итак, под катом &#8211; очередная вариация скрипта на тему &#8220;Как автоматизировать FineReader&#8221;. Требуется <a href="http://www.python.org/" title="Python" target="_blank">Python </a>и библиотеки Ranorex, которые скачиваются с сайта программы.<br />
<span id="more-87"></span></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># coding=cp1251</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>, <span style="color: #dc143c;">re</span>, <span style="color: #dc143c;">imp</span>, <span style="color: #dc143c;">time</span>, <span style="color: #dc143c;">logging</span>, <span style="color: #dc143c;">logging</span>.<span style="color: black;">handlers</span>
<span style="color: #dc143c;">logging</span>.<span style="color: black;">basicConfig</span><span style="color: black;">&#40;</span>level=<span style="color: #dc143c;">logging</span>.<span style="color: black;">DEBUG</span>,
				format=<span style="color: #483d8b;">'%(asctime)s;%(levelname)s;%(message)s'</span>,
				filename=<span style="color: #483d8b;">'c:<span style="color: #000099; font-weight: bold;">\\</span>official<span style="color: #000099; font-weight: bold;">\\</span>py_log2.txt'</span>,
                filemode=<span style="color: #483d8b;">'w+'</span><span style="color: black;">&#41;</span>
<span style="color: #808080; font-style: italic;">#smtp_log_handler = logging.handlers.SMTPHandler('195.24.227.198','py-script@rospravo.local','K.Udartsev@rospravo.ru','Recon logger event')</span>
l01 = <span style="color: #dc143c;">logging</span>.<span style="color: black;">getLogger</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'l01'</span><span style="color: black;">&#41;</span>
<span style="color: #808080; font-style: italic;">#l01.addHandler(smtp_log_handler)</span>
R = <span style="color: #dc143c;">imp</span>.<span style="color: black;">load_dynamic</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'RanorexPython'</span>, <span style="color: #483d8b;">'c:<span style="color: #000099; font-weight: bold;">\\</span>Python25<span style="color: #000099; font-weight: bold;">\\</span>DLLs<span style="color: #000099; font-weight: bold;">\\</span>RanorexPython.dll'</span><span style="color: black;">&#41;</span>
FRDir = <span style="color: #483d8b;">'C:<span style="color: #000099; font-weight: bold;">\\</span>Program Files<span style="color: #000099; font-weight: bold;">\\</span>ABBYY FineReader 9.0<span style="color: #000099; font-weight: bold;">\\</span>'</span>
FRExecutablePath = FRDir+<span style="color: #483d8b;">'FineReader.exe'</span>
DirListPath = <span style="color: #483d8b;">'C:<span style="color: #000099; font-weight: bold;">\\</span>official<span style="color: #000099; font-weight: bold;">\\</span>lf_test.txt'</span>
Number_of_retries = <span style="color: #ff4500;">10000</span> <span style="color: #808080; font-style: italic;">#x 1 sec - more than enough</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> fr_start<span style="color: black;">&#40;</span>frpath<span style="color: black;">&#41;</span>:
	R.<span style="color: black;">ApplicationStart</span><span style="color: black;">&#40;</span>frpath<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;ABBYY FineReader&quot;</span>, R.<span style="color: black;">MATCH_SUBSTRING</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">5000</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;">#return R.ApplicationGetFirst()</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	iteration = <span style="color: #ff4500;">0</span>
	dirList = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>DirListPath,<span style="color: #483d8b;">'r'</span><span style="color: black;">&#41;</span>
	dirs = dirList.<span style="color: black;">readlines</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Read list of dirs; total: %d found'</span> <span style="color: #66cc66;">%</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>dirs<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;">#print str(5)+'-'+dirs[1][3:].strip().replace('\\','-')+'.pdf'</span>
&nbsp;
	FRWnd = fr_start<span style="color: black;">&#40;</span>FRExecutablePath<span style="color: black;">&#41;</span>
	l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Finereader window handle: %d'</span> <span style="color: #66cc66;">%</span>FRWnd<span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">if</span> FRWnd == <span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff4500;">1</span>
&nbsp;
	R.<span style="color: black;">FormActivate</span><span style="color: black;">&#40;</span>FRWnd<span style="color: black;">&#41;</span>
	R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;">#open file dialog</span>
	<span style="color: #ff7700;font-weight:bold;">for</span> <span style="color: #008000;">dir</span> <span style="color: #ff7700;font-weight:bold;">in</span> dirs:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Current directory: '</span>+<span style="color: #008000;">dir</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #dc143c;">logging</span>.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Current directory: '</span>+<span style="color: #008000;">dir</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{CTRLDOWN}o&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{CTRLUP}&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;">#</span>
		openFilesDlg = R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Open Image'</span>,R.<span style="color: black;">MATCH_EXACT</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		<span style="color: #808080; font-style: italic;">#R.FormActivate(openFilesDlg)</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Open files dialog handle: %d'</span> <span style="color: #66cc66;">%</span>openFilesDlg<span style="color: black;">&#41;</span>
	<span style="color: #808080; font-style: italic;">#</span>
		edit_dirname = R.<span style="color: black;">FormFindChildClassName</span><span style="color: black;">&#40;</span>openFilesDlg, <span style="color: #483d8b;">&quot;Edit&quot;</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'edit_SrcDirName: %d'</span> <span style="color: #66cc66;">%</span>edit_dirname<span style="color: black;">&#41;</span>
&nbsp;
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		edit_cancelBtn = R.<span style="color: black;">FormFindChildClassName</span><span style="color: black;">&#40;</span>openFilesDlg, <span style="color: #483d8b;">&quot;Button&quot;</span>, <span style="color: #ff4500;">4</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'button_Cancel: %d'</span> <span style="color: #66cc66;">%</span>edit_cancelBtn<span style="color: black;">&#41;</span>
&nbsp;
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		edit_okBtn = R.<span style="color: black;">FormFindChildClassName</span><span style="color: black;">&#40;</span>openFilesDlg, <span style="color: #483d8b;">&quot;Button&quot;</span>, <span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'button_Ok: %d'</span> <span style="color: #66cc66;">%</span>edit_okBtn<span style="color: black;">&#41;</span>
&nbsp;
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		ofd_element = R.<span style="color: black;">ControlGetElement</span><span style="color: black;">&#40;</span>openFilesDlg<span style="color: black;">&#41;</span>
		filesListViewEl = R.<span style="color: black;">ElementFindChild</span><span style="color: black;">&#40;</span>ofd_element, R.<span style="color: black;">ROLE_SYSTEM_LIST</span>,<span style="color: #483d8b;">''</span>,<span style="color: #483d8b;">'SysListView32'</span>,R.<span style="color: black;">MATCH_SUBSTRING</span><span style="color: black;">&#41;</span>
&nbsp;
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span>edit_dirname, <span style="color: #008000;">dir</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Set directory to '</span>+<span style="color: #008000;">dir</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">MouseClickElement</span><span style="color: black;">&#40;</span>ofd_element,R.<span style="color: black;">MOUSE_LEFT_BUTTON</span>,<span style="color: #ff4500;">100</span>,<span style="color: #ff4500;">100</span>,<span style="color: #ff4500;">1</span>,<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{CTRLDOWN}a{CTRLUP}&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{ENTER}&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
&nbsp;
		processingWnd = R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Adding pages to the'</span>,R.<span style="color: black;">MATCH_FROM_START</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		processingWndEl = R.<span style="color: black;">ControlGetElement</span><span style="color: black;">&#40;</span>processingWnd<span style="color: black;">&#41;</span>
		processingWndValue = processingWndEl<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'processingWndValue: '</span> + processingWndValue<span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'processingWnd: %d'</span> <span style="color: #66cc66;">%</span>processingWnd<span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span>Number_of_retries<span style="color: black;">&#41;</span>:
			R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">750</span><span style="color: black;">&#41;</span>
			processingWndEl = R.<span style="color: black;">ControlGetElement</span><span style="color: black;">&#40;</span>processingWnd<span style="color: black;">&#41;</span>
			processingWndValue = processingWndEl<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
			opResult = processingWndValue.<span style="color: black;">count</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'complete.'</span><span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> opResult == <span style="color: #ff4500;">0</span>:
				l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Result: %d'</span> <span style="color: #66cc66;">%</span>opResult<span style="color: black;">&#41;</span>
				l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Finished; Ending operations'</span><span style="color: black;">&#41;</span>
				<span style="color: #ff7700;font-weight:bold;">break</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Progress...'</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		closeProcessingWndBtn = R.<span style="color: black;">ElementFindChild</span><span style="color: black;">&#40;</span>processingWndEl, R.<span style="color: black;">ROLE_SYSTEM_PUSHBUTTON</span>,<span style="color: #483d8b;">'Close'</span>,<span style="color: #483d8b;">'Button'</span>,R.<span style="color: black;">MATCH_SUBSTRING</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">MouseClickElement</span><span style="color: black;">&#40;</span>closeProcessingWndBtn<span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{CTRLDOWN}s{CTRLUP}&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
&nbsp;
		saveFilesDlg = R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Save Pages'</span>,R.<span style="color: black;">MATCH_EXACT</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">FormActivate</span><span style="color: black;">&#40;</span>saveFilesDlg<span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Save files dialog handle: %d'</span> <span style="color: #66cc66;">%</span>saveFilesDlg<span style="color: black;">&#41;</span>
		edit_save_dirname = R.<span style="color: black;">FormFindChildClassName</span><span style="color: black;">&#40;</span>saveFilesDlg, <span style="color: #483d8b;">&quot;Edit&quot;</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'edit_saveDirName: %d'</span> <span style="color: #66cc66;">%</span>edit_save_dirname<span style="color: black;">&#41;</span>
&nbsp;
		filename = <span style="color: #008000;">dir</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>'</span>+<span style="color: #008000;">str</span><span style="color: black;">&#40;</span>iteration<span style="color: black;">&#41;</span>+<span style="color: #483d8b;">'-'</span>+<span style="color: #008000;">dir</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">3</span>:<span style="color: black;">&#93;</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\\</span>'</span>,<span style="color: #483d8b;">'-'</span><span style="color: black;">&#41;</span>+<span style="color: #483d8b;">'.pdf'</span>
		R.<span style="color: black;">ControlSetText</span><span style="color: black;">&#40;</span>edit_save_dirname, filename<span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Set save path &amp;amp; filename to '</span>+filename<span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{ENTER}&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Saving file'</span><span style="color: black;">&#41;</span>
&nbsp;
		savingWnd = R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Saving to file'</span>,R.<span style="color: black;">MATCH_FROM_START</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		savingWndEl = R.<span style="color: black;">ControlGetElement</span><span style="color: black;">&#40;</span>savingWnd<span style="color: black;">&#41;</span>
		savingWndValue = savingWndEl<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'savingWndValue: '</span> + savingWndValue<span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'savingWnd: %d'</span> <span style="color: #66cc66;">%</span>savingWnd<span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span>Number_of_retries<span style="color: black;">&#41;</span>:
			R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
			savingWndLoc = R.<span style="color: black;">ControlGetPosition</span><span style="color: black;">&#40;</span>savingWnd<span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> savingWndLoc == <span style="color: #008000;">None</span>:
				l01.<span style="color: black;">info</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Saved file'</span><span style="color: black;">&#41;</span>
				<span style="color: #ff7700;font-weight:bold;">break</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				l01.<span style="color: black;">info</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Still saving'</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1000</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">ControlSendKeys</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">&quot;{ALTDOWN}f{ALTUP}c&quot;</span>, <span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
&nbsp;
		dontSaveWnd = R.<span style="color: black;">FormFindTitle</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'ABBYY FineReader 9.0 Professional Edition'</span>,R.<span style="color: black;">MATCH_EXACT</span>, <span style="color: #008000;">True</span>, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
		dontSaveWndEl = R.<span style="color: black;">ControlGetElement</span><span style="color: black;">&#40;</span>dontSaveWnd<span style="color: black;">&#41;</span>
&nbsp;
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'dontSaveWndEl: '</span> + dontSaveWndEl<span style="color: black;">&#91;</span><span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
		l01.<span style="color: black;">debug</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'dontSaveWnd: %d'</span> <span style="color: #66cc66;">%</span>dontSaveWnd<span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		closeDontSaveWndBtn = R.<span style="color: black;">ElementFindChild</span><span style="color: black;">&#40;</span>dontSaveWndEl, R.<span style="color: black;">ROLE_SYSTEM_PUSHBUTTON</span>,<span style="color: #483d8b;">'Нет'</span>,<span style="color: #483d8b;">'Button'</span>,R.<span style="color: black;">MATCH_SUBSTRING</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">Sleep</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">150</span><span style="color: black;">&#41;</span>
		R.<span style="color: black;">MouseClickElement</span><span style="color: black;">&#40;</span>closeDontSaveWndBtn<span style="color: black;">&#41;</span>
		iteration+=<span style="color: #ff4500;">1</span>
	<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #ff4500;">0</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    ret = main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> ret <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Test FAILED'</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Test PASSED'</span>
    <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span>ret<span style="color: black;">&#41;</span></pre></div></div>



<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://cyrill.co.uk/2008/03/28/python-fr-gui-automation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
