Хочу, чтоб моя программа стартовала не более одного раза (в т.ч. из разных мест). При попытке повторного запуска буду выводить диалог, предлагающий убиться об стену, убить предыдущий экземпляр или просто запустить вторую копию. Есть ли общепринятые кроссплатформенные решения?