Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Dragon King, Opressor of Windows  (Read 1422 times)

0 Members and 1 Guest are viewing this topic.

IIOIOOIOO

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 295
  • Last login:August 04, 2003, 02:18:12 pm
Dragon King, Opressor of Windows
« on: July 15, 2003, 11:07:56 am »
Howard, when you start DK up, does it cycle through the hWnds setting them to always_on_bottom or some such? It sure seems that way, because if I follow the following steps, I can consistently produce an odd result...

Restart machine.
Log in.
Open up any two application windows (I used IE and notepad.)
Start Dragon King
Enter any game
Exit Dragon King

After completing these steps, it is impossible to bring any of the previously opened windows to the foreground without minimizing all other windows. However, any window opened after that point (ie from launching a new app) will behave properly. I can also reproduce this effect myself using API calls, so I assume you are doing something similar, perhaps to prevent a random window from trying to take over the foreground while DK is running? If so, could you like... set them back? I assume that you take a stab at it, but (at least on my system) it seems to be missing some/all of the windows.

P.S... I'm on WinXP, and I do have the new XP transparency turned on in your .ini file.

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19427
  • Last login:July 03, 2025, 06:36:13 pm
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re:Dragon King, Opressor of Windows
« Reply #1 on: July 15, 2003, 04:21:16 pm »
No what I'm doing is removing the task bar and putting it back upon exit.  What this does is makes the old windows get stuck behind the taskbar.  There really isn't any way to fix this, but in all honesty I don't see why I would need too.  While I know of people using dk as a desktop fe, it's designed primarily for a dedicated mame cab.

I feel your pain though and if I get time I'll look into it.  

SirPoonga

  • Puck'em Up
  • Global Moderator
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 8187
  • Last login:July 04, 2025, 11:34:22 pm
  • The Bears Still Suck!
Re:Dragon King, Opressor of Windows
« Reply #2 on: July 15, 2003, 04:44:42 pm »
why do you hide the taskbar anyway?

IIOIOOIOO

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 295
  • Last login:August 04, 2003, 02:18:12 pm
Re:Dragon King, Opressor of Windows
« Reply #3 on: July 15, 2003, 05:45:16 pm »
I assume he's hiding it because sometimes windows wishing they could take focus will cause their portion of the bar to blink, which overwrites the screen on some full screen games (I've seen it happen in UT2003.)

This probably won't be an issue when I can finally get DK configurated fully enough to move to my cab, but considering that all configuration/skin building is handled externally, and that the VDirs need to be rescanned from within the program to test for success of PATHs and alt emulator configuration, and the documentation for DK being in a minimum of 2 places for each feature... well, the list goes on of reasons a person has to enter/exit DK repeatedly.  And considering that bugs are still being fixed with Alt elements etc, the situation will continue for some time.

So yeah, if you get a chance, that would be swell. If you want, I could track down the code from an old program here at work where I had to do something similar, and there's def a way to cycle through the hWnds and pop them all back to fore.

Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19427
  • Last login:July 03, 2025, 06:36:13 pm
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re:Dragon King, Opressor of Windows
« Reply #4 on: July 17, 2003, 12:29:14 am »
I wanted to give you an update on this.... I've found a new api call which seems to actually hide the taskbar instead of moving it around (which is what causes the issue).  It works much better.

On an unrelated note, do any of you programmer types know of a way to disable the windows keys and yet still have them work?  (As in you press the windows key and the start menu doesn't pop up, but you can still define the key for other uses.)

IIOIOOIOO

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 295
  • Last login:August 04, 2003, 02:18:12 pm
Re:Dragon King, Opressor of Windows
« Reply #5 on: July 17, 2003, 03:04:32 am »
Alas, I've recently moved more into high-level design/group management, but here's a couple of things to try...

You could implement a hook of type WH_KEYBOARD which would allow you to intercept ALL keypresses coming through and either discard them, or allow them to pass (which would eventually feed them back to your app through whatever input mechanism you're using.) IIRC, a system-wide hook takes precedence in reverse order of creation. So, assuming that your application is started last, no hotkeys programs will have a stab at any keys before you.

Alternatively, I'm sure you're familiar with the oft-suggest overwriting the scancode in the reg approach. That works, but I'm pretty much certain that you'll never be able to see they keypress anywhere. Now, if you're looking for the keypress to be recognized in OTHER programs than DK without triggering the special Windows Key functions (meaning a hook and discard within DK won't do the trick) you could try modifying this reg key from within your prog...

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\

There should be a DWORD value called NoWinKeys, if it doesn't exist... create it. Set the value to 1, and it def disables the winkeys special functionality. However, I've never tested to see if that also axes the keypress itself. On a single-user OS, you can create that Key, then the Value in HKEY_LOCAL_MACHINE\etc\etc same as above.

So there you go.

Hey, now I have a couple of questions for you.
1) Is there any way to tell DK to differentiate between artwork directories for say... snaps? It's my understanding that they would have to all be under <base_artwork_dir>\snap. However, if I had snaps for every game for every emu I use, that would be one BIG freaking directory. So will it/can it/does it recurse subdirectories, or am I basically hosed.

2) Is there a way to instruct DK to use a fall-back element type? Like say I want to ALWAYS display a snap, and then in a second location show EITHER a preview movie clip, or if that's unavailable, show one of crashtest's title snaps.

3) I see lot's of commands for controlling songs, but I can't figure out how to set up the music features. Is this currently just a stub, or am I grossly overlooking something?


Howard_Casto

  • Idiot Police
  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 19427
  • Last login:July 03, 2025, 06:36:13 pm
  • Your Post's Soul is MINE!!! .......Again??
    • The Dragon King
Re:Dragon King, Opressor of Windows
« Reply #6 on: July 17, 2003, 05:25:36 pm »
Thanks for the code, most of it I've tried, but a few might be worth cheking out.  I'll see what I can do.  

Answering your questions:  

1) Is there any way to tell DK to differentiate between artwork directories for say... snaps? It's my understanding that they would have to all be under <base_artwork_dir>\snap. However, if I had snaps for every game for every emu I use, that would be one BIG freaking directory. So will it/can it/does it recurse subdirectories, or am I basically hosed.  

Your looking at it wrong.  Your primary artwork dir is for mame.  
So it should be in c:\mame\ with all of your folders named accordingly.  

Your other emu paths should be put in the secondary aw dirs entry below it. And you put aplty named folders there too.  You can have an infinate number of base dirs that way, it's just you can only have one for mame.   The fe doesn't associate the base dirs with the emus in any way, so be sure to have a proper hierarcy setup as they are read in order.  (with the mame base dir tacked on at the end as a last resort)

2) Is there a way to instruct DK to use a fall-back element type? Like say I want to ALWAYS display a snap, and then in a second location show EITHER a preview movie clip, or if that's unavailable, show one of crashtest's title snaps.  

Fall back element type, no, but if you'll look at the skinner you will see that snaps already show a movie if available (if you've checked that option) and with togglesnap turned on they alternate between snap and titlesnap.  Movies will always be associated with the snapshot exclusively as the movie is just a moving snapshot.  :)

3) I see lot's of commands for controlling songs, but I can't figure out how to set up the music features. Is this currently just a stub, or am I grossly overlooking something?  

Do you have a playlist for that skin?  Check out the lazarus documentation, for this stuff.... it's suprisingly similar.  That applies to most of your other questions as well.  :)

But for the record, their aren't really any music features.  It's just to control background music in case you have heard the currently playing tune one time too many.  



IIOIOOIOO

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 295
  • Last login:August 04, 2003, 02:18:12 pm
Re:Dragon King, Opressor of Windows
« Reply #7 on: July 17, 2003, 05:51:55 pm »
Thanks, that works. I hadn't really looked at the skinner app at all (I didn't realise it was working), had just been looking at the ini (or was it cfg?) files inside the theme dirs. I'll play with that stuff when I get home.