Heres the x64 Windows 7 fix
1. Install the BF2 game.
2. Set shortcut on desktop (if that's what you use to initialize the game) to compatibility mode (I chose Windows Vista).
3. Uninstall PB services using the pbsvc tool from evenbalance.com ->
http://www.evenbalance.com/downloads/pbsvc/pbsvc.exe -> click uninstall services in the program and it will pop up a few windows, just navigate through them until it says finished
4. Delete PB folder from the directory you installed BF2.
5. Reinstall the PB services again, using the same tool from step 3 (PBSVC.EXE) -> click install/repair services and run through the pop up windows
6. Open the Services tool from Control Panel -> Administrative Tools (optionally, just click the start button and in the search box, type in 'services' and it should be listed there)
7. Find the PnkBstrA service in the services list
8. Right click on it, then click Properties
9. If you have a spot to change the compatibility to Windows Vista, do it... I did not have this option and skipped this step and it still worked, so don't worry if you can't change the compatibility.
10. Click the Log On tab at the top of the pop up window
11. Check the "Allow service to interact with desktop" checkbox (some people say they can't find this, but it was right there when I looked, easy to see and check)
12. Close that window now and then right click on the service and then click on 'Restart' to restart the service
13. Navigate to C:\Windows\SysWOW64...
14. Find PnkBstrA.exe and PnkBstrB.exe, they should be listed together
15. Right click on PnkBstrA.exe and click on properties
16. Click the Compatibility tab and check "Run as Administrator"
17. In the same tab, change the compatability to Windows Vista, then close this window
18. Right click on PnkBstB.exe and click properties
19. Click the Compatibility tab and check "Run as Administrator"
20. In the same tab, change the compatability to Windows Vista, then close this window
NOW the game is ready to go, but we need to do one last thing, and that is manually update the PB for BF2.
21. Download pbsetup.exe from evenbalance.com ->
http://www.evenbalance.com/index.php?page=pbsetup.php -> click on the windows installer and download it.
22. Put this exe into it's own folder, I put mine on the desktop in a folder called pbsetup (so i can use it later on if I need to update pb again)
23. Double click on pbsetup.exe and then click on 'add a game'
24. Find Battlefield 2 from the drop down list and then if it doesn't put the correct location / path in the next textbox after selecting BF2, then change it to where you installed the game.
25. Click the update button on pbsetup and let it do it's work. At the end, you should see BF2 in the list of games and it will have a version number on the right of it.
Might not work with everyone...but it's a start!
OK - now play the game. Have fun!
Remember, only you can prevent forest fires!
