# Startup Options

This dialog lets you customize how PinballY gets launched, and gives you some options for what happens each time the program starts running.

## How to start PinballY

Manually: Select this option if you want to start the program manually from the Windows desktop each time.

Automatically: Select this to make the program start automatically each time you log in to Windows. Pin cab users will usually want to select this option, since it launches PinballY as soon as you boot up your system, so that you never have to interact with the normal Windows desktop during a gaming session.

Automatic Administrator mode: Like the previous option, this setting launches PinballY automatically when you log in, but in this case the program is launched with Administrator privileges. This allows PinballY to launch games in Admin mode without any Windows UAC (User Access Control) warnings. That makes for a smoother playing experience if you have any games that in fact require Admin privileges.

Even if you're accustomed to having to use Administrator mode with PinballX or other systems, you might not have to do this with PinballY. I'd strongly recommend trying normal user mode first. PinballY has special awareness of the privilege modes required by the game programs it launches, so it should be able to tell you if you run anything actually requiring Admin mode. It's better to run in normal user mode unless PinballY explicitly tells you that Admin mode is required for a particular program. The big reason to avoid Admin mode is that it creates a lot of complications for all of your other programs, because Windows restricts a lot of the normal program-to-program interactions when an Admin program is running.

After logon, pause before starting PinballY: If you wish, you can delay the automatic launch at logon by a specified time in seconds. This value is only used if you select one of the Automatic modes. A startup delay can be useful to clear up conflicts with other programs that you're also launching at Windows startup. Some example of when this could be helpful:

- If another launch-at-startup program thrashes the disk or uses a lot of CPU time while it's loading, PinballY's initial video playback might look jumpy or glitchy. Delaying PinballY's launch until the other program has settled down might help.
- Another program launched at about the same time might steal keyboard focus away from PinballY, forcing you to click the mouse in a PinballY window to give it keyboard focus again. If you delay PinballY's startup so that it's the last program to launch at startup, it should reliably get the initial keyboard focus.

## Wait for monitors

This group of options lets you tell PinballY to wait for all of your monitors to come online before launching.

This is useful in pin cabs that have multiple monitors (which is most pin cabs!), since it lets you ensure that Windows has a chance to restore your full normal desktop area before PinballY attempts to position any of its windows. In a multi-monitor setup, Windows will sometimes boot up faster than the TVs, so there can be a brief period during system startup where Windows is running but hasn't fully restored your normal desktop area. This sorts itself out in due course, since Windows adds each TV to the desktop as it comes online, but it can be problematic for a program like PinballY that you launch automatically at system startup. The snag is that Windows might launch PinballY during this interval when the desktop area is still incomplete. If your window layout uses any of that missing area, PinballY might not be able to restore the full layout properly.

So what you really want to do is tell Windows: "launch this program at system startup, but not until all of the monitors are ready." That's exactly what the "wait for monitors" setting does. It makes PinballY deliberately stop and wait until all of your monitors are online.

To use this feature, check the "Wait for monitors" box, then adjust the parameters:

- Number of monitors: The minimum number of monitors that must be online before PinballY starts up. PinballY will wait until Windows thinks that at least this many physical displays are active in the system.
- Maximum wait time: The time limit on how long to wait. This is just a fail-safe, to make sure that PinballY doesn't get stuck forever if for some reason you're not going to attach all of your monitors for this session. (You can also cancel the wait manually at any time, by clicking the Cancel button in the little dialog box that the program displays during the wait.)
- Additional wait time: This is an extra delay time, in seconds, after all of the monitors have been recognized. Some video cards have a quirk where they appear in Windows as soon as an attached TV is first turned on, but then drop out again for a couple of seconds while the TV establishes its connection. The additional wait time can help work around such startup glitches.

## Splash screen

The program normally displays a "splash screen" for a few seconds each time you launch it, showing the program name and version number. Un-check this box to skip the splash screen.

## Run command at startup/exit

These boxes let you enter commands that PinballY will run when it starts up, and just before it exits, respectively.

Use the normal Windows command line syntax here, as though you were typing a command into the Windows+R "Run" box. A few tips:

- Specify the full drive name and folder path to the program you want to run: `C:\Windows\System32\Notepad.exe`
- If the path or program name contain any spaces, be sure to enclose the whole program name in double quotes: `"C:\Visual Pinball\vpinball.exe"`
- To use DOS-box commands or .BAT or .CMD batch/script files, use CMD.EXE: `cmd.exe /c MyBatchScript.bat`
- If you need to run a series of commands, create a batch file (.BAT) that runs the commands, and use the CMD.EXE syntax above to invoke the batch script