Форум » [x]Harbour » Запуск проги ? » Ответить

Запуск проги ?

Dima: Есть сетевой ресурс ему назначена буква диска. От туда запускается программа и подхватывает DLL которые лежат там же. А если запускать программу с UNC пути , DLL так же увидятся и подхватятся ?

Ответов - 39, стр: 1 2 All

Haz: подхватывает без проблемм ( если ты про ADS )

Pasha: Dima пишет: А если запускать программу с UNC пути , DLL так же увидятся и подхватятся ? Я в основном так и делаю, сетевой диск не подключаю. С dll по unc все в порядке

Dima: Haz пишет: подхватывает без проблемм ( если ты про ADS ) Да про него ;)


Dima: Pasha пишет: Я в основном так и делаю, сетевой диск не подключаю Что то мне показалось что по UNC прога дольше грузится

Pasha: Dima пишет: Что то мне показалось что по UNC прога дольше грузится Возможно, первый запуск будет и медленнее, так как выполняется поиск компьютера, проверка прав доступа и прочее. В случае сетевого диска это уже выполнено. Но я с такими мелочами не заморачиваюсь, в случае ЛВС это небольшое замедление.

Dima: Pasha OK , понял , так и сделаю. Нарисовалась проблема. На серваке стоит ADS , OS Windows XP По сети не дает подключится более чем 9 юзерам. Нужен какой то хак или все же придется ставить серверную OS Windows ?

Dima: Как узнать UNC путь с которого была запущена прога ? То есть если я запустил c \\127.0.0.1\sklad$\sklad.exe где выловить этот UNC путь....

Dima: Dima пишет: Как узнать UNC путь с которого была запущена прога ? Вроде есть решение. Не поможет кто то знающий перевести это в Harbour ? [pre2] function GetUNCName(PathStr: string): string; var bufSize: DWord; buf: TUniversalNameInfo; msg: string; begin bufSize := SizeOf(TUniversalNameInfo); if (WNetGetUniversalName(PChar(PathStr), UNIVERSAL_NAME_INFO_LEVEL, buf, bufSize) > 0) then case GetLastError of ERROR_BAD_DEVICE: msg := 'ERROR_BAD_DEVICE'; ERROR_CONNECTION_UNAVAIL: msg := 'ERROR_CONNECTION_UNAVAIL'; ERROR_EXTENDED_ERROR: msg := 'ERROR_EXTENDED_ERROR'; ERROR_MORE_DATA: msg := 'ERROR_MORE_DATA'; ERROR_NOT_SUPPORTED: msg := 'ERROR_NOT_SUPPORTED'; ERROR_NO_NET_OR_BAD_PATH: msg := 'ERROR_NO_NET_OR_BAD_PATH'; ERROR_NO_NETWORK: msg := 'ERROR_NO_NETWORK'; ERROR_NOT_CONNECTED: msg := 'ERROR_NOT_CONNECTED'; end else msg := buf.lpUniversalName; Result := msg; end; [/pre2]

Pasha: Dima пишет: Нарисовалась проблема. На серваке стоит ADS , OS Windows XP По сети не дает подключится более чем 9 юзерам. Нужен какой то хак или все же придется ставить серверную OS Windows ? Мне казалось, что это ограничение было в win2k, а в x[ его уже нет. Оказалось, что это не так: http://support.microsoft.com/kb/314882/ru [qoute]Примечание. В операционной системе Windows XP Professional максимально допустимое число компьютеров, которые могут быть одновременно подключены к данному компьютеру через сеть, равно 10. При этом учитываются как транспортные подключения, так и подключения общего доступа к ресурсам. В операционной системе Windows XP Home Edition максимально допустимое число компьютеров, которые могут быть одновременно подключены к компьютеру через сеть, равно 5. Указанное ограничение учитывает число одновременных сеансов, установленных с других компьютеров, но не учитывает подключения, выполненные с удаленных компьютеров средствами администрирования. [/qoute] Поиск в гугле "win xp ограничение 10 подключений" дает массу рекомендаций, как его обойти. Пишут, что это ограничение протокола tcpip в windows, а не ограничение, связанное с лицензией.

Pasha: Dima пишет: Как узнать UNC путь с которого была запущена прога ? То есть если я запустил c \\127.0.0.1\sklad$\sklad.exe где выловить этот UNC путь.... Так есть же функция ExeName(). Или надо что-то другое ?

PSP: Pasha пишет: что это ограничение протокола tcpip в windows, а не ограничение, связанное с лицензией Крякается tcpip.sys (http://forum.sysadmins.su/index.php?showtopic=4436), но это - нарушение лицензии. Пункт 1.3 лицензии: http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&url=http%3A%2F%2Fdownload.microsoft.com%2Fdocuments%2Frus%2Flicensing%2Fpdffiles%2FWindows_XP_Pro_SP2.pdf&ei=PvJmUaHfDsLw4QTBh4DgDQ&usg=AFQjCNELrl5KzZSImMr00IUP7yy7rwu6sg&bvm=bv.45107431,d.bGE&cad=rjt

Dima: Pasha пишет: Так есть же функция ExeName() Да оно , спасибо !!! А я юзал truename()

Dima: PSP пишет: Крякается tcpip.sys В принципе да я крякал его у себя на компе , иначе Utorrent погибал , не уверен что это касается и локальной сети.

PSP: Касается. :) Подключение устройств. Вы можете разрешить подключение к Рабочей станции не более десяти (10) компьютеров или других электронных устройств (каждое из них - "Устройство") для использования одной или нескольких из следующих служб Программного обеспечения: файловых служб (File Services), служб печати (Print Services), служб IIS (Internet Information Services), общего доступа к подключению к Интернету (Internet Connection Sharing) и телефонных служб. В эти десять разрешенных соединений входят любые непрямые соединения, созданные с помощью "мультиплексирования" или другого программного обеспечения или оборудования, обеспечивающего пулинг или объединение соединений. Это ограничение (максимум 10 соединений) не распространяется на другие виды использования Программного обеспечения, например на синхронизацию данных между Устройством и Рабочей станцией, при условии, что в каждый момент времени только один пользователь использует, осуществляет доступ к, отображает или запускает Программное обеспечение. Этот пункт 1.3 не дает вам прав доступа к Сеансу Рабочей станции с какого-либо Устройства. Под "Сеансом" понимается любое использование Программного обеспечения, обеспечивающее функциональные возможности, аналогичные тем, которые предоставляются конечному пользователю, взаимодействующему с Рабочей станцией с помощью любой комбинации периферийных устройств ввода, вывода и отображения. Вот тут-то LetoDB и выручает. Он не создает ни одного из вышеупомянутых подключений, поэтому эти ограничения на него не распространяются. :)

Dima: PSP Пробовал реально больше 10 подключений к LetoDB серверу ? Думается что коннект с одного IP к другому что в LetoDB что в ADS , виндой будет восприниматься одинаково. ЗЫ Подход примерно одинаков что в LetoDB что в ADS , или не прав я ?

Pasha: Пишут что в Windows 7 этого ограничения нет. По моему опыту. Если подключений более 10-ти, то как правило стоит серверная ОС. Но встречается и winxp. Всмоминаю, что жалоб на такую ошибку от этого клиента не поступало. Это вроде бы ограничение на одновременные прдключения. Может быть, такой случай просто не встречался. Везде стоит letodb, конечно. Ограничение на колличество пользователей - это другое ограничение. Для windows 7 это 20 пользователей, см.команду net config server

PSP: Dima Вот скриншот, 11 станций и одно ожидание соединения Несколько одинаковых имен в колонке Remote Address - глюк TCPView, видимо. На самом деле - это разные станции. ps. Запущено на Win XP Pro

Dima: Ну так та же картинка будет и с ADS. А пускало не более 9 юзеров через ADS у меня потому что некоторые просто подключились к этому компу минуя ADS , дабы поюзать общие папки и файлы.

PSP: В случае с letodb пользователи не подключаются к компу, не используют для подключения средства виндовс. Просто клиентская часть общается с серверной посредством открытого tcpip-сокета. На скриншоте 11 активных подключений. За каждым - конкретный комп. Никого не отключают... :) Они не используют никакие общие ресурсы. А вот скриншот, на котором показаны текущие пользовательские сеансы на этом же компе. Тут пользователи подключились и используют разделенный ресурс, но никак на соединения letodb не влияют Вот когда в этом списке будет 10 пользователей, 11-му не позволят подключиться.

Dima: PSP пишет: Просто клиентская часть общается с серверной посредством открытого tcpip-сокета Теперь понял. Да в этом плане LetDB конечно выгоднее , но к сожалению он уступает по скорости ADS. Свою задачу переделал и под LetoDB и под ADS и сравнил в работе , пощупал ,сделал выводы и остался на ADS. А жаль , LetoDB мне понравился.



полная версия страницы