Организационно это решается так - на ПК должен быть драйвер, который управляет каким-либо устройством, или в данном случае смотрит состояние устройства и выполняет то, что ему задано алгоритмом. Но вполне можно для низких скоростей обойтись любой прикладной программой, и слушать любой низкоскоростной порт - COM, LPT. Например, как подсказали, слушать состояние какого-то сигнала на COM порту, и делать действия нужные. Кроме кнопки, нужно по-хорошему сделать устройство сопряжения между кнопкой собственно и ПК. Например, к ПК будет COM порт смотреть или LPT, а устройство будет внутри по нажатию кнопки переключать триггер, а возвращать его состояние либо по таймауту (допустим, 0,3...0,5с, да хоть 10 секунд), либо по сигналу с ПК (драйвер или программа на ПК посмотрела что состояние сигнала изменилось, сделала что нужно, и послала на другой вывод свой сигнал).
spoilerВ древние времена (в начале 2000х) делал на коленках через LPT порт и программку на QBASIC небольшую управление через датчик освещённости (да обычный фоторезистор), свет в комнате включился - выполняет одни действия, выключился - другие. Ничего сложного особо. На выход тоже делал через LPT управление громкостью звука на через самодельный цифровой регулятор громкости, подключенный к LPT опять же.