В зависимости от того, что вы делаете, вы можете оказаться в мире боли. На любой из этих вопросов нет трудных и быстрых ответов, но от тех, кто сейчас сталкивается с одними и теми же проблемами, вот что я знаю.
1) Где хранить данные приложения или сохраненные файлы пользователя?
Это зависит от того, что вы хотите делать. Если вы хотите их для каждого пользователя, хранить их в пользователях/AppData, если вы хотите их для всех пользователей, хранить их в Common/AppData
If SHGetFolderPath(0, CSIDL_COMMON_APPDATA, -1, SHGFP_TYPE_CURRENT, sTempPath) = 0 Then
sCommonAppdata = Left$(sTempPath, InStr(1, sTempPath, Chr(0)) - 1) & "CompanyName\AppName"
End If
Изменить что CSIDL_APPDATA для пользователей каталога AppData. Примечание. Эти карты полностью разные места в файловой системе для XP и Vista, поэтому, когда вы отлаживаетесь, подготовьтесь к просмотру в разных местах.
2) Нужны ли мне привилегии для создания папок и файлов там тоже?
Вам нужен доступ Adminsitrator для записи всего в Program Files, если это вообще возможно, не делайте этого! Мы в настоящее время running into issues, что API для VB и стандартный API ведут себя по-разному в файлах в Program Files.
3) Какие еще общие действия могут вызвать проблемы?
Есть много скрытых ошибок. Чтобы назвать несколько, вы не можете общаться через IPC или Named Pipes с другими приложениями (у нас есть Служба, с которой мы разговаривали с помощью значка уведомлений на лоток, и это должно было быть полностью переписано). Все, что вы видите, уведомление UAC очень сложно. Кроме того, вы не можете писать ничего в реестре в LOCAL_MACHINE без администратора, поэтому вам нужно либо привязываться к LOCAL_USER, либо повышать учетные данные (см. Ниже).
4) У программы есть программа обновления, которая должна загружать и регистрировать файлы, как я могу повысить привилегии (sic), когда это произойдет?
Удачи вам в этом, я настоятельно рекомендую вам не записывать его в VB6, как я уже сказал, файл api VB6, похоже, имеет доступ к файлам, отличным от стандартных API. Если вам нужно повысить привилегии, см. Это post, что кто-то любезно помог мне.
Я думаю, вы будете удивлены тем, что «разрешено по умолчанию» в xp для пользователей, которые не являются админами. Запустите его в xp как стандартный пользователь, и он, вероятно, тоже не будет работать. –
Правда, но это никогда не было проблемой, потому что никто не работал как обычный пользователь. К сожалению, очень часто для программ предполагалось, что пользователь был администратором, и я рад, что Microsoft наконец-то объединилась в этом вопросе. –