| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Заставить работать CreateFileMapping глобально |
| Автор: Delphist 25.1.2008, 16:02 | ||
Для запуска одной копии программы я настарте делаю такую вещь:
Прикол в том, что данные фишка перестает работать, если я делаю так: загружаюсь в WinXP под обычным пользователем запускаю свою прогу под текущим пользователем, а затем запускаю прогу от имени админа и в результате запускается вторая копия проги, как это предотвратить, т.е. заставить CreateFileMapping создавать глобальный handle, т.е. чтобы всегда моглы быть запущено не более одной копии программы. Тот же самый вопрос и для OpenMutex. И еще один вопросик, каким лучше пользоваться способом CreateFileMapping или OpenMutex для запуска одной копии проги. |
| Автор: MetalFan 25.1.2008, 18:38 |
| тебе уже ответили на другом форуме. попробуй добавить к началу имени маппинга 'Global\' |
| Автор: Delphist 25.1.2008, 19:26 | ||
И на том же форуме я ответил, что не помагает. |
| Автор: MetalFan 25.1.2008, 19:43 |
| может попробовать выставить себе права SeCreateGlobalPrivilege Добавлено через 3 минуты и 15 секунд стоп. объясни точнее, что тебе надо добиться от файломаппинга??? чтобы он был доступен из разных сессий? |
| Автор: Delphist 25.1.2008, 21:30 | ||
Мне нужно через файл маппинг сделать чтобы всегда запускалось не более одной копии проги. Это не получается сделать если прога запускается под разными пользователями |
| Автор: MetalFan 26.1.2008, 00:27 |
| понятно. и что с применением всех описанных ранее условий происходит? что и в какой момент возвращает GetLastError? |
| Автор: Delphist 28.1.2008, 11:25 | ||||
Не фига не работает. Добавлено через 58 секунд
GetLastError возворатит 0 при запуске второй копии проги от имени другого пользователя |
| Автор: EvilsInterrupt 30.1.2008, 12:18 | ||
Попробуй-ка, может чего интересного увидешь. |