Close a running program with AIR - actionscript-3

I can't any specific documentation of if you can or cannot, but I'm guessing there's a reason why. I'm looking to close down an application via AIR. (e.g. Close Photoshop with the press of a button inside of an air application).
As of right now AIR cannot see current system processes? I think!? So i'm guessing I can't but if anyone has found a recourse or has any information that would be very helpful. One way or another.
Thanks!

You cant do it directly from AIR but it could be done by using an ANE. However, you'd probably have to write the ANE yourself - i doubt anyone has created exactly what you need.

Would depend on the OS, but under OSX/Linux you could use something like ps to search the running processes and kill the one you required by executing a script through the NativeProcess call? Not really sure on the Windows equivalent though I'm sure there's some Powershell stuff you could do. Something like this combined with a kill script?
ps aux | grep Adobe\ Photoshop
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/NativeProcess.html

Related

How do we call c++ application from web on client side on linux

For example, a client has a c++ application, and trying to access web application on the browser. But the web application needs to run this application. I don't understand how we can call that application from web. I tried that solution https://askubuntu.com/questions/330937/is-it-possible-to-open-an-ubuntu-app-from-html . but it did not work. It only opens well-recognized apps. Can we use this technique to open c++ application and give them some argument, like ./abc -a password -b username.
If you find my question confusing, please let me know. I will try to explain more.
Short answer: no.
There are workarounds that would include registering link handlers, like the solution you tried, but you can't call a command line program from within a web browser directly (there are a million ways it could be misused).

ADT works with ipa-test-interpreter but not ipa-test

I could use some help getting my #AS3 / #AIR application running on #iOS !
Right now I have a .SWF (v11) that I'm converting to an .IPA using Adobe AIR (v3.7) on Windows (7).
If I do the conversion with the -target of ipa-test-interpreter it works great.
If I do the conversion with ipa-test, ipa-debug, ipa-ad-hoc, or ipa-appstore, the application seems to compile fine but upon execution of the app on my iPad it just shows a black screen.
Connecting my iPad to a desktop and monitoring console output, I see not crash or error messages generated; the app appears to behave fine internally, it's just lost all external output.
This means I can test and develop but I won't ever actually be able to deploy to the app-store. Anyone else run into this?
Googling around I've run into other people encountering this problem, but no solutions yet. One thing I tried was removing all native extensions, and I also tried removing the -C compiler directive. No luck on either.
To be clear, the app runs totally fine on Mac, PC, Android, Browser, and on iOS in interpreter mode; it's just native-compilation on iOS that's broken. I've heard rumours that ipa-test and ipa-interpreter have different memory allocation routines, but I don't know enough about the low-end here to figure this out.
The remote debugger (in FlashDevelop) doesn't seem to connect either. I think it's failing before the runtime fires fully, somehow? I'm also watching the console output using the iphone-configuration-utility and there isn't anything abnormal showing up.
Temporary file link with sample project and instructions: https://dl.dropboxusercontent.com/u/1348446/test.zip
Figured it out. Rundown:
The ADT command line has a -C flag to change the current working directory on the command line, which allows you to keep your project better organized and keep the command line a bit more sane. -C can be called as many times as you want when importing assets, and I used it several times. IDEs like FlashDevelop also use -C in the AIR template files so this is sorta standard behaviour. As a quick example of asset inclusion:
ADT.exe [blah blah] assets/icons/icon1.png assets/icons/icon2.png
is the same as
ADT.exe [blah blah] -C assets/icons icon1.png icon2.png
(and, with wildcard use) is the same as
ADT.exe [blah blah] -C assets/icons .
As I have different compiling instruction sets for iOS, android, steam, etc., I had adt switch directories with a variable to the current config and execute from there.
This all works fine and as-documented in ipa-test-interpreter mode. When in native-code mode (ipa-test), however, including the main executable .SWF after a -C command [somehow for some reason] messes up the internal pathing; the file ends up being included but ends up being all "file not found" internally when executed, hence the blank screen and no code executing.
So the fix is simply to include the .swf from the current directory, before any calls to -C. As a quick example of my workaround that just tested a-okay:
copy /bin/flash/game.swf ./
adt [stuff] game.swf -c assets/icons .
del game.swf
I've gotten in touch with Adobe about this and hopefully they'll fix -C so it's functionality is the same for both compile targets in the future.
I have seen this happen in the past due to utilization of components "restricted" from use within iOS builds of Air apps. Specifically back in the day before being able to sandbox the loading of app resources with the loader class.
Start shutting down and turning off whole modules of your app and see when the app will build and run on iOS. I'm willing to bet there is some code somewhere that is ipa-test-interpreter safe but has odd behavior under ipa-test
I see you're still stuck with this issue. If you can find a Mac to test on, I bet xcode instruments will show you're exceeding you're memory limits. It is the iPad one right? Are you using flash's embed meta tags?
Is Black your swf background color? If it is, maybe it's a cross domain loading issue because you're loading your swf and app.xml from 2 different places. I don't know if this is causing it, but I usually keep them in the same place.
Have you ever seen your provision & p.12 work on a device? If not, it might be a problem with them.
What IDE are you using to make this, Flash IDE or Flash Builder, Flash Develop/ANT? And if you post src code it would help. Sometimes putting your metadata in the wrong place can screw things up on iOS but look fine in the browser...so it could be many things.
Good luck.

Ventrilo hook read in Flash ActionScript 3

I would like to play a flash animation when someone talks in the VoIP program Ventrilo.
I have a simple animation setup within Adobe Flash and I would like to somehow trigger it when a specific person talks "keys-up" in Ventrilo.
I know the G15 keyboard can access Ventrilo remotely and display who is talking in real time so I think it should be possible to use this event to trigger a movie clip play command if I knew how to access it. I have looked for example code but can't find any.
I know this is probably a highly complex task but I'm sure there is a genius on Stackoverflow how knows how to do it or could at least set me on the right path.
Many thanks,
This is not going to be an easy task and is going to require writing a C/C++ ANE.
You can use Windows API hooking to intercept calls from Ventrilo.
http://www.gamedev.net/topic/387670-api-hooking/
http://www.codeproject.com/Articles/2082/API-hooking-revealed
You would need to write an ANE to use this inside your AIR app.
http://www.flexjunk.com/2011/11/30/developing-an-air-native-extension-for-osx-and-windows-in-c/

Flash Builder bug?

Irritatingly, Flash Builder refuses to implement any changes I make to the program when I run it. I can't find any documentation of this anywhere online after a brief googling, just wondering if anyone has come across this problem before and/or found a solution? I don't want to have to export a release build every time I want to check if any changes have been implemented successfully (I'm just assuming that'd work)
It happened to me once before but I overcame this problem simply by starting a new project as there wasn't much of any significance, and couldn't easily fix it.
It's pretty much as simple as it sounds tbh, having returned to my computer a couple of hours after leaving it I find any changes to any part of the code have no impact on what is displayed when I go to run...
Any insight would be much appreciated
Thanks
Josh
It could be the cache of your browser. Clear your cache and see if that works..
It could also be because you have classes that are compiled in external swf's. If you compile in Flash Builder, you're not persee recompiling those classes. Instead, compile the external swf which has links to those classes.
You'd think if this were a bug in Flash Builder, people would be complaining about it a bit more often, check that your browser is updating properly, most likely you've got the SWF stuck in your browser cache.
Check the "clear application data on each launch" in Run/Debug Configuration window.
This will clear and uninstall existing app installed in your test device, so every new launch will have clean build.
Tips : Make sure to cmd/ctr + B first, In every run/build.

A way to create command line program with Air 2?

Is there any way to create an Air 2 program that runs just in the command line? (no windows, no gui, etc)
Something similar to Windows Ping program. It would accept arguments and then output std out.
No, AIR is not really meant for creating command-line applications - it's just not the right tool for the job.
You would be better off looking at implementing your application in Java, C#/VB.NET, Python or Groovy (and innumerable other more suitable languages).
If you really have your heart set on Actionscript/Javascript-style syntax then you should look into Haxe.
You might want to check out CommandProxy as a possible solution.