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




Пост N: 716
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.08 14:11. Заголовок: Как делать программу для Сервера-Терминала ?


Всем привет !
Подскажите как уже готовую программу переделать под Сервер-Терминалов !
Что нужно учитывать ?
Где и как располагать временные файлы ?

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







Пост N: 25
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 05.11.08 13:10. Заголовок: интерфейс ГУИ или ко..


интерфейс ГУИ или консольный?
Если консольный, то надо поплясать с бубном вокруг шрифтов, чтоб символы были достаточно крупные, потому что полноэкранного режима в терминале нет.
Надеюсь, у тебя не 16-разрядное приложение? 16-ти сильно садят терминал-сервер, особенно если в Клиппер-программе не пропатчен опрос клавиатуры..
Если админ сервера позволяет, то временные файлы лучше располагать на том же терминал-сервере.


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




Пост N: 720
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.11.08 22:55. Заголовок: Интерфейс консольный..


Интерфейс консольный ! Программа на хХарборе, использую GTWVT-терминал во весь экран. Шрифты крупные поддерживают все режимы. Смотри картинку:


Админ сервера позволяет сделать все. Куда "пихать" временные файлы и выборки ?
Т.к. у меня задача файл-серверная, то все выборки я помещал на клиентской машине в папку C:\TEMP
Как на хХарборе узнать что задача стартует на терминале-сервера и как сделать для каждого клиента свою временную папку ?


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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 06.11.08 10:44. Заголовок: Для каждого сеанса(п..


Для каждого сеанса(пользователя) - уникальный ID ( 3 знака хватит), временная папка - C:\temp\%ID%

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



Пост N: 51
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 06.11.08 11:15. Заголовок: Поднимал терминальны..


Поднимал терминальные сервера, настраивал права пользователей, даже хотел переносить каталог "Documents and Settings" на другой диск. Поэтому мой совет такой: использовать для TEMP только 100% гарантированный ресурс. Предыдущий совет может не сработать, т.к. прав может и не быть. Сейчас у меня в двух офисах именно так - запрещено всё, что не нужно.
Для этого необходимо прочесть в ветке реестра HKCU\Enviroment\ значение TEMP или TMP. Но там имеется %USERPROFILE%. Чтобы его получить проще воспользоваться функцией C_getspecialfolder(CSIDL_PROFILE) из MiniGUI-Ext, смотри \MiniGUI\SOURCE\h_winapimisc.prg

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




Пост N: 721
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.11.08 21:39. Заголовок: Спасибо вам большое ..


Спасибо вам большое ! Буду пробовать....

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



Пост N: 52
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 10.11.08 09:47. Заголовок: Вот вспомнил, что ка..


Вот вспомнил, что как-то я хотел сделать перемещаемый профиль в терминале, а это значит, что путь к профилю будет в формате UNC (\\ServerName\...). Не знаю как xHarbour, а Clipper этого не понимал. Кроме того, временные файлы, лежащие где-то на другом сетевом ресурсе - не есть хорошо. Поэтому я бы использовал другую схему размещения временных файлов:

1. Получить каталог временных файлов стандартными средствами. Обычно, это \Windows\Temp. Туда всегда имеют доступ все программы.
2. Сформировать имя временного файла в виде [Буква(ы)]+[ID сессии]+[Счетчик номера].[ext] = 8.3 символов
3. Буква может быть одна, например F. Но, если Ваших программ будет работать несколько, то следует их идентифицировать. Поэтому в качестве идентификатора программы следует использовать не более трёх букв, например программа для ЖКХ - идентификатор VKH
4. В моих программах все пользователи проходят идентификацию, и, номер записи из зашифрованной таблицы, по которой идентифицировался пользователь, я использую в качестве идентификатора его сессии. Каждое дополнительное подключение пользователя обязательно через другой логин и как следствие - новая сессия и идентификатор. Двух символов обычно хватает - 99 сессий.
5. Затем три символа порядкового номера временного файла - от 001 до 999 и затем по кругу.

Примерно так:
// MyProgram.ch
DEFINE PROGRAM_ID "VKH"
......

FUNCTION GetTempFileName( nSessionID, cExt )
// Для однопользовательских программ nSessionID = 1
// Иначе его нужно передавать или использовать PUBLIC переменную

LOCAL cFileName
STATIC nCounter := 0
DEFAULT nSessionID := 1, cExt := "TMP"

nCounter = nCounter + 1
nCounter = if( nCounter = 1000, 1, nCounter )
cFileName := PROGRAM_ID + PADL( nSessionID, 2, "0" ) + PADL( nCounter, 3, "0" ) + "." + cExt
cFileName := upper( cFileName ) // Лучше чётко определять регистр для кроссплатформенных приложений

RETURN cFileName


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




Пост N: 756
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.11.08 22:27. Заголовок: Для временных файлов..


Для временных файлов я использую свой каталог \TEMP, могу и использовать \Windows\Temp
Мне непонятно как в своей хХарборовской программе для СЕРВЕРА-Терминала определить кто (какой пользователь) запустил мою программу ???

Я бы добавил к своей переменной \TEMP\имя_пользователя и вот готов временный каталог для этого пользователя !
Тогда наверно лучше использовать %USERPROFILE% и не заморачиваться с временными именами файлов. Т.к. иногда бывает нужно знать конкретное имя файла, например для FastReport.....

Посмотрел h_winapimisc.prg и даже переделал в отдельную программу, НЕТ ТАМ доступа к переменной:
\Documents and Settings\{USERPROFILE}\Local Settings\Temp
Как ее можно получить ?
Или нужно самому добавлять к %USERPROFILE% \Local Settings\Temp ?



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




Пост N: 1129
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.11.08 09:42. Заголовок: Andrey пишет: Шрифт..


Andrey пишет:

 цитата:
Шрифты крупные поддерживают все режимы


Что за шрифт если не секрет ?

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




Пост N: 757
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.08 11:45. Заголовок: Dima пишет: Что за ..


Dima пишет:

 цитата:
Что за шрифт если не секрет ?


Использую библиотеку GTWVT3а.
Сам терминал переделал Alexander Prostoserdov смотри http://clipperforwindows.narod.ru
При линковки этой библиотеки шрифт крупный под различные расширения экрана и печать ДОС-овская есть...
Какой там шрифт он использует я не знаю, спроси у него сам.
Высылаю на пробу http://files.mail.ru/8PXOKT


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




Пост N: 1130
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.11.08 11:57. Заголовок: Andrey пишет: Испол..


Andrey пишет:

 цитата:
Использую библиотеку GTWVT3а


А поделиться не сложно ? ;)

PS
Напомню что я поделился с тобой одним купленным продуктом ;)

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




Пост N: 758
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.11.08 15:18. Заголовок: Дима, все что угодно..


Дима, все что угодно, только не это. Обещал Александру (он в Москве рядом живет, я с ним работаю по некоторым проектам) без него не распространять. Тем более что он вообще-то собирался выложить в публичное использование, но когда не знаю.
Еще раз извини....

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




Пост N: 1131
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.11.08 15:43. Заголовок: Andrey OK :) А скол..


Andrey
OK :)
А сколько стоит библа ? Ты по чем брал ?

На документацию к библиотеке хотя бы можно взглянуть ?

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




Пост N: 759
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.12.08 20:51. Заголовок: Dima пишет: А сколь..


Dima пишет:

 цитата:
А сколько стоит библа ? Ты по чем брал ?



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

Позвонил Александру и задал ему твой вопрос. Пока думает....

Доки нет никакой, там все просто. Пример ДОС печати могу выложить.


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



Пост N: 78
Зарегистрирован: 12.02.08
ссылка на сообщение  Отправлено: 06.12.08 09:10. Заголовок: А сколько стоит библ..



 цитата:
А сколько стоит библа ? Ты по чем брал ?


Можно нажать Alt+Enter - получиш консоль в полноэкранном режиме разрешением 640х480

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





Пост N: 27
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 08.12.08 16:06. Заголовок: В терминальном режим..


В терминальном режиме полноэкранного разрешения не бывает.valery2 пишет:

 цитата:
Можно нажать Alt+Enter - получиш консоль в полноэкранном режиме разрешением 640х480



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




Пост N: 767
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.12.08 15:52. Заголовок: Не удается запустить..


Не удается запустить бат файл со следующим содержанием:

cmd /c start C:\Documents and Settings\InetComp\Local Settings\Temp\ABONENT4\BACKUP_DB.BAT

пробовал

cmd /c start "C:\Documents and Settings\InetComp\Local Settings\Temp\ABONENT4\BACKUP_DB.BAT"

тоже не работает.

Подскажите пожалуйста, кто может .....

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




Пост N: 1148
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.12.08 17:15. Заголовок: Andrey пишет: cmd /..


Andrey пишет:

 цитата:
cmd /c start "C:\Documents and Settings\InetComp\Local Settings\Temp\ABONENT4\BACKUP_DB.BAT"


Вот так работает
 
cmd /c "C:\Documents and Settings\InetComp\Local Settings\Temp\ABONENT4\BACKUP_DB.BAT"


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




Пост N: 3245
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.14 12:38. Заголовок: Народ, помогите сове..


Народ, помогите советом, как правильно нужно сделать ?
Есть сервер Win2008, на нем клиенты подключаются через Сервер терминалов к моей задаче.
Есть отдельная программа на МиниГуи которая может запускаться в трей и каждые 5 минут отправляет измененные записи на сайт.

1) Как организовать запуск этой программы чтобы она всегда работала (т.е. после перезагрузки сервера) ?
2) Как сделать, чтобы отправку записей юзера видели у себя на раб.столе
Т.е. какой механизм использовать можно...
Сейчас моя программа в трее пишет: Отправлено 15 записей.
Но эту надпись же видит только тот пользователь от кого стартовала программа.
Как сделать чтобы все видели это сообщение ?

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



Пост N: 98
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 27.02.14 13:33. Заголовок: Совместная работа


1) Программу лучше эксплуатировать не на сервере, а на виртуальной машине,
которую нужно создать и запускать на этом сервере.
2) Выделить отдельную учетную запись для работы этой программы.
3) Виртуалку запускать в режиме автологона для этой учетки - в системном реестре есть такие ключи.
Тогда виртуалка поднимется при любом перестарте сервера.
4) Для запуска задачи - использовать Планировщик виртуалки - создать задание Планировщика -запускать программу при условии входа в виртуалку под нужной учеткой
5) для других юзеров - использовать другую часть программы - пусть просто читают лог, который создает первая программа

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




Пост N: 3246
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.14 15:29. Заголовок: petr707 пишет: 1) П..


petr707 пишет:

 цитата:
1) Программу лучше эксплуатировать не на сервере, а на виртуальной машине,
которую нужно создать и запускать на этом сервере.


А можете пояснить почему ?

petr707 пишет:

 цитата:
5) для других юзеров - использовать другую часть программы - пусть просто читают лог, который создает первая программа


Тогда нужно делать другую программу на МиниГуи, которая будет сидеть в трее и показывать лог програмы отправки ?
Так ?

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



Пост N: 99
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 27.02.14 18:46. Заголовок: Почему виртуалка


1) Для изоляции от сервера и его надежности.
На сервер ставится только серверная часть каких либо систем - например Терминальный сервер.
У Вас же, видимо, прикладное клиентское ПО, которое запросто может положить сервер
в случае каких-либо своих ошибок. Плюс ПО может просить лишних прав доступа,
не нужных для сервера, при наладке ПО, установке и прочее.
Виртуалка - это просто доступная удаленно специальная сервисная "клиентская" машина.

2) Почему обязательно в трее ? и Почему другую программу ? Программа может быть одна,только запущена
во многих сессиях разных юзеров - например при входе юзера в систему.
Если все сеансы запуска ПО юзерами будут запущены в терминальной сессии сервера, так вообще это одна вычислительная среда.
Передавайте данные разным процессам хоть через мьютексы.
Главный процесс делает одно, остальные его смотрят.



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




Пост N: 3249
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.02.14 20:31. Заголовок: petr707 пишет: Прог..


petr707 пишет:

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


Хорошая идея !
Я про неё забыл, хотя сам это делал на терминалке еще.

petr707 пишет:

 цитата:
Передавайте данные разным процессам хоть через мьютексы.
Главный процесс делает одно, остальные его смотрят.



Это что-то сложновато... Нужен бы пример для понимания.
Через мьютексы я так и не добился передачи данных между двумя ехе-никами...

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


Пост N: 961
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 28.02.14 08:43. Заголовок: petr707 пишет: Пере..


petr707 пишет:

 цитата:
Передавайте данные разным процессам хоть через мьютексы.


Вообще-то, мютекс - это просто семафор. Включено/выключено. Как им можно передавать данные?

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



Пост N: 100
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 28.02.14 09:21. Заголовок: Определять - кто читатель , а кто писатель


Процесс,который не нашел мьютекс, создает его и будет писателем(в лог-файл или еще куда-то),
остальные - читатели этого лога. Это к вопросу - много программ или одна.

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


Пост N: 962
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 28.02.14 09:32. Заголовок: petr707 пишет: Проц..


petr707 пишет:

 цитата:
Процесс,который не нашел мьютекс, создает его и будет писателем(в лог-файл или еще куда-то),
остальные - читатели этого лога. Это к вопросу - много программ или одна.


Ну так-то да... )

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




Пост N: 3253
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.03.14 22:39. Заголовок: PSP пишет: Вообще-т..


PSP пишет:

 цитата:
Вообще-то, мютекс - это просто семафор. Включено/выключено.



Мютекс передается в одном адресном пространстве ?
Если да, то как одна программа запущенная под разными пользователями, имеющие свое адресное пространство, увидит мютекс другого пользователя ?
Я в этом не разбираюсь, поясните немного пожалуйста.



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


Пост N: 963
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 02.03.14 10:17. Заголовок: Andrey пишет: Мютек..


Andrey пишет:

 цитата:
Мютекс передается в одном адресном пространстве ?
Если да, то как одна программа запущенная под разными пользователями, имеющие свое адресное пространство, увидит мютекс другого пользователя ?
Я в этом не разбираюсь, поясните немного пожалуйста.


Мютекс - это http://ru.wikipedia.org/wiki/%D0%9C%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81

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




Пост N: 3274
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.03.14 20:15. Заголовок: petr707 пишет: 5) д..


petr707 пишет:

 цитата:
5) для других юзеров - использовать другую часть программы - пусть просто читают лог, который создает первая программа



Мютексом не смог воспользоваться. Не понял как сделать взаимодействия между различными терминалами, т.к. область загрузки у каждого терминала своя и передать между ними ничего не смог. Остановился на лог-файле, т.к. файл один между терминалами.

Переделал отдельную программу на МиниГуи которая отправляет файлы на сайт, пишет в лог-файл (dbf) и сделал отдельную программу просмотра, которая каждые 30 сек. выводит последнюю запись из лог-файла.
Просто и надежно.

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

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