@ swisston, если вы запускаете консольное приложение из другого собственного приложения, чем я хочу рекомендовать вам «именованные объекты ядра». Например, мьютекс. Вы можете создать именованный mutex в своем родительском приложении. Затем в главном потоке приложения вашей дочерней консоли попытайтесь открыть этот мьютекс. Если мьютекс не открыт (не найдено): консоль приложение имеет никаких разрешений для продолжения и должны быть закрыты;) ждать, я сварю код для вас;)
Edit: Так что это очень легко тактики. В родительском приложении создать именованный мьютекс:
Mutex mutex = new Mutex(true, "MyPermissions");
Затем в детской консоли проверки приложений, если ваш мьютекс существует:
static bool CheckPermissions()
{
try
{
Mutex mutex = Mutex.OpenExisting("MyPermissions");
}
catch (Exception ex)
{
return false;
}
return true;
}
Если консольное приложение было работать без вашего родительского метода CheckPermissions приложения будет возвращать ложь и консоль должна быть закрыта;)
Вы действительно имеете в виду командную строку DOS (command.com) или командную строку NT (cmd.exe)? Или любое консольное приложение отлично? – CodesInChaos 2010-11-24 12:15:31
А чего вы пытаетесь достичь? Почему вы хотите, чтобы другие программы не запускали вашу программу? – CodesInChaos 2010-11-24 12:16:32
@CodeInChaos: Хорошие очки. Любое консольное приложение в порядке. Я бы хотел, чтобы приложение не использовалось как часть другого продукта или услуги. – FunLovinCoder 2010-11-24 12:28:41