Sign in to follow this  
Followers 0
The_Noob

Send commands to a shockwave object?

17 posts in this topic

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?

Share this post


Link to post
Share on other sites



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- #

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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- #

Share this post


Link to post
Share on other sites

#5 ·  Posted (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 by The_Noob

Share this post


Link to post
Share on other sites

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- #

Share this post


Link to post
Share on other sites

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. :lmao:

Share this post


Link to post
Share on other sites

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. :lmao:

Well, Theres no way to detect pixel activitie in a hidden/minimized window.

# MY LOVE FOR YOU... IS LIKE A TRUCK- #

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 :lmao:


# MY LOVE FOR YOU... IS LIKE A TRUCK- #

Share this post


Link to post
Share on other sites

well is there any other way to detect interaction of shockwave objects imbedded in an IE window?

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

I've had some luck interacting with Shockwave/Flash. Read these links:

http://www.autoitscript.com/forum/index.php?showtopic=32605

http://www.autoitscript.com/forum/index.php?showtopic=32732

The 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 by lod3n

[font="Fixedsys"][list][*]All of my AutoIt Example Scripts[*]http://saneasylum.com[/list][/font]

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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]

Share this post


Link to post
Share on other sites

doesnt work... keeps saying it cant find the right embed. what should i try tweaking / looking for?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 :lmao:

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