The_Noob Posted October 2, 2006 Share Posted October 2, 2006 Is there a way to do this? im pretty noob but i looked in the help file and didnt see anything that i thought would help me, but maybe i didnt know what to look for? Link to comment Share on other sites More sharing options...
AzKay Posted October 2, 2006 Share Posted October 2, 2006 Is there a way to do this? im pretty noob but i looked in the help file and didnt see anything that i thought would help me, but maybe i didnt know what to look for?Send()MouseClick()_ClickInControl()Any of those? There might be some specially made for shockwave, But I wouldnt bet on it. # MY LOVE FOR YOU... IS LIKE A TRUCK- # Link to comment Share on other sites More sharing options...
The_Noob Posted October 2, 2006 Author Share Posted October 2, 2006 i can do that, but detecting color in the shockwave has proven.... unrelyable. and because the shockwave game talks with a server, the time it takes for stuff to happen is not always the same. Link to comment Share on other sites More sharing options...
AzKay Posted October 2, 2006 Share Posted October 2, 2006 i can do that, but detecting color in the shockwave has proven.... unrelyable. and because the shockwave game talks with a server, the time it takes for stuff to happen is not always the same.When you say, Detecting colour, Your talking about PixelSearch()? # MY LOVE FOR YOU... IS LIKE A TRUCK- # Link to comment Share on other sites More sharing options...
The_Noob Posted October 2, 2006 Author Share Posted October 2, 2006 (edited) pixelsearch would take too long. usually its one or a select area that i wait to turn the specific color. The problem is that the times that the pixels are exactly what i record are very few. im trying to get away from detecting pixels, that way i can run 99% of the program in the background. maybe a way to speed up the shockwave (its a game) like make it advance at 2x speed or somthing? Basically what happens is the shockwave loads, then it talks with the server for a bit while "loading", then afterwards it enacts what happened dependant on the "talking" to the server, and once the movie is done, it "talks" to the server again to say its complete. I want to click a button that can let me skip it, which shaves off like 4 mins, but if i try to get autoit to click too soon it makes an error, and if i make it wait too long its too late. And because the times are based on the speed of my connection, traffic, etc i cant just use "sleep", and i want to try to stay away from checking pixels because i want it to run in the background. Edited October 2, 2006 by The_Noob Link to comment Share on other sites More sharing options...
AzKay Posted October 2, 2006 Share Posted October 2, 2006 pixelsearch would take too long. usually its one or a select area that i wait to turn the specific color. The problem is that the times that the pixels are exactly what i record are very few. im trying to get away from detecting pixels, that way i can run 99% of the program in the background.maybe a way to speed up the shockwave (its a game) like make it advance at 2x speed or somthing?I dont understand, How are you going to detect a colour without using pixel functions? # MY LOVE FOR YOU... IS LIKE A TRUCK- # Link to comment Share on other sites More sharing options...
The_Noob Posted October 2, 2006 Author Share Posted October 2, 2006 I dont understand, How are you going to detect a colour without using pixel functions?I dont want to. I want to detect it by other means... if thats possable. I want to try to get away from pixel detecting. Link to comment Share on other sites More sharing options...
AzKay Posted October 2, 2006 Share Posted October 2, 2006 I dont want to. I want to detect it by other means... if thats possable. I want to try to get away from pixel detecting. Well, Theres no way to detect pixel activitie in a hidden/minimized window. # MY LOVE FOR YOU... IS LIKE A TRUCK- # Link to comment Share on other sites More sharing options...
The_Noob Posted October 2, 2006 Author Share Posted October 2, 2006 Well, Theres no way to detect pixel activitie in a hidden/minimized window.this i know, which is why im trying to detect by other means...Like instead of clicking links determined on the IE windows, i can detect images / text in the windows and base movement off of that. But once it hits the shockwave im screwed Link to comment Share on other sites More sharing options...
AzKay Posted October 2, 2006 Share Posted October 2, 2006 Which is why, The only way you'll be able to detect any pixel movement with a shockwave, would be through pixel functions. But, Prove me wrong # MY LOVE FOR YOU... IS LIKE A TRUCK- # Link to comment Share on other sites More sharing options...
The_Noob Posted October 2, 2006 Author Share Posted October 2, 2006 well is there any other way to detect interaction of shockwave objects imbedded in an IE window? Link to comment Share on other sites More sharing options...
lod3n Posted October 2, 2006 Share Posted October 2, 2006 (edited) I've had some luck interacting with Shockwave/Flash. Read these links:http://www.autoitscript.com/forum/index.php?showtopic=32605http://www.autoitscript.com/forum/index.php?showtopic=32732The problem is that to use GetVariable, you'd need to know what the variable was named in the first place. For that, you might be able to find with a SWF Decompiler.It may be that you just want to go to a particular frame, possibly frame 2 in this case. For that you'd use $oRP.GotoFrame(1). To establish $oRP, you can do this:#include <IE.au3> $oIE = _IECreate ("http://www.your.target.website.com") $oRP = _IEGetObjByName ($oIE, "theIdOfTheFlashObject") $oRP.GotoFrame(1)This is just a guess. Without supplying more information about what you're trying to do, I can't suggest much else. Edited October 2, 2006 by lod3n [font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font] Link to comment Share on other sites More sharing options...
The_Noob Posted October 3, 2006 Author Share Posted October 3, 2006 im wondering if this would work because im trying to control shockwave objects... will it still work? How would i go about finding the ID of the object? If i look in the source code i see a few things... <embed src="raceengine.dcr" bgColor=#000000 width=577 height=500 sw1="http://www.lego.com/eng/racers/challenge/raceaux.asp?race=2E91DD50%2D46ED%2D4B38%2D9587%2DF7C75ACA3609" swRemote="swSaveEnabled='true' swVolume='true' swRestart='true' swPausePlay='true' swFastForward='true' swContextMenu='false' " swStretchStyle=none type="application/x-director" pluginspage="http://www.macromedia.com/shockwave/download/"></embed> the url for sw1 changes, but raceengine.dcr does not, would that be what i need? and what other commands would i use to control the object? Link to comment Share on other sites More sharing options...
lod3n Posted October 3, 2006 Share Posted October 3, 2006 In that case, as there is no name or title by which to reference it, you need to loop through all of the EMBEDs until you find the one with the correct SRC. Like so: #include <IE.au3> $oIE = _IECreate ("http://www.your.target.website.com") $oEmbeds = _IETagNameGetCollection ($oIE, "embed") For $oRP In $oEmbeds if stringinstr($oRP.src,"raceengine.dcr") then exitloop ; that leaves $oRP associated with the correct embed Next if isobj($oRP) then $oRP.GotoFrame(1) else msgbox(0,"","Couldn't find the correct EMBED") endif It's okay if SW1 changes, so long as SRC does not. [font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font] Link to comment Share on other sites More sharing options...
The_Noob Posted October 3, 2006 Author Share Posted October 3, 2006 doesnt work... keeps saying it cant find the right embed. what should i try tweaking / looking for? Link to comment Share on other sites More sharing options...
Bert Posted October 3, 2006 Share Posted October 3, 2006 I'm thinking outside the box, but while the stuff loads, does the screen always looks the same? I'm thinking you could do several a pixel search in a box, and get what is there. (maybe like 10 pixels in a 50 by 50 area) Then setup a loop to see if they change. When they change, then you know it is done. Its messy, but it may be a simpler solution. The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
The_Noob Posted October 4, 2006 Author Share Posted October 4, 2006 well if you had read everything, i dont want to use pixels because i want the thing to run in the background, and i cant do that with pixel searching. Thanks for trying tho Link to comment Share on other sites More sharing options...
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