powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пжл
25 сообщений из 33, страница 1 из 2
Помогите пжл
    #35691821
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема такая: Открываем SHARED DBF файл, в нем 2 поля, при изменении одного поля выполняем
SET BELL TO C:\DINGDON.WAV
?? CHR(7)
При изменении другого поля - QUIT
Главное, чтобы запускалась прога в свернутом виде и работе других приложений не мешала.
...
Рейтинг: 0 / 0
Помогите пжл
    #35691892
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшка,

Ставится цикл, который периодически проверяет на изменение указанные поля, в случае необходимости реагирует как требуется. Ориентировочно так:

sele tablica
skat to YorArray
do while 1
if YorArray(1)<> tablica->f1
пищим
endif
if YorArray(2)<> tablica->f2
сваливаем
endif

skat to YorArray
inkey(10)
enddo

Программу можно сделать и без окна вовсе.
Тогда ДРУГАЯ программа будет изменять поля таблицы, а эта будет или пищать или вываливаться.
...
Рейтинг: 0 / 0
Помогите пжл
    #35692234
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо FAM!
Небольшое уточнение: эта прога должна работать какбы фоном и окно вовсе не нужно, она проверяет изменения сделаные другими пользователями сети. Поэтому цикл, как мне кажется, будет мешать другим программам. Я не силен в FP, но мне кажется, что через ProgrammaticChange это делать надо. Или я не прав?
...
Рейтинг: 0 / 0
Помогите пжл
    #35692238
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо FAM!
Небольшое уточнение: эта прога должна работать какбы фоном и окно вовсе не нужно, она проверяет изменения сделаные другими пользователями сети. Поэтому цикл, как мне кажется, будет мешать другим программам. Я не силен в FP, но мне кажется, что через ProgrammaticChange это делать надо. Или я не прав?
...
Рейтинг: 0 / 0
Помогите пжл
    #35692371
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшкаСпасибо FAM!
Небольшое уточнение: эта прога должна работать какбы фоном и окно вовсе не нужно, она проверяет изменения сделаные другими пользователями сети. Поэтому цикл, как мне кажется, будет мешать другим программам. Я не силен в FP, но мне кажется, что через ProgrammaticChange это делать надо. Или я не прав?
Цикл здесь обязателен. База данных не посылает сообщений всем пользователям в сети о том, что в ней что-то изменилось. Те же триггеры срабатывают только для того, кто их запустил.

Другой вопрос, загрузка машины бесконечным циклом. Здесь я бы посоветовал либо использовать таймер, либо в цикле сделать задержку.
Например так:
Код: plaintext
1.
2.
3.
4.
DECLARE Sleep IN WIN32API LONG
DO WHILE .T.
   Sleep( 100 ) && Дрыхнем  100  миллисекунд.
ENDDO

Для запуска проги в свернутом виде, см. файл CONFIG.FPW. В нем должна быть строчка в стиле SCREEN = OFF. Можно CONFIG.FPW включить в проект и тогда его не нужно будет таскать отдельно от приложения.
...
Рейтинг: 0 / 0
Помогите пжл
    #35692408
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В DBF вносят изменения все пользователи, а отслеживает эти изменения, только один комп, на котором эта прога и запускается. Но т.к. машина эта не только бибикать будет, то и загружать ее по самые уши не хочется.
...
Рейтинг: 0 / 0
Помогите пжл
    #35692434
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвносят изменения все пользователи, а отслеживает эти изменения

дай ответ на вопрос:
а зачем Вам фокспро для реализации задачи аудита
и создания службы уведомлений?

автортолько один комп, на котором эта прога и запускается
не в обиду,информация для размышлений: велосипеды уже давно придуманы,
может взять правильный инструмент для разработки?

Вас привлекает себестоимость и простота разработки в фокспро?
или Вы не владете иными инструментами?
...
Рейтинг: 0 / 0
Помогите пжл
    #35692446
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не владею иными инструментами :-((
...
Рейтинг: 0 / 0
Помогите пжл
    #35692468
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ не владею иными инструментами

нужно начинать осваивать

я так понимаю к Вашей разработке начинают предъявлять какие-то требования.
задумайтесь над вариантами реализации:
1. Вы притягиваете все за уши с помощью фокспро и городите городухи
2. Вы начинаете осваивать инструмент, который по-умолчанию имеет такие возможности
(либо возможна успешная и нетрудозатратная, быстрая реализация)
...
Рейтинг: 0 / 0
Помогите пжл
    #35692492
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет, я постараюсь воспользоваться им. Но проблему решить надо срочно. Есть варианты?
...
Рейтинг: 0 / 0
Помогите пжл
    #35692510
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Есть варианты

применительно к фокспро
аудит только за уши из самого приложения, либо триггеры(нужно использовать БД)

что-бы запустить какой-то "контролятор", который будет пищать на одной станции
и пытаться управлять процессом
можно запустить какое-то приложение, свернуть его в трей и с помощью таймера
смотреть все время куда-то, дергать таблицу ..., и что-то при наступлении события
делать что-то
...
Рейтинг: 0 / 0
Помогите пжл
    #35693099
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшкаВ DBF вносят изменения все пользователи, а отслеживает эти изменения, только один комп, на котором эта прога и запускается. Но т.к. машина эта не только бибикать будет, то и загружать ее по самые уши не хочется.

Гм. А что мешает "бибикать" при вызове триггеров на машинах пользователей? Каждого конкретного?
Тогда и второе поля для останова не потребуется. Ибо некого будет останавливать...
...
Рейтинг: 0 / 0
Помогите пжл
    #35693121
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Бибикать" должна одна машина. Остальные - как рыбы :-) Причем как рыбы они под в FPD работают.
...
Рейтинг: 0 / 0
Помогите пжл
    #35693188
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: qqшка
> Причем как рыбы они под в FPD работают.
т.е. про тригерры не может быть и речи :)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите пжл
    #35693232
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно!
...
Рейтинг: 0 / 0
Помогите пжл
    #35693783
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшка,

Там же я в тексте указал и по-русски и в коде, что в цикле происходит задержка. Соответственно, никакой загрузки процессора не происходит. Одна инерация за 10 секунд грузит процессор на 10 в минус пятнадцатой степени процента.
Так что опасаться нечего.
...
Рейтинг: 0 / 0
Помогите пжл
    #35693800
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kruchinin Pahan[quot qqшка]Спасибо FAM!
... Поэтому цикл, как мне кажется, будет мешать другим программам. Я не силен в FP, но мне кажется, что через ProgrammaticChange это делать надо. Или я не прав?
Код: plaintext
1.
2.
3.
4.
DECLARE Sleep IN WIN32API LONG
DO WHILE .T.
   Sleep( 100 ) && Дрыхнем  100  миллисекунд.
ENDDO

Примененять можно и Sleep(100) и INKEY(10) - как в моем примере. А разница-то в чем? ))
...
Рейтинг: 0 / 0
Помогите пжл
    #35694020
FAM,
Sleep отдает неиспользуемые ресурсы другим работающим приложениям, а inkey() постоянно мониторит пользовательский ввод, не давая работать другим приложениям (типа: "А вдруг чего интересное пропущу" )
...
Рейтинг: 0 / 0
Помогите пжл
    #35694041
Станислав С...кийFAM,
Sleep отдает неиспользуемые ресурсы другим работающим приложениям, а inkey() постоянно мониторит пользовательский ввод, не давая работать другим приложениям (типа: "А вдруг чего интересное пропущу" )
Мониторит = проводит опрос клавиатуры, мышки и т.д. Т.е. загружает комп дополнительной, ненужной (в другом контексте она будет нужной, но не в данном случае) работой...
...
Рейтинг: 0 / 0
Помогите пжл
    #35694083
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это меня и беспокоит. И опытным путем проверить очень трудно - юзеры на комп не пускают, работают.
...
Рейтинг: 0 / 0
Помогите пжл
    #35694809
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшкаВот это меня и беспокоит. И опытным путем проверить очень трудно - юзеры на комп не пускают, работают.
Надо вообще не знать, как работает функция inkey(10), чтобы писать такую глупость. В этом режиме никакой опрос не происходит. Вы хоть хэлп читайте, прежде, чем писать в топик - народ-то ведь не только дети, но и серьёзные дядьки читают.

Слава Богу, у меня не один сервер написан с использованием этого режима и что-то ни разу проблем не возникло. И не потому, что обошлось, а потомучто именно так работает стандартная ф-ция.

А если беспокойство одолевает, то профессиональный программист тестит пример, а не "беспокоится" как больной на койке. А тестить надо не на компе юзера, а у себя и только потом готовое решение ставить юзеру.

Простите, но не топик, а детский лепет )))
...
Рейтинг: 0 / 0
Помогите пжл
    #35695111
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Станислав С...кий
> Sleep отдает неиспользуемые ресурсы другим работающим приложениям, а
> inkey() постоянно мониторит пользовательский ввод, не давая работать
> другим приложениям (типа: "А вдруг чего интересное пропущу" )

В современных операционках, в отличие от доса, ни одна программа (кроме
драйверов и очень специфичного софта, близкого к дровам) не мониторит порты.
(Досовские проги мониторят, но на то они и ДОСовские). Остальные проги ЖДУТ,
когда ОС скинет им сообщение о том, что произошло событие.


Не зная как внутри работает функция inkey, но точно не мониторит порт, а
ждет сообщения о событии нажатия клавиши. Причем, если в очереди сообщений
нет самих сообщений, то ОС отдаст квант времени другому приложению (если
данное приложение не входит в безумный цикл или нет иных действий, кроме как
ожидание сообщения)



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите пжл
    #35695118
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAM
Примененять можно и Sleep(100) и INKEY(10) - как в моем примере. А разница-то в чем? ))
Для данного конкретного случая, когда приложение скрыто и не получает фокуса ввода, разницы нет никакой. Разница между функциями в том, что Sleep спит не реагирует на клавиатуру, а INKEY именно ждет сообщения о нажатии клавиши (но с таймаутом ожидания). Критично это бывает в некоторых специфичных случаях, только когда приложение может получить фокус ввода.

А уточнить человеку еще раз про задержку в цикле пришлось, потому как после вашего ответа человек все-равно задает вопрос про загрузку машины. Вот ему и 2.5 варианта: таймер, цикл с задержкой по INKEY или Sleep.

Можно еще планировщик использовать, если периодичность проверки достаточно редкая (10 минут и более).
...
Рейтинг: 0 / 0
Помогите пжл
    #35695451
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kruchinin Pahan[quot FAM]
Разница между функциями в том, что Sleep спит не реагирует на клавиатуру, а INKEY именно ждет сообщения о нажатии клавиши (но с таймаутом ожидания).

Ничего INKEY(10) не ждет. С таким параметром он вообще ничего не ждет. Это - 10-и секундная пауза. И ничего Вы в нее в таком варианте не передадите, никакого события. Вы код читайте прежде, чем его обсуждать. Там не INKEY() без параметров, а INKEY(10). Это две БОЛЬШИЕ разницы.

И Galyamov Rinat пытается это объяснить, а Вы не понимаете, о чем речь.
...
Рейтинг: 0 / 0
Помогите пжл
    #35695789
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAMKruchinin Pahan[quot FAM]
Разница между функциями в том, что Sleep спит не реагирует на клавиатуру, а INKEY именно ждет сообщения о нажатии клавиши (но с таймаутом ожидания).

Ничего INKEY(10) не ждет. С таким параметром он вообще ничего не ждет. Это - 10-и секундная пауза. И ничего Вы в нее в таком варианте не передадите, никакого события. Вы код читайте прежде, чем его обсуждать. Там не INKEY() без параметров, а INKEY(10). Это две БОЛЬШИЕ разницы.

И Galyamov Rinat пытается это объяснить, а Вы не понимаете, о чем речь.
Имхо, вы слышите то, что хотите, а не то, что вам говорят.

У INKEY(nSeconds) существует 2 события, по которым заканчивается обработка ожидания ввода пользователя:
1. Истечение таймаута в nSeconds секунд
2. Собственно ввод пльзователя.
Иллюстрируется примером:
Код: plaintext
1.
2.
3.
lnSeconds = SECONDS()
?INKEY( 10 )
?SECONDS() - lnSeconds

Единственное, что я не могу утверждать, это как кокретно происходит обработка этих двух событий, но я и не утверждаю нигде. Либо это thread message loop, либо это hook (для хука опять же требуется dll), либо специфическая функция ядра.

PS. Откуда такая толпа флеймеров понабежала? SU.KASCHENKO.LOCAL опять прикрыли, чтоли?
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пжл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]