Австрийский футболист, нападающий, а также футбольный тренер. В настоящее время является главным тренером клуба «Адмира Ваккер».
Начал карьеру футболиста в клубе «Альпине», который в то время выступал во втором по уровню дивизионе Австрии. В 1978 году перешёл в венскую «Аустрия». Первый сезон в столичном клубе получился удачным. Клуб выиграл чемпионат Австрии с отрывом в 14 очков, а Шахнер стал лучшим бомбардиром лиги с 24 забитыми голами. В Кубке европейских чемпионов 1978/79 «Аустрия» дошла до полуфинала, Шахнер забил 5 мячей. В следующем сезоне команда сделала «золотой дубль», выиграв чемпионат и кубок Австрии; Шахнер забил 34 гола в 36 матчах лиги. В сезоне 1980/81 завоевал свой третий чемпионский титул, но провёл лишь 13 мячей в 29 играх.
В 1981 году перешёл в итальянский клуб «Чезена», который как раз перед этим вышел в Серию A. В «Чезене» Шахнер играл неплохо и регулярно забивал голы, но в 1983 году команда выбыла в Серию B, после чего австриец перешёл в «Торино». В туринском клубе играл вместе с нападающими сборной Италии — сначала с Франко Сельваджи, затем с Альдо Сереной. В сзоне 1984/85 «Торино» занял второе место в Серии A, благодаря чему в следующем сезоне выступил в Кубке УЕФА (дошёл до второго раунда). В 1986 году Шахнер перешёл в «Авеллино», который тогда выступал в Серии C1. В 1988 году вернулся в Австрию, в клуб «Штурм» из Граца. Впоследствии играл в ещё нескольких командах высшей и Первой лиг Австрии. Завершил карьеру игрока в 1998 году в 41-летнем возрасте.
Дебютировал в сборной Австрии 5 декабря 1976 года в отборочном матче Чемпионата мира 1978 против Мальты. Через 10 дней, в своей следующей игре за сборную, забил свой первый международный гол. Участвовал в Чемпионате мира 1978, провёл на нём 3 матча, забил 1 гол. На Чемпионате мира 1982 сыграл во всех пяти матчах сборной Австрии, забил 2 гола. Последнюю игру за сборную провёл 17 августа 1994 года, спустя 6 лет после своего предыдущего международного матча.
Начал тренерскую карьеру в клубе «Цельтвег», который вывел в Региональную Лигу. Затем возглавлял «Кернтен». В сезоне 2000/01 занял с ним первое место в Первой лиге, выиграл Кубок и Суперкубок Австрии. В следующем сезоне «Кернтен» занял 5-е место в Бундеслиге, в Кубке УЕФА проиграл в первом раунде греческому клубу ПАОК. После этого недолгое время возглавлял венскую «Аустрию». В октябре 2002 года стал главным тренером клуба «Грацер». В сезоне 2002/03 привёл команду к рекордному для неё второму месту в Бундеслиге, а в следующем сезоне сделал «золотой дубль», выиграв чемпионат и Кубок Австрии. В сезоне 2004/05 «Грацер» снова занял 2-е место в Бундеслиге, в Кубке УЕФА дошёл до 1/16 финала (в 1/16 уступил английскому «Мидлсбро» с общим счётом по сумме двух матчей 3:4).
С января 2006 года по март 2007 был главным тренером германского клуба «Мюнхен 1860», который выступал во Второй Бундеслиге. В июле 2007 года возглавил только что созданную команду «Аустрия Кернтен», в декабре 2007 был уволен с поста главного тренера, но остался спортивным директором клуба. 9 августа 2008 года стал главным тренером клуба «Адмира Ваккер».