Sign in to follow this  
Followers 0
SorryButImaNewbie

Interacting with PDF creator 1.7.1

6 posts in this topic

#1 ·  Posted (edited)

Edited for additional info

Hello

For some reason It seems like I'm unable to communicate with a button (the cancel one)

so far i tried these options, right now i'm still searching for other options, but I think the problems isn't with the script, but I don't know what else could it be

WinActivate("PDFCreator", "Kulcsszavak:")
Local $handle4 = WinGetHandle("PDFCreator", "")
ControlFocus($handle4, "", "ThunderRT6CommandButton1")
Sleep(1000)
Send("{ENTER}")
ControlFocus($handle4, "", "ThunderRT6CommandButton1")
Sleep(1000)
Send("{ENTER}")
;Send("{ESC}")
;Sleep(500)
;Send("{ESC}")
;ControlClick($handle4,"","[CLASSNN:ThunderRT6CommandButton1]"
;WinWaitActive($handle4)
;WinClose($handle4)
;Sleep(1000)
;WinClose($handle4)

The PDF Creator pops up when i finish test ordering something, so the program  starts running during a script (if that helps)

It tries to print some documents, which i want to shut down, also it seems that it clicks on an other control button (save) once. I just don't understand why

I was able to communicate with this program before, I renamed and saved PDFs, so I don't think that its uncomatible

Also an unrelated question: I can't type [ and { (but can type ]and } ) while au3 info is open, is that some bug, is it intended or just a unique something with mine?

Thank you for your help!

Edited by SorryButImStupid

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Edited for more info

My other code (which i wrote first and from it I created the one I started the thread with) seems to behave differently now....

Almost everytime it runs, it runs differently. Sometimes it saves the new PDF name (adding the date to it, the date format is like 201411111542) and sometimes it doesnt.

Sometimes it adds it later in the pop up window where i can designate it folder. I tried to play around with sleep, but I dont tink thats the problem

code:

Local $handle4 = WinGetHandle("PDFCreator", "")
ControlFocus($handle4, "", "ThunderRT6TextBox5")
Sleep(1000)
Send("{CTRLDOWN}c{CTRLUP}")
Sleep(1000)
ControlFocus($handle4, "", "ThunderRT6TextBox6")
Sleep(1000)
Send("{RIGHT} {SPACE}")
Sleep(200)
Send("{CTRLDOWN}v{CTRLUP}")
Sleep(1000)
ControlClick("PDFCreator 1.7.1", "", "[CLASSNN:ThunderRT6CommandButton7]")
Send ("{ENTER}")
Sleep(400)
WinWaitActive($handle4)
Sleep(1000)
ControlFocus($handle4, "", "ThunderRT6TextBox6")
Sleep(1000)
Send("{RIGHT} {SPACE}")
Sleep(200)
Send("{CTRLDOWN}v{CTRLUP}")
Sleep(1000)
ControlClick("PDFCreator 1.7.1", "", "[CLASSNN:ThunderRT6CommandButton7]")
Sleep(400)

I'm getting a bit tired, but still don't know what could be the problem, and specially why does my code behave differently sometimes.

Edited: Now for example I saw it waiting a bit at ThunderRT6TextBox6, but didn't copy the date or hit any button after the folderbrowser came up (it hit the save button) I was able to manually just hit Ctrl-V and it copied the date from the clipboard I just don't understand how can it skip entire code segments without anything, is there any breakpoint or somekind of other debugger tool in autoit?

Thank you

Edited by SorryButImStupid

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Instead of using Send() maybe you can use ControlGetText() and ControlSetText(). It should be more reliable.

Edited by czardas

Share this post


Link to post
Share on other sites

Signature beginning:   Wondering who uses AutoIT and what it can be used for ?
* GHAPI UDF - modest begining - comunication with GitHub REST API *
ADO.au3 UDF     POP3.au3 UDF     XML.au3 UDF    How to use IE.au3  UDF with  AutoIt v3.3.14.x  for other useful stuff click the following button

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 - BETA * ADO.au3 UDF SMTP Mailer UDF *

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Best coding practices * 

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2017-06-04

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Hey guys!

Thank you for the comments! Both were usefull. Czardas, I don't know how could i skip GetText and SetText (I was tired, but I thought that I already tried it, yet it wasn't commanted out among the other solutions I tried, so I must have skipped it...) I use it now since it is simplier,cleaner, and all in all better

mLipok thanks for the link, I didn't found anything usefull for this particular problem but since I think I will work with PDFcreator again, it will be definetly usefull and worth the read.

I think the problem was that every time I saved a PDF the window reopened and I lost my handle on it (I can only guess, this way the Sleeps and the different run times could possibly make the script act differently according to what is open and active at that specific moment, but correct me if I'm wrong)

my code fragment  right now is the following:

(Is it okey if I mark my post as the Solved anserw? asking it as an etiquette thing)

WinWaitActive("PDFCreator")
Local $handle4 = WinGetHandle("PDFCreator", "")
Sleep(500)
Local $VJdate = "TeszttVJ" & ControlGetText($handle4, "", "ThunderRT6TextBox5")
MsgBox(0, "VJdate teszt", $VJdate)
Sleep(1000)
ControlSetText($handle4, "","ThunderRT6TextBox6", $VJdate & "(1)")
Sleep(1000)
ControlClick("PDFCreator 1.7.1", "", "[CLASSNN:ThunderRT6CommandButton7]")
Sleep(2000)
Send ("{ENTER}")
Sleep(1000)
WinWaitActive("PDFCreator")
Sleep(1000)
Local $handle5 = WinGetHandle("PDFCreator", "")
ControlSetText($handle5, "","ThunderRT6TextBox6", $VJdate & "(2)")
Sleep(1000)
ControlClick("PDFCreator 1.7.1", "", "[CLASSNN:ThunderRT6CommandButton7]")
Sleep(2000)
Send ("{ENTER}")
Edited by SorryButImStupid

Share this post


Link to post
Share on other sites

I'm glad you made progress. I don't think there's any reason why you shouldn't mark your own answer as solved, but it's certainly polite of you to ask about it. I think people helping out on the forum would prefer a topic to be marked solved, so they can more easily see which problems have not been solved. :)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0