I agree with the comments about $Revision$ not being the right tool for the job. Using a tool to extract the revision number from the output of svn info is indeed the correct thing to do.
There are however two more things to note:
svn info will only return the correct information if svn update has been run on the directory with the checked out sources. If you use custom build steps you should probably add a command for it too.
svn info gives you also information about the repository path. This is the only way to differentiate between sources in trunk and somewhere else, like in tags. If you want your About box to contain a string to correctly identify the sources used to build the application, make sure that the repository path is available too.
Edit:
This is a command script that should be copied to the project top level directory. It will update the sources from the repository, get the SVN revision number from the svn info call and compare it with the constant SVN_REVISION from the file src\SvnRev.inc. If the file is missing it will create it, if the revision is different it will overwrite it. If svn is not available it will write the revision number 0 to the file.
The resulting file src\SvnRev.inc can simply be included in a source file. A similar file could be created to be included in the version resource.
@echo off
setlocal
rem determine project top level directory from command file name
set PRJDIR=%~dp0
cd %PRJDIR%
set SVNREVFILE=src\SvnRev.inc
rem execute "svn info", extract "Revision: 1234" line, and take SVN rev from there
svn update
for /F " usebackq tokens=1,2 delims=: " %%i in (`svn info`) do set key=%%i&set value=%%j&call :read-svn-rev
@echo SVN revision "%SVNREV%"
rem extract "const SVN_REVISION = 1234;" line, and take header SVN rev from there
for /F " usebackq tokens=2,4 " %%i in (%SVNREVFILE%) do set name=%%i&set value=%%j&call :read-file-rev
@echo Include file revision "%FILEREV%"
rem check for valid SVN rev
if "%SVNREV%" EQU "" goto :no-svn-ref
rem do not write file if SVN ref is equal
if "%FILEREV%" EQU "%SVNREV%" goto :EOF
@echo Writing svn revision %SVNREV% to %SVNREVFILE%
@echo const SVN_REVISION = %SVNREV% ; > %SVNREVFILE%
goto :EOF
:no-svn-ref
if not exist %SVNREVFILE% goto :no-header-file
rem do not write file if SVN ref is already unset
if "%FILEREV%" EQU "0" goto :EOF
@echo Writing svn revision 0 to %SVNREVFILE%
goto :write-no-version
:no-header-file
@echo Creating %SVNREVFILE% with svn revision 0
:write-no-version
@echo const SVN_REVISION = 0 ; > %SVNREVFILE%
goto :EOF
endlocal
goto :EOF
:read-svn-rev
if "%key%" EQU "Revision" set SVNREV=%value%&
goto :EOF
:read-file-rev
if "%name%" EQU "SVN_REVISION" set FILEREV=%value%&
goto :EOF