Страница: 1 |
Страница: 1 |
Вопрос: [VB.Net] Проблема с Shell() на Висте
Добавлено: 02.03.08 16:18
Автор вопроса: DDK | Web-сайт:
Приветствую, господа.
Сейчас использую такой огород для запуска внешнего приложения:
Try
s = Shell(Application.StartupPath() + "\EUU_Vista.exe", AppWinStyle.NormalFocus)
Catch ex As Exception
Try
s = Shell(Application.StartupPath() + "/EUU_Vista.exe", AppWinStyle.NormalFocus)
Catch ex2 As Exception
End Try
End Try
На XP работает всё в любых случаях замечательно. На Висте же возникает две проблемы:
1) Так как по умолчанию StartupPath - это папка %TEMP%, а имена юзерских папок могут иногда содержать такие спецсимволы как ®, © и т.д., то в случае, когда в имени папки юзера содержится подобные знаки, Shell отвечает, что не может найти файл.
2) Если в Висте включена её встроенная жесткая защита (которая еще спрашивает разрешения перед запуском кажлого файла), то огород мой успешно выполняется, моя программа закрывается с чувством выполненного долга, а вот желаемое быть вызванным внешнее приложение так и не запускается.
Есть идеи ?
С уважением, Антон.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
DDK
ICQ: 1260467
Вопросов: 1
Ответов: 1
Web-сайт:
Профиль | | #1
Добавлено: 02.03.08 16:55
Проблему со спец. символами в path решил так:
(в кавычки путь взял)
Втоаря проблема с защитой пока актуальна.
Номер ответа: 2
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #2
Добавлено: 02.03.08 21:42
ShellExecute не айс в дотнете?
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 03.03.08 05:49
падзарвать висту ! ))
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 03.03.08 08:55
Shell использовать не нужно - используй System.Diagnostics.Process.Start.
С какими-либо проблемами из-за специсмволо нвиогдк на ней не встречался.
По второму воросу вообще ничего не ясно, можешь техническими терминами объяснить что ты хочешь сделать и что происходит?