yeah i though about letting the user hit "F1 = enter manually" or "F9 = scan" but thats just not the "right way" of doing things.
Right way schmight way.... if it ain't broke don't fix it.
I think it would be perfectly valid to catch either the event of your scanner being used or the user's text entry to check if a valid bar code has been put in... a simple bool "switch" would work. So set it to true then if the user enters text set it to false.
Some solutions aren't worth the hassle of a complex algorithm when a simple work around will do the job 100%