I had been banging my head against a wall with this for some time. I finally got it mostly figured out, here are some tips to make your life easier.
Firstly, if you are having the issue where it looks like it's just attempting to open a cmd prompt. It might be because your either not pointing to the working directory or your working directory requires "quotes".
To get around this do a search on your system for "cmd". It should be in C:\Windows\System32. Copy the cmd.exe to the directory with the executable you want to run in affinity or priority. You can do it from the GUI or from a command line. In this example I'll use virtual pc 2007.
copy c:\windows\system32\cmd.exe c:\program files\microsoft virtual pc\
Second, now that a copy of cmd.exe is in your working directory with your executable, right click on your newly added cmd.exe and create a shotcut.
You can now move the shortcut to wherever you want (Desktop, Start Menu, wherever.)
Third, if you fire up your shortcut now you'll notice that it automatically starts you in the directory where your copied cmd is sitting. It would show up like this. (Note: this test is being done on Vista Ultimate 64-bit for reference)
Microsoft Windows [Version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\Program Files\Microsoft Virtual PC>
Third, now right click on your shortcut and go to properties. Where you see "Target" you should see something like this.
"C:\Program Files\Microsoft Virtual PC\cmd.exe"
This is where you add your start command, throwing the /c tells it to execute a command and then terminate. Then you can add your priority switches and affinity switches with the Start command. Add this right into your shortcut target Like so.
"C:\Program Files\Microsoft Virtual PC\cmd.exe" /c start /realtime /affinity 3 vpc.exe
The /realtime is the priority I chose for my program, by choosing affinity 3 I'm telling the program to only use processors 0 and 1. This example is being done on a 4 processor system, I would not recommend using /realtime unless you have remaining processors to handle the load, If this system only had 2 processors I would not exceed /high for my priority.
(Note, the virtual pc 2007 executable is normally named "Virtual PC.exe" I have renamed it "vpc.exe" to avoid having to use "" quotes which causes the command to fail. As best I can tell I think it's because windows doesn't like playing with 2 sets of "" quotes in the same command, just my guess here.)
Here comes a complicated part, choosing the value for affinity, notice below there are some letters, thats not a typo, the /affinity switch is looking for a Hexadecimal value. This should be fairly accurate, math was never my best subject though.
1 does processor 0
2 does processor 1
3 does processors 0 and 1
4 does processor 2
5 does processors 0 and 2
6 does processors 1 and 2
7 does processors 0, 1, and 2
8 does processor 3
9 does processor 0 and 3
D does processor 0, 2, and 3
F does processors 0, 1, 2, and 3
This Microsoft technet chart may help.
Microsoft Corporation
Also note, some programs are setup to force a specific affinity, I have run into some programs using this technique that will not take affinity settings past a certain number of CPU's. So for example, if you set /affinity F and the application is still not using all 4 cpus, this does not necessarily mean you did the command wrong, the program may just be enforcing it's affinity.
Now that you have your shortcut setup you can change the name, the icon, if your using Vista you can right click on the shortcut, change icon, and browse to the original .exe to use the same icon file.
This was driving me nuts for some time

I hope this helps somebody out!
