Kodi Community Forum

Full Version: [CLOSED] Advanced Launcher - Applications Launcher Addon for XBMC
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453
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.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453