• 1
  • 243
  • 244
  • 245(current)
  • 246
  • 247
  • 453
[CLOSED] Advanced Launcher - Applications Launcher Addon for XBMC
I'll try to clarify, sorry for the confusion.

Since it is more or less impossible to have a perfectly seemless launch using the suspend/resume commands in full screen mode (because the title bar of XBMC will show when AutoIt tells it to resume) and because I am not good with AutoIt or programming and I want a solution that will work for most programs without a lot of tweaking, I used a combination of ideas you have mentioned in the past such as using a black desktop wallpaper to "simulate" a seamless launch. This idea was mentioned to be used with XBMC in a fullscreen window, but since window mode drops my framerate in XBMC to below 30, it's not an option. The method works also in full screen, but it's only seemless if I terminate XBMC instead of suspending the process and remove the mousepointer / desktop icons / taskbar with a black wallpaper.

I'm trying to write a custom launcher for XBMC so that I launch XBMC from an AutoIt script which will run TaskBarHider to hide the taskbar and nomousy to hide the mouse pointer upon launch so that when I launch programs with advanced launcher they appear to launch seamlessly. This part of the script works perfectly. The problem I'm having is that XBMC is like Nestopia as you have mentioned, so I can't call for AutoIt to terminate XBMC and continue the rest of the script. However, I think the ProcessExist command you have mentioned should work perfectly. I'll try it out and let you know how it goes.

As for using emerge desktop (or any other shelling program) it's not a bad idea, but I like the Windows 7 interface and I'm used to it. TaskBarHider does exactly what I want and should restore the taskbar when XBMC is closed. I will look into shelling as a last resort if for some reason TaskBarHider causes problems. Thanks to the both of you for your suggestions!
After messing around with the ProcessWaitClose command, I have found that it's possible to do, but since my custom launchers for Nestopia, Snes9x, etc, call for XBMC to close each time something is launched, I can't use this command or else my XBMC custom launcher will restore the taskbar and mouse cursor every time XBMC is closed. The only option is to accept the flashing title bar using suspend/resume command or manually restore the taskbar and mouse cursor each time XBMC is closed via the command prompt.

I think it's impossible to get it perfect. With some programs, it is completely seemless, with others, it is slightly flawed. For example, Snes9x is completely seemless, but Nestopia shows the Menu Bar upon exit. This is not a problem with Advanced Launcher but with the emulators themselves. Since they use their own handler for input, it's not possible to terminate them with AutoIt. Since they cannot be terminated from an external source, the menu is always displayed via the normal exit method. This even occurs with frontends such as HyperSpin. I have made it as seemless as possible by using the setting within Nestopia to change the Menu Bar color to black, but a small line still shows. Sad

It's not really a big issue, but I do wish it could be completely seemless. Most applications are, but NES in particular has a lack of good options. For example, FCEUX always displays in a small window before launching the application, but it closes flawlessly. Nestopia launches flawlessly but has the issue with the menu bar upon closing.

I don't know how you are able to work with code so much. It can be so frustrating when things won't work exactly the way you want them to. Maybe it's just my lack of experience, but I think I have a new found respect for all programmers...

thanks again for your time.
(2012-07-15, 09:46)chris295 Wrote: After messing around with the ProcessWaitClose command, I have found that it's possible to do, but since my custom launchers for Nestopia, Snes9x, etc, call for XBMC to close each time something is launched, I can't use this command or else my XBMC custom launcher will restore the taskbar and mouse cursor every time XBMC is closed. The only option is to accept the flashing title bar using suspend/resume command or manually restore the taskbar and mouse cursor each time XBMC is closed via the command prompt.

It could be possible by writing a script that will for example check XBMC.exe and your launcher processes :
  • Activate TaskBarHider and nomousy
  • Start XBMC
  • If XBMC.exe process is closed and if a launcher process is running -> do nothing (stay into While loop)
  • If XBMC.exe process is closed and if no launcher process running -> do nothing (exit While loop)
  • Deactivate TaskBarHider and nomousy
  • Restart XBMC

(2012-07-15, 09:46)chris295 Wrote: I don't know how you are able to work with code so much. It can be so frustrating when things won't work exactly the way you want them to. Maybe it's just my lack of experience, but I think I have a new found respect for all programmers...

I know what you mean... The main problem is that all the application do not start/run/exit the same way. So it is really difficult to write a script that can handle all possibilities. Most of the time the only perfect solution is the use 1 specific script for 1 specific application. But... even here, it's could be never perfect.
sorry because I'm a noob in coding...but did you try just to launch the "hyperspalsh.exe" from hyperspin then closed it?
I know it seems too simple but we never know...
Anyone have any experience using WinKawaks with Advanced Launcher?

I'm using WinKawaks 1.6 with AL on a 1080p TV and can successfully launch roms.

My problem though is when I press "ESC" to terminate the rom (using the AutoIt script from the AL wiki), I'm brought back into XBMC and my resolution never resets. Everything in XBMC is super large and blurry, most of it cut off as it bleeds past the TV screen. I have to force quit XBMC to reset the resolution.

The strange thing is only XBMC's resolution has changed; Windows' resolution remains correct?
(2012-07-16, 14:16)bakito Wrote: sorry because I'm a noob in coding...but did you try just to launch the "hyperspalsh.exe" from hyperspin then closed it?
I know it seems too simple but we never know...
What is the goal of hypersplash.exe? If it is only do dislay a fullscreen splash screen/image, autoit script described here [url=http://forum.xbmc.org/showthread.php?tid=85724&pid=1142930#pid1142930][/url] already do the job. Relevant code lines are :

Code:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
...
GUICreate('MyGUI', @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_POPUP, $WS_EX_TOPMOST))
GUICtrlCreatePic('C:\Users\gwenael\Desktop\wallpaper.jpg', 0, 0, @DesktopWidth, @DesktopHeight)
GUISetState()
...

where you can define any image you want.
(2012-07-16, 19:57)HushTheCrowd Wrote: Anyone have any experience using WinKawaks with Advanced Launcher?

I'm using WinKawaks 1.6 with AL on a 1080p TV and can successfully launch roms.

My problem though is when I press "ESC" to terminate the rom (using the AutoIt script from the AL wiki), I'm brought back into XBMC and my resolution never resets. Everything in XBMC is super large and blurry, most of it cut off as it bleeds past the TV screen. I have to force quit XBMC to reset the resolution.

The strange thing is only XBMC's resolution has changed; Windows' resolution remains correct?
That's often happen when XBMC, Windows and started application do not have the same resolution. If it is possible, try to use the same resolution for the three.

I try to make a autoIT script for steam (i know he already exist a .bat for steam, but i want a autoIT script) :

Quote:#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
HotKeySet("{ESC}", "Terminate")
HotKeySet("!{F4}", "Terminate")

If $CmdLine[0] == 1 Then
Run("nomousy.exe /hide", "", @SW_HIDE)
;~ Run("pssuspend XBMC.exe", "", @SW_HIDE)
Run( '"D:\Program Files\Steam\Steam.exe " "' & $CmdLine[1]& '"', "D:\Program Files\Steam")
While 1
Sleep(100)
WEnd
EndIf

Func Terminate()
GUISetState()
Run("nomousy.exe", "", @SW_HIDE)
Run ( "nircmd win max process XBMC.exe" )
;~ Run("pssuspend -r XBMC.exe", "", @SW_HIDE)
WinWaitActive ("XBMC")
Exit 0
EndFunc

This script works on cmd.exe with this parameters "SteamXBMC.exe steam://rungameid/6120"

but in XBMC he didn't work, I don't get it....
(2012-07-16, 14:16)bakito Wrote: sorry because I'm a noob in coding...but did you try just to launch the "hyperspalsh.exe" from hyperspin then closed it?
I know it seems too simple but we never know...

I didn't try that because HyperSpin's launcher is coded with AutoHotKey, not AutoIt. As Angelscry has said, AutoIt has it's own function for displaying splash images, so there isn't much reason to. The problem is not with the splash command, but with a few programs and their methods of handling inputs and launching / closing. If only there was a way to override the input handlers from programs like Nestopia and XBMC, a truley seemless solution could be accomplished using the methods I posted above. I think this is impossible though.

(2012-07-16, 23:38)Angelscry Wrote: That's often happen when XBMC, Windows and started application do not have the same resolution. If it is possible, try to use the same resolution for the three.

I was just about to post about this same issue. Yes, using the same resolution as XBMC will fix this, but it's not always practical. Some programs look really bad at higher resolutions. I was wondering if it's possible to include in the AutoIt launcher for the program which is having this problem a code to change the resolution back to 1920x1080 before launching or resuming XBMC again.

(2012-07-16, 01:57)Angelscry Wrote: It could be possible by writing a script that will for example check XBMC.exe and your launcher processes :
  • Activate TaskBarHider and nomousy
  • Start XBMC
  • If XBMC.exe process is closed and if a launcher process is running -> do nothing (stay into While loop)
  • If XBMC.exe process is closed and if no launcher process running -> do nothing (exit While loop)
  • Deactivate TaskBarHider and nomousy
  • Restart XBMC

That's actually a really good idea. Can you give an example as to how I should write the code to check against two processes as well as which process to check for. Since every program I launch from Advanced Launcher has it's own AutoIt Launcher, it's not just one process. Is there a way to check against all AutoIt.exe's?
(2012-07-17, 00:59)SiOuz Wrote: I try to make a autoIT script for steam (i know he already exist a .bat for steam, but i want a autoIT script) :

Quote:#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
HotKeySet("{ESC}", "Terminate")
HotKeySet("!{F4}", "Terminate")

If $CmdLine[0] == 1 Then
Run("nomousy.exe /hide", "", @SW_HIDE)
;~ Run("pssuspend XBMC.exe", "", @SW_HIDE)
Run( '"D:\Program Files\Steam\Steam.exe " "' & $CmdLine[1]& '"', "D:\Program Files\Steam")
While 1
Sleep(100)
WEnd
EndIf

Func Terminate()
GUISetState()
Run("nomousy.exe", "", @SW_HIDE)
Run ( "nircmd win max process XBMC.exe" )
;~ Run("pssuspend -r XBMC.exe", "", @SW_HIDE)
WinWaitActive ("XBMC")
Exit 0
EndFunc

This script works on cmd.exe with this parameters "SteamXBMC.exe steam://rungameid/6120"

but in XBMC he didn't work, I don't get it....
The problem is : how do you pass the steam://rungameid/6120 argument from Advanced Launcher?

(2012-07-17, 03:26)chris295 Wrote: I was just about to post about this same issue. Yes, using the same resolution as XBMC will fix this, but it's not always practical. Some programs look really bad at higher resolutions. I was wondering if it's possible to include in the AutoIt launcher for the program which is having this problem a code to change the resolution back to 1920x1080 before launching or resuming XBMC again.

You can use the small freeware Display Changer to force the resolution change. Simple command line :

Code:
dccmd.exe -width=1920 -height=1080

must do the trick.

(2012-07-17, 03:26)chris295 Wrote: That's actually a really good idea. Can you give an example as to how I should write the code to check against two processes as well as which process to check for. Since every program I launch from Advanced Launcher has it's own AutoIt Launcher, it's not just one process. Is there a way to check against all AutoIt.exe's?

To simplify the code you just have to use different Advanced launcher autoit scripts with the same file name (for example launcher.exe). Then your script content will be :
  • Activate TaskBarHider and nomousy
  • Start XBMC
  • Go into an infinite while loop until XBMC.exe and launcher.exe processes are closed (it is only the case when XBMC is closed when no not running any emulator/autoit script). Code could be :

    Code:
    ...
    While (ProcessExists("XBMC.exe") AND ProcessExists("launcher.exe"))
        Sleep(100)
    WEnd
    ...

  • Deactivate TaskBarHider and nomousy
  • Restart XBMC
I have renamed all of my launchers to launcher.exe so that the script is able to target one specific process, but it doesn't work with the code. I haven't been able to get the ProcessExists command to work at all in the past, only ProcessWaitClose worked for me in the past. I'm sure it is something in the way I have formatted the launcher, so maybe you could fix the code?

Code:
Run("nomousy.exe /hide", "", @SW_HIDE)
    Run("TaskBarHider.exe -hide", "", @SW_HIDE)
    Run ( '"C:\Program Files (x86)\XBMC\XBMC.exe"' )

This is the code I have that works, when I click the launcher, it runs nomousy and hides the mouse pointer. It runs TaskBarHider and hides the taskbar and then launches XBMC. After that I'm not sure how to implement your script. I tried pasting your code after mine like this:

Code:
Run("nomousy.exe /hide", "", @SW_HIDE)
    Run("TaskBarHider.exe -hide", "", @SW_HIDE)
    Run ( '"C:\Program Files (x86)\XBMC\XBMC.exe"' )
While (ProcessExists("XBMC.exe") AND ProcessExists("launcher.exe"))
    Sleep(100)
WEnd
    Run("nomousy.exe", "", @SW_HIDE)
    Run("TaskBarHider.exe -show", "", @SW_HIDE)
Exit 0

It doesn't look as though I've formatted it properly, based on the scripts you have helped me with in the past. Instead of waiting for me to exit XBMC when no launcher is running, it seems like it just jumps over the loop and proceeds with the script, running nomousy again so quickly that when I try to launch snes9x the mouse pointer is visible (because the script has run nomousy.exe again).
Add a ProcessWait() function to let time to XBMC to be started before cheking if it is running or not :

Code:
Run("nomousy.exe /hide", "", @SW_HIDE)
Run("TaskBarHider.exe -hide", "", @SW_HIDE)
Run ( '"C:\Program Files (x86)\XBMC\XBMC.exe"' )
ProcessWait ("XBMC.exe")
While (ProcessExists("XBMC.exe") AND ProcessExists("launcher.exe"))
    Sleep(100)
WEnd
Run("nomousy.exe", "", @SW_HIDE)
Run("TaskBarHider.exe -show", "", @SW_HIDE)
Exit 0
hmm, that didn't seem to make a difference. The mouse pointer appears when launching and the taskbar doesn't come back after closing XBMC through the exit menu. However, when using only

Code:
Run("nomousy.exe /hide", "", @SW_HIDE)
Run("TaskBarHider.exe -hide", "", @SW_HIDE)
Run ( '"C:\Program Files (x86)\XBMC\XBMC.exe"' )

The mouse pointer stays hidden, so I'm guessing the script is still jumping over the loop or something in the script is interfering with nomousy, for some reason.
Oupsss.. line must be :

Code:
...
While (ProcessExists("XBMC.exe") OR ProcessExists("launcher.exe"))
...
I have modified the line, my script now looks like this:

Code:
Run("nomousy.exe /hide", "", @SW_HIDE)
Run("TaskBarHider.exe -hide", "", @SW_HIDE)
Run ( '"C:\Program Files (x86)\XBMC\XBMC.exe"' )
ProcessWait ("XBMC.exe")
While (ProcessExists("XBMC.exe") OR ProcessExists("launcher.exe"))
    Sleep(100)
WEnd
Run("nomousy.exe", "", @SW_HIDE)
Run("TaskBarHider.exe -show", "", @SW_HIDE)
Exit 0

Now the mouse pointer stays hidden when launching, but you can see some application zoom out from the top as if it is being minimized when I run Snes9x and closing XBMC does not restore the mouse pointer or the taskbar.
  • 1
  • 243
  • 244
  • 245(current)
  • 246
  • 247
  • 453

Logout Mark Read Team Forum Stats Members Help
[CLOSED] Advanced Launcher - Applications Launcher Addon for XBMC24