В Windows можно попытаться перехватить функции GetForegroundWindow, GetWindowRect и ещё несколько. Но сначала нужно разобраться, какие методы есть снятия скриншота.
Теоретически, можно применить эвристический анализ. Например, если программа вызывает методы GetForegroundWindow, GetWindowRect, CreateCompatibleDC и еще какие-то, значит, теоретически она может сделать скриншот.