On-line: tnsr2, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1428
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.10 13:03. Заголовок: Как "снять" программу ?


Всем привет !
Столкнулся с такой проблемой....
Есть МОЯ сетевая программа. Юзер запустил ее и ушел закрыв свой кабинет ! Прогу скинул на панель задач, т.е. отложил выполнение моей программы, хотя базы открыты и одна текущая запись - блокирована.
Вопрос: каким образом можно завершить задачу в таком положении ???
Т.е. каким образом можно сделать QUIT в программе в таком положении ?

Устал я бороться с юзерами. Мне эта запись нужна, а она занята...

Можно ли как то через сеть передать команду закрытия моей программе ?

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


Администратор




Пост N: 1597
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 16.07.10 13:13. Заголовок: Перезагрузить файл-с..


1) Перезагрузить файл-сервер
2) Поставить удаленное управление рабочим столом

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




Пост N: 1429
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.10 13:43. Заголовок: Pasha пишет: 1) Пер..


Pasha пишет:

 цитата:
1) Перезагрузить файл-сервер


Круто... Никто не позволит ! Там много юзеров работает....

Pasha пишет:

 цитата:
2) Поставить удаленное управление рабочим столом


Нельзя ! Политика безопасности на фирме не позволяет этого делать !

У меня в задаче "встроен" механизм выхода из программы. Программа каждые 2 минуты проверяет "базу выхода" (exit.dbf)
Там прописан выход для каждого пользователя.
Но дело в том - если задача "отложена", т.е. не выполняется, то и опрос базы не происходит ! При "активации" (развернуть программу) происходит опрос базы и программа "нормально" выходит с сообщением - типа идет профилактика !

Вот и хочется сделать , когда приложение не активно, чтоб его можно было закрывать !
Неужели нет специальных средст ?

А если задача выполняется на СЕРВЕРЕ-ТЕРМИНАЛОВ ?

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




Пост N: 1806
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.07.10 14:04. Заголовок: я сделал проще , нап..


я сделал проще , написал процедурку. если юзер не активен в течении определенного промежутка
времени (кнопки не нажимал и что то еще не помню уже) то его автоматом выбрасывает из проги.
сразу говорю что писать тебе Андрей придется свою процедуру и моя тебе просто не подойдет (там свои
заморочки)

Ням
Делал на Clipper :) Выбрасывает даже если окно не активно или свернуто

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




Пост N: 1430
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.10 14:18. Заголовок: Dima пишет: Выбрасы..


Dima пишет:

 цитата:
Выбрасывает даже если окно не активно или свернуто



Я пробовал делать что-то подобное, не получилось !

Давай на хХарборе сделаем отдельный тест ?
Я образец работы, ты как выгрузить прогу !

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





Пост N: 141
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.07.10 14:42. Заголовок: Добрый день! Примеч..


Добрый день!

Примечание. Где-то с Вами обсуждали механизм записи в базы... У меня User меняет переменные памяти, а потом сбразывает их в запись, т.е. записи локируются только в момент транзакции....

Ну а Вашем случае - на сервер поставьте программу "контроля процессов", например UnLocker (free) и вызвав её можно "убить" любой процесс, запущенный на рабочей станции. При этом Clipper (xHarb тоже проверено) разблокирует запись и "сбросит буфер".


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




Пост N: 1431
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.10 15:17. Заголовок: AndreyZh пишет: UnL..


AndreyZh пишет:

 цитата:
UnLocker (free) и вызвав её можно "убить" любой процесс, запущенный на рабочей станции



А он удаленно, т.е. на другой машине может "убить" процесс ?


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





Пост N: 142
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 16.07.10 15:38. Заголовок: А он удаленно, т.е. ..



 цитата:
А он удаленно, т.е. на другой машине может "убить" процесс ?



Конечно нет! Но если процесс на удалённой машине при помощи данной утилиты можно убрать локировку файлов на сервере - данные же на нём находятся?

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



Пост N: 23
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 16.07.10 16:11. Заголовок: Andrey пишет: Но де..


Andrey пишет:

 цитата:
Но дело в том - если задача "отложена", т.е. не выполняется, то и опрос базы не происходит !


Я так понимаю, что известен момент перехода задачи (активный/не активный), а значит нужно передать управление задачей опять же тому
Andrey пишет:

 цитата:
механизм выхода из программы. Программа каждые 2 минуты проверяет "базу выхода" (exit.dbf)


который будет работать в не активном состоянии.

Andrey пишет:

 цитата:
Прогу скинул на панель задач, т.е. отложил выполнение моей программы, хотя базы открыты и одна текущая запись - блокирована.


Какая ОС при скидании на панель задач останавливает ее выполнение?


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



Пост N: 25
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 16.07.10 16:31. Заголовок: Вот нацарапал func ..


Вот нацарапал

func main()
set alter on
set alter to "test01.txt"
for i:=1 to 120
?time()
inkey(1)
next
set alter off
set alter to
return nil

В windows xp опускал на панель, ждал, поднимал, снова опускал - задача выполняется.


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




Пост N: 1434
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.07.10 17:16. Заголовок: AlexMyr пишет: В wi..


AlexMyr пишет:

 цитата:
В windows xp опускал на панель, ждал, поднимал, снова опускал - задача выполняется.



А ты попробуй эту программу "снять" когда она на панели....
Т.е. пускай программа проверяет наличие ОПРЕДЕЛЕННОГО файла в этой папке, и если он появился, то снять задачу !



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


Пост N: 176
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 18.07.10 13:28. Заголовок: Короче. Андрей надо ..


Короче. Андрей надо тебе менять подход, а не искать выход из подобной ситуации.
У меня запись блокируется только в момент сохранения изменения!Это мгновения. В режиме редактирования может висеть сколько угодно - потому что , редактирую тся значения переменных в памяти, а потом они сбрасываются измененными в таблицу.

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



Пост N: 84
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 19.07.10 11:11. Заголовок: Здесь очевидны два в..


Здесь очевидны два варианта: оперативный и не самый корректный, и постоянно действующий.

В первом случае на сервере можно закрыть открытые пользователем файлы: "Мой компьютер - Управление - Общие папки - Открытые файлы - Сортируем по пользователю - Выделяем - Закрыть открытый файл". Последствия очевидны.

Для второго нужно доработать программу: создать глобальный таймер, который опрашивает некоторую таблицу, например, один раз в минуту. В этой таблице администратор может устанавливать признак оперативного отключения пользователя и тогда, программа пользователя корректно закрывает все базы данных и интерфейс. Для GUI это довольно просто реализовать, с текстовым режимом посложнее будет.
В качестве "некоторой таблицы" можно использовать таблицу в которой вошедшие пользователи регистрируются. Для Клиппера/Харбора я делал это через блокировку записи, т.е. пользователь авторизуется через эту таблицу (там зашифрованные логин/пароль) и блокирует свою запись. Эта блокировка сохраняется до конца сеанса. В этой же таблице можно хранить многие настройки пользователя, права и прочее. В том числе и признак оперативного завершения работы.

Такую систему (принудительное завершение работы пользователя) я реализовал в программе на 1С. Работает

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



Пост N: 3
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 19.07.10 12:08. Заголовок: В 1С, да. А вот в не..


В 1С, да. А вот в неактивной задачке на xHarbour таймер не отрабатывает.Я это решал через tray(в FWH)

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




Пост N: 1807
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.10 12:36. Заголовок: fil Что то Вы нет т..


fil
Что то Вы нет так делаете парни. Если уж на Clipper удалось это сделать то на X(Harbour) верняк можно сделать.
Предположим что в Вашей проге формируется какой то большой отчет , минут на 5 скажем. Если свернуть окно
задачи и заниматься какими то другими делами , задача продолжает работать или останавливается ?
Если работает , то и таймер должен работать или что Вы там вешали.

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




Пост N: 1436
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.10 13:45. Заголовок: КСС пишет: Для втор..


КСС пишет:

 цитата:
Для второго нужно доработать программу: создать глобальный таймер, который опрашивает некоторую таблицу, например, один раз в минуту. В этой таблице администратор может устанавливать признак оперативного отключения пользователя и тогда, программа пользователя корректно закрывает все базы данных и интерфейс. Для GUI это довольно просто реализовать, с текстовым режимом посложнее будет...



Я это уже сделал на Клипере ! И до сих пор работает !
Переделал на хХарбор тоже работает !

Вопрос ТОЛЬКО один: когда задачу скидываешь на панель задач, то прекращается опрос БАЗЫ выхода....
Как реализовать "снятие" задачи в таком положении ?
Может как то Windows таймер опрашивать или еще как нибудь ...


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



Пост N: 4
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 19.07.10 13:55. Заголовок: Возможно. Я делал em..


Возможно. Я делал embedding 1С из Harbour и хотел по таймеру чего-то там менять в 1С. Не получилось.

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 19.07.10 14:06. Заголовок: Как пробудить клипперную задачу в трее


Можно применить методику дополнительного стороннего агента
- программы , которая по своему расписанию или по заданию планировщика Widndows
( раз в минуту)
поднимает задачу из трея ( восстанавливает окно) по имени или хендлу окна основной задачи.
Когда задача "проснется" , то и завершит себя сама.

Спасибо: 0 
Цитата Ответить



Пост N: 5
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 19.07.10 14:19. Заголовок: В смысле посадить в ..


В смысле посадить в tray контролера, который периодически ищет хендл окна главной аппликации и если не активен, то поднимает его ?
Или нужно брать хендл задачи, но как тогда определить активна она или нет ?

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



Пост N: 85
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 19.07.10 14:39. Заголовок: Программа в минимизи..


Программа в минимизированном режиме - это не "заснувшая" программа, и в этом режиме она может и должна работать: формировать отчеты (как тут писали), обрабатывать данные и т.д. Стало быть и таймер должен работать. Сам не проверял, но если это так, то это недоработка Харбора. Надо бы услышать мнение наших гуру.

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



Пост N: 86
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 19.07.10 14:42. Заголовок: Кстати, чтобы "п..


Кстати, чтобы "поднять" программу из панели задач можно использовать бесплатный AutoIt - превосходный opensource проект как раз для этих целей. Думаю в пару десятков строк можно будет уложиться.

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

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