boogieoompa Posted April 12, 2007 Posted April 12, 2007 I want to make a function that when a key is pressed Ctrl+left mouse clicked in held down until the button is clicked again however I do not know a way of making a while loop wait for pressed key since I cant find one that returns a value to use. Any help would be appreciated, Basically... While 1 HotKeySet($FunHold, "z") WinWaitNotActive($win) HotKeySet(hold);holds down ctrl and left mouse WEnd While 1 Sleep(100) WEnd Func Hold() MouseDown ( "Left" ) Send("{CTRLDOWN}") Endfunc
SleepyXtreme Posted April 12, 2007 Posted April 12, 2007 I want to make a function that when a key is pressed Ctrl+left mouse clicked in held down until the button is clicked again however I do not know a way of making a while loop wait for pressed key since I cant find one that returns a value to use. Any help would be appreciated, Basically... While 1 HotKeySet($FunHold, "z") WinWaitNotActive($win) HotKeySet(hold);holds down ctrl and left mouse WEnd While 1 Sleep(100) WEnd Func Hold() MouseDown ( "Left" ) Send("{CTRLDOWN}") Endfunc Try doing mod division with a counter. ie While mod($counter,2) <>0. So when the key is pressed, add 1 to counter (counter = counter +1) so that way the number will now be odd and the while loop will execute. then if you press it again, it should stop because the number is even. I'm not an expert but i think it may work
boogieoompa Posted April 12, 2007 Author Posted April 12, 2007 I never used mod() but I will give it a shot. Thanks
zachzhuff Posted April 12, 2007 Posted April 12, 2007 This is the bets I can think of dont know why the send key wont work $key = 0 While 1 HotKeySet ( "f", "Holdkey" ) WEnd Func Holdkey() If $key = 0 Then ;Send ( "{CTRLDOWN}" ) MouseDown ( "left" ) $key = 1 Else ;Send ( "{CTRLUP}" ) MouseUp ( "left" ) $key = 0 EndIf EndFunc kinda like what sleeply said execpt it changes a varaibe from 0 to 1
someone Posted April 13, 2007 Posted April 13, 2007 OK I've officially given up I'm just not smart enough. Take a look below... Global $toggle HotKeySet("z", "function") HotKeySet("{ESC}", "Terminate") ;;;; Body of program would go here ;;;; While 1 Sleep(100) WEnd ;;;;;;;; Func function() $toggle = NOT $toggle MouseDown ("Left") ;Send("{CTRLDOWN}") While $toggle sleep(100) WEnd MouseUp("Left") ;Send("{CTRLDOWN}") EndFunc Func Terminate() Exit EndFunc That will work perfectly with only the mouse down, but using ctrldown is a problem, and its what I couldn't overcome. When you hold down CTRL and wait for z to be pressed its impossible since you are pressing CTRL+Z... get my drift? It could be something stupid I'm just missing but I couldn't figure out a way to do it. hopefully in the morning someone with fresh eyes will take a look at this. I'm sure there is a way. Also with the above if while autoit is sending mousedown you click the button it overides autoit's control over the button; you have to start the function again. Again I'm sure you can code around that but its also not a huge issue. Hope I've helped some While ProcessExists('Andrews bad day.exe') BlockInput(1) SoundPlay('Music.wav') SoundSetWaveVolume('Louder') WEnd
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