Требуется повысить разрешения без всплывающих окон UAC

У меня есть приложение, которое является пусковой установкой для другого приложения (моего основного). Программа запуска переходит на FTP-сервер, скачивает обновления и устанавливает их. Однако исполняемый файл обновления должен скопировать некоторые библиотеки DLL и EXE в каталог установки основного приложения, который находится в Program Files. Из-за этого мне сейчас нужно повысить права программы обновления.

Это проблема, потому что мое приложение запускается при загрузке и, как правило, просто загружается в системный трей (приложение похоже на мессенджер / скайп). Если я начну выводить на экран предупреждения UAC, пытаясь «незаметно» обновить приложение, оно перестанет быть таким тихим.

На данный момент я вижу единственный способ избежать проблемы - это предоставить всем пользователям права доступа к программным файлам. каталог установки, но я не хочу этого делать. Есть другие идеи?

Я использую Windows 7, а приложения написаны на C #. $ stmt-> выполнить (массив (1, 'СЕЙЧАС ()')); но при передаче NOW () в ...

На мой взгляд, следующий сценарий должен работать:

$stmt = $db->prepare("UPDATE table SET status = ?, date_modified = ?");
$stmt->execute(array(1, 'NOW()'));

но при передаче NOW () в подготовленный оператор ничего не происходит. Замена NOW () на фактическую дату (например, 2010-11-23) работает нормально.

Я не могу найти объяснение в Интернете. Есть идеи?

РЕДАКТИРОВАТЬ

Чтобы еще больше прояснить и избавиться от путаницы в вопросе, я действительно хочу передать переменную в подготовленный оператор, ОДНАКО, переменная будет установлена ​​в одну из пяти возможных функций даты / времени для mysql.

например

$ var = 'NOW ()';

$ var = 'LAST_DAY (DATE_ADD (CURDATE (), ИНТЕРВАЛ 1 МЕСЯЦ)) ';

$ var = 'LAST_DAY (CURDATE ())';

... и так далее ...

подготовленный оператор превращается в:

$stmt->execute(array(1, $var));

Я знаю, что это вернет те же результаты NULL, но я меня беспокоит, если я просто изменю оператор sql на:

UPDATE table SET status =?, date_modified = $ var

Я открываюсь для инъекции?

9
задан Jim W. 23 November 2010 в 23:13
поделиться