On-line: Haz, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 10
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 25.06.09 16:03. Заголовок: Определить , что программа уже выполняется


Как в Clipper определить, что программа уже выполняется ? (DOS)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 6 [только новые]







Пост N: 42
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 25.06.09 16:20. Заголовок: DOS - однопользовате..


DOS - однопользовательская среда.
запустить 2 экземпляра программы в реальном ДОС - мало реально)
если речь идет о том, чтобы узнать что программа уже запущена в другом ДОС-окне, то первое что приходит на ум - это сетевая блокировка какого-нибудь файла или таблицы. Блокировать этот ресурс в начале работы и освобождать в конце. Второй запуск не сможет заблокировать этот же ресурс.
Ну, и далее вариации на ту же тему - т.е. нужно разруливать ситуацию в рамках одного рабочего места, или во всей сети...

-Успехов!

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 11
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 25.06.09 23:03. Заголовок: Sorry, запущено неск..


Sorry, запущено несколько копий одной и той же программы в DOS-окнах Windows XP ?
Вариант с файлами не есть ответ на вопрос. ( К примеру, программы могут быть различные и обращаться к одному и тому же файлу).

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1267
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 26.06.09 07:37. Заголовок: Avf пишет: К пример..


Avf пишет:

 цитата:
К примеру, программы могут быть различные и обращаться к одному и тому же файлу


Если это Ваши программы то ответ уже озвучил LYSK

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 43
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 26.06.09 07:37. Заголовок: тогда надо точнее фо..


тогда надо точнее формулировать задачу!)
а именно, что нужно определять запущен ли еще "свой" экземпляр, или какой-то другой программы.
Средствами Windows - можно.
Не выходя за рамки ДОС - вряд ли.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 880
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.06.09 19:49. Заголовок: Примерно также и я д..


Примерно также и я делал раньше.

Допустим запускаю программу MyProga.exe
В начале программы ставишь функцию опроса EXENAME()
Ставишь ОБРАБОТЧИК ошибок....
Создаешь в этом же каталоге базу с одним полем EXENAME() + ".dbf"
и открываешь эту базу в МОНОПОЛЬНОМ режиме.
Если базу открыть нельзя, то уже ПЕРВАЯ копия программы запущена !!!
Вывешиваешь сообщение, что MyProga.exe уже запущена !!!

Только иногда даже в ХР бывают (редко) глюки, когда прога вылетает, файл не разблокируется (Windows не скидывает блокировку), тогда приходиться перезагружать компьютер.
У меня юзеры привыкли..

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 19
Зарегистрирован: 09.07.08
ссылка на сообщение  Отправлено: 20.08.09 10:29. Заголовок: Так и быть, дарю: П..


Так и быть, дарю:

При входе
If (nStartFLG:=ExclOpenFile(-1,'C:\'+PosRepl(Token(ExeName(),'\:'),'.flg'),.t.,,.F.))==-1
Quit
EndIf
При выходе
ExclOpenFile(nStartFLG,'C:\'+PosRepl(Token(ExeName(),'\:'),'.flg'))

//===========================================================================
Func ExclOpenFile(pHandl,pFile,pMsg,pCreat,lShared)
Local Ret:=-1, ShMode

pMsg := if(pMsg ==Nil,.f.,pMsg)
pCreat := if(pCreat ==Nil,.t.,pCreat)
lShared := if(lShared==Nil,.f.,lShared)
ShMode:=if(lShared,64,16)

If pHandl == -1
If File(pFile)
Ret := FOpen(pFile,2+ShMode) //RW - Exclusive
Else
If pCreat.AND.(Ret:=FCreate(pFile,0))!=-1
FClose(Ret)
Ret:=FOpen(pFile,2+ShMode)
EndIf
EndIf

If pMsg
If Ferror()=5
BotWarnMess('Вы уже работаете с этой программой. Повторный запуск невозможен',.t.,3)
ElseIf Ferror()=2 .or. Ferror()=3
BotWarnMess('Неуспешная регистрация входа в программу. FError='+AllTrim(Str(FError())),.t.,3)
EndIf
EndIf
Else
FClose(pHandl)
EndIf
Return Ret


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 6
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет