Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82

fmShareExclusive

23.03.2011, 02:32. Показов 3334. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна ваша помощь. Вот я хочу заблокировать открытие программы, а потом разблокировать.
Блокировку сделать знаю как, реализую спомощью
C++
1
FileOpen('......',fmShareExclusive);
а вот как сделать разблокировку этой программы?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2011, 02:32
Ответы с готовыми решениями:

отличия fmShareDenyNone и fmShareExclusive
Привет всем Чем отличаются режимы fmShareDenyNone и fmShareExclusive когда открываем файл в потоке?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 02:41
наверное, fmShareDenyNone
и вы не приложение блокируете, а ограничиваете доступ к файлу (наверное, файлу вашего приложения) только для вашего приложения, а fmShareDenyNone разрешает доступ к файлу любому приложению, как-то-так.
1
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
23.03.2011, 02:56  [ТС]
не помогло. Когда я использую функцию fmShareDennyNone на прогр. которой ограничил доступ с помощью fmShareExclusive, то мне при открытии той программы выдает ошибку, что моя открываемая программа занята другой программой.

Добавлено через 3 минуты
вот код который использую
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute()) {
        FileOpen(OpenDialog1->FileName,fmShareExclusive);
        }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (OpenDialog1->Execute()) {
        FileOpen(OpenDialog1->FileName,fmShareDenyNone);
        }
}
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 02:57
что у вас вместо точек :
C++
1
FileOpen('......',fmShareExclusive);
?
и, как вы думаете, что делает FileOpen в коде вашей программы ?
0
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
23.03.2011, 03:00  [ТС]
ну вместо точек я использую OpenDialog1->FileName. А FileOpen открывает программу к которой укажу путь, а fmShareExclusive огр. к ней доступ
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 03:02
вы таким образом открываете файл ЕХЕ ?
0
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
23.03.2011, 03:02  [ТС]
да, именно так
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 03:06
т.е., из своей программы, используя OpenDialog1, вы таким образом можете открыть, например, notepad.exe, и, указав флаг fmShareExclusive, ограничить доступ к Блокноту ?
А
0
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
23.03.2011, 03:10  [ТС]
ну насколько я понимаю да. А как он работает?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 03:18
видимо, я заблуждался, думая, что для открытия исполняемых файлов (ЕХЕ) следует использовать что-нибудь на подобие ShellExecute .
И куда вы открываете ЕХЕ ? В Memo, Image ?

Добавлено через 2 минуты
Вот - Класс TFileStream. Понятие потока VCL., VCL File Streaming почитайте для общего развития .
0
 Аватар для delete1991
2 / 2 / 0
Регистрация: 05.02.2011
Сообщений: 82
23.03.2011, 03:20  [ТС]
нивочто, просто я хочу ограничить доступ к этой программе которой я укажу. Мда, чтот я напутал. А как ограничить доступ через ShellExecute?и потом снять эт ограничение?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 03:25
Гм, может, вы имеете ввиду запретить запуск нескольких экземпляров одной программы ?

Добавлено через 1 минуту
Цитата Сообщение от delete1991 Посмотреть сообщение
нивочто, просто я хочу ограничить доступ к этой программе которой я укажу. Мда, чтот я напутал. А как ограничить доступ через ShellExecute?и потом снять эт ограничение?
- т.е., пока вы работаете в том же Блокноте, чтобы никто другой не мог открыть Блокнот для себя ?
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
23.03.2011, 05:06
Цитата Сообщение от LK Посмотреть сообщение
Гм, может, вы имеете ввиду запретить запуск нескольких экземпляров одной программы ?
не он хочет с правами запуска работать, обратись сначала в раздел по ОС, там подскажут ключики какие менять в реестре. Даже подскажу, есть такая чтука как Group Policy. Если быть точнее то Local Group Policy.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 05:15
Цитата Сообщение от AlexSt Посмотреть сообщение
1. не он хочет с правами запуска работать
2. обратись сначала в раздел по ОС, там подскажут ключики какие менять в реестре.
1. с правами запуска чего ? блокнота ?
2. плохой совет.
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
23.03.2011, 05:17
Вот тут смотри
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 05:18
Цитата Сообщение от AlexSt Посмотреть сообщение
Вот тут смотри
это Вы мне советуете ?
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
23.03.2011, 05:24
Цитата Сообщение от LK Посмотреть сообщение
1. с правами запуска чего ? блокнота ?
2. плохой совет.
Совет хороший, не нада мне тут ня-ня .
поверь опытному системному администратору, даже и блокнот стоит запрещать для запуска

Добавлено через 2 минуты
Цитата Сообщение от LK Посмотреть сообщение
это Вы мне советуете ?
Не автору, и тебе тоже, или ты дофига про локальные групповые политики знаешь?)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 05:25
Цитата Сообщение от AlexSt Посмотреть сообщение
Совет хороший, не нада мне тут ня-ня .
поверь опытному системному администратору, даже и блокнот стоит запрещать для запуска
я тебе не тут, это во-первых, во-вторых, совет плох тем, что опытный сисадмин у неопытного программиста в ногах не валялся, ну, и в-третьих, обсуждать что-нибудь без топикстартера - смыла нет.
0
 Аватар для AlexSt
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
23.03.2011, 05:27
Цитата Сообщение от delete1991 Посмотреть сообщение
Нужна ваша помощь. Вот я хочу заблокировать открытие программы, а потом разблокировать.
Блокировку сделать знаю как, реализую спомощью
Код C++
1
FileOpen('......',fmShareExclusive);
а вот как сделать разблокировку этой программы?
LK, посмотри что он делает, он тупо открывает файл, с атрибутом занятости при этом ничего не делает с ним, это не нормально
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.03.2011, 05:30
я смотрел раньше тебя, и даже деликатно натолкнул его на эту мысль
Цитата Сообщение от delete1991 Посмотреть сообщение
Мда, чтот я напутал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru