Jump to content

Recommended Posts

Posted

Hi friends,

I'm attaching three scripts here.

Test.exe -> Calls CTRLDOWN.exe and CTRLUP.exe

#RequireAdmin
run("CTRLDOWN.exe")
sleep(500)
run("CTRLUP.exe")

CTRLDOWN.exe -> Sends a {CtrlDOWN} to press CTRL key

#RequireAdmin
Send('{CTRLDOWN}')

CTRLUP.exe -> Sends a {CtrlUP} to release CTRL key

#RequireAdmin
Send('{CTRLUP}')

Test.exe calls two exes to press and release the CTRL keys. Key press is working fine but the release does not work. If I call the CTRLDOWN.exe and CTRLUP.exe, manually one by another or the commands in a single program, it is working fine. Can any one explain what is wrong when I call them from a program?

Thank you so much for being helpful always :-) 

CTRLDOWN.au3

CTRLUP.au3

test.au3

Posted

My program is a command based one and the parent process writes the commands into the STDIN stream of the child process. On the previous version, the child was closed after executing all the commands but due to some changes in the new version, the child process is closed after executing each command.

I can convert the program into a single one but still was curious to know, what made it not working.

Thank you for your reply @FrancescoDiMuro

Posted
  On 8/21/2018 at 8:08 AM, PoojaKrishna said:

...in the new version, the child process is closed after executing each command.

Expand  

Hmmm i've used some console scripts and the child window never closed after a command.

As for the program not working, maybe it's related to the sticky keys, try to make the key up send 2 or 3 times the key up and see if it helps.

  Reveal hidden contents

IUIAutomation - Topic with framework and examples

Au3Record.exe

Posted

Hi PoojaKrishna ,

You know already that in order to disable the effect the pressing of ctrl is needed  when coming  from another user 

so it only makes sense to have the same happening  inside the CTRLUP.au3  script where you must CTRLDOWN again before sending CTRLUP  when coming from another thread

a single thread  cant just CTRLUP if it doesn't recall a CTRLDOWN   

 the script is considered a user by its own , so, if you cant fake a  CTRLUP with your keyboard it wont make much sense to try it with a script  ..

Deye

Posted
  On 8/21/2018 at 10:09 AM, careca said:

Hmmm i've used some console scripts and the child window never closed after a command.

As for the program not working, maybe it's related to the sticky keys, try to make the key up send 2 or 3 times the key up and see if it helps.

Expand  

Thank you for your reply but it does not help.

  On 8/21/2018 at 11:25 AM, Deye said:

Hi PoojaKrishna ,

You know already that in order to disable the effect the pressing of ctrl is needed  when coming  from another user 

so it only makes sense to have the same happening  inside the CTRLUP.au3  script where you must CTRLDOWN again before sending CTRLUP  when coming from another thread

a single thread  cant just CTRLUP if it doesn't recall a CTRLDOWN   

 the script is considered a user by its own , so, if you cant fake a  CTRLUP with your keyboard it wont make much sense to try it with a script  ..

Deye

Expand  

@Deye, Yes, it makes sense. Thank you for explaining.

Posted

@Deye is true ... look :

 

Test.exe -> Calls CTRLDOWN.exe and CTRLUP.exe

#RequireAdmin
run("CTRLDOWN.exe")
sleep(500)
run("CTRLUP.exe")

CTRLDOWN.exe -> Sends a {CtrlDOWN} to press CTRL key

#RequireAdmin
Send('{CTRLDOWN}')

CTRLUP.exe -> Sends a {CtrlUP} to release CTRL key

#RequireAdmin
Send('{CTRLDOWN}')
Send('{CTRLUP}')

That should work ;)

My video tutorials : ( In construction )  || My Discord : https://discord.gg/S9AnwHw

How to Ask Help ||  UIAutomation From Junkew || WebDriver From Danp2 || And Water's UDFs in the Quote

  Reveal hidden contents

 

Posted
  On 8/21/2018 at 2:56 PM, caramen said:

@Deye is true ... look :

 

Test.exe -> Calls CTRLDOWN.exe and CTRLUP.exe

#RequireAdmin
run("CTRLDOWN.exe")
sleep(500)
run("CTRLUP.exe")

CTRLDOWN.exe -> Sends a {CtrlDOWN} to press CTRL key

#RequireAdmin
Send('{CTRLDOWN}')

CTRLUP.exe -> Sends a {CtrlUP} to release CTRL key

#RequireAdmin
Send('{CTRLDOWN}')
Send('{CTRLUP}')

That should work ;)

Expand  

Wow!!! It worked as expected. Thank you so much for your help.

Yes, even @Deye explained the reason, I couldn't work out the solution.

Posted

To explain with an other way; When a script is starting. If you dont send a CTRLDOWN Autoit will consider there is no reason to CTRLUP. Easy :) .

My video tutorials : ( In construction )  || My Discord : https://discord.gg/S9AnwHw

How to Ask Help ||  UIAutomation From Junkew || WebDriver From Danp2 || And Water's UDFs in the Quote

  Reveal hidden contents

 

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...