Форум: "Базы";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
ВнизНе могу записать библиотеку Найти похожие ветки
← →
Tornado (2010-01-12 10:21) [0]Есть программа, с нее идет обмен данными с сервером Firebird, по локальной сети. Для работы с этис сервером используется библиотека GDS32.DLL, которая сидит в system32. Я включил в состав дистрибутива эту библиотеку, но если пользователь на компютере не администратор (у нас такое сплошь и рядом) - то инсталлятор (Inno Setup использую) не может записать эту библиотеку в system32. А без нее не работает программа, пишет не могу загрузить GDS32.DLL при попытке что-либо отправить на сервер (ну допустим запрос на вставку или выборку). Вся работа идет через компоненты FIBPlus.
Что можно сделать?
← →
Медвежонок Пятачок © (2010-01-12 10:29) [1]Ставить программу из под администратора.
У вас же именно для этого рядовые пользователи лишены админских прав.
Они не должны ставить софт.
← →
Tornado (2010-01-12 10:32) [2]
> Медвежонок Пятачок © (12.01.10 10:29) [1]
Выход конечно, но пользователей очень много а администраторов очень мало )) Программа официально разрешена, и впринципе ее могут ставить рядовые пользователи, но вот эта проблема все портит. Пока админ дойдет до нужного юзера может пройти много времени, а прога нужна здесь и сейчас....
← →
Медвежонок Пятачок © (2010-01-12 10:37) [3]Выход конечно, но пользователей очень много а администраторов очень мало ))
Ну и какого тогда вы спрашивается сами себе гемор создали?
Чего ради у вас пользователи не имеют прав?
← →
Медвежонок Пятачок © (2010-01-12 10:40) [4]Пока админ дойдет до нужного юзера
а админ у вас слышал про то что у вас есть сеть и что по сети можно копировать файлы если имеешь нужные полномочия?
или он у вас просто любит ходить по пользователям?
← →
Медвежонок Пятачок © (2010-01-12 10:42) [5]то инсталлятор (Inno Setup использую) не может записать эту библиотеку в system32
пусть записывает ее в папку с программой
← →
ANB (2010-01-12 10:50) [6]
> пусть записывает ее в папку с программой
И это будет лучшим вариантом.
← →
Медвежонок Пятачок © (2010-01-12 10:58) [7]И это будет лучшим вариантом.
<Цитата>
Если не считать что это извращение самого смысла длл.
:)
Билгейц зачем придумал это? Лежит один код в одном месте. Все юзают.
← →
Tornado (2010-01-12 11:07) [8]
> Медвежонок Пятачок © (12.01.10 10:42) [5]
Как же программа найдет его потом? Ведь она по всей видимости ищет его именно в system32?
← →
Медвежонок Пятачок © (2010-01-12 11:09) [9]Ведь она по всей видимости ищет его именно в system32?
Она не ищет ничего.
длл ищет виноуз.
← →
Sergey13 © (2010-01-12 11:17) [10]Может через домен можно как всем (или нужным) пользователям вкрячить ее в нужное место? И убрать из инсталятора.
← →
Tornado (2010-01-12 11:23) [11]
> Медвежонок Пятачок © (12.01.10 11:09) [9]
да я понял, не так выразился....windows найдет эту DLL если я положу ее в каталог с программой?
← →
turbouser © (2010-01-12 11:35) [12]
> Tornado (12.01.10 11:07) [8]
> Как же программа найдет его потом?
А разве в фибах нельзя указать путь к библиотеке? TpFIBDatabase.LibraryName для кого придумали?
← →
Tornado (2010-01-12 11:57) [13]
> turbouser © (12.01.10 11:35) [12]
О точно, про это я и забыл совсем, спасибо!
← →
Медвежонок Пятачок © (2010-01-12 12:18) [14]О точно, про это я и забыл совсем, спасибо!
Вспомнишь, когда встретится машина на которой софт ставился из под админа и длл легла в system32
← →
Tornado (2010-01-12 12:30) [15]
> Медвежонок Пятачок © (12.01.10 12:18) [14]
И что будет?
← →
Медвежонок Пятачок © (2010-01-12 12:54) [16]а что будет, если в настройках прописан абсолютный путь к либе, а она по этому пути не лежит?
будет то же самое что и сейчас у тебя происходит
← →
turbouser © (2010-01-12 12:56) [17]
> Медвежонок Пятачок © (12.01.10 12:54) [16]
if filexists()
← →
Медвежонок Пятачок © (2010-01-12 13:13) [18]if filexists()
И чего дальше?
← →
turbouser © (2010-01-12 13:17) [19]
> Медвежонок Пятачок © (12.01.10 13:13) [18]
:)
var S:string;
S:= ExtractFilePat(Application.ExeName)+"GDS32.DLL";
with pFIBDatabase do
if fileexists(S) then
LibraryName := S else
LibraryName := "GDS32.DLL";
← →
Медвежонок Пятачок © (2010-01-12 13:28) [20]И в чем прикол этого кода?
в параметрах коннекшена скажем написано "gds32.dll"
либа может лежать либо в систем32 либо в папке с программой (две версии инсталлятора)
что именно не будет работать при отсутствиии мегакода из [19] ?
← →
Anatoly Podgoretsky © (2010-01-12 15:09) [21]> Tornado (12.01.2010 10:21:00) [0]
Сделать как положено, установка программ прерогатива администратора.
← →
Anatoly Podgoretsky © (2010-01-12 15:11) [22]> Tornado (12.01.2010 10:32:02) [2]
А ты за администраторов не беспокойся, это их работа. И политика надо было вчера ущербная политика, с ее носителями надо бороться самыми жесткими методами, вплоть до увольнения, так дешевле будет.
← →
Anatoly Podgoretsky © (2010-01-12 15:13) [23]> ANB (12.01.2010 10:50:06) [6]
Лучшим вариантом будет инсталятор в виде .msi и централизованая установка через политики.
← →
turbouser © (2010-01-12 16:19) [24]
> Медвежонок Пятачок © (12.01.10 13:28) [20]
Вообще-то в system32 может лежать совсем не той версии gds32..
← →
Медвежонок Пятачок © (2010-01-12 16:54) [25]Вообще-то в system32 может лежать совсем не той версии gds32..
И как же FileExists может помочь в этой беде?
← →
Виталий Панасенко(дом) (2010-01-12 22:02) [26]А вообще, их (gds32.dll)может быть масса... Вот тут, кто первый, тот и папа!..:-)
А вообще, действительно непонятно, набуя тогда админы? Или ты сам из них?
← →
Tornado (2010-01-13 08:37) [27]
> Медвежонок Пятачок © (12.01.10 12:54) [16]
Она там будет лежать )))
← →
Tornado (2010-01-13 08:41) [28]
> Виталий Панасенко(дом) (12.01.10 22:02) [26]
Или ты сам из них?
Бог с тобой ))) Нет, я инсталлятор сделал просто и столкнулся с этой проблемой. Ну вообщем внимаю советам бывалых, отдал дистриб админам, пусть сами ставят ))
← →
ANB (2010-01-13 15:12) [29]
> Если не считать что это извращение самого смысла длл.
> :)
> Билгейц зачем придумал это? Лежит один код в одном месте.
> Все юзают.
А Рихтер назвал эту идею плохой ("Ад DLL") :)
← →
sniknik © (2010-01-13 17:04) [30]> А Рихтер назвал эту идею плохой ("Ад DLL") :)
если бы оно работало так как задумывалось... 1 dll и все ее используют, а так как в этой ветке одна лежит в реестре, и каждая программа свою копию таскает, т.к. привязана к версии, или другим причинам, вод и получается ад, куча одноименных dll и ни с одной нормально не работает, в общем сами себе ад создаем...
← →
Anatoly Podgoretsky © (2010-01-13 17:20) [31]> ANB (13.01.2010 15:12:29) [29]
А другие идеи тоже не лучше
← →
ANB (2010-01-13 17:44) [32]
> А другие идеи тоже не лучше
Пишу толстые экзешники и не парюсь. DLL только для хуков.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.007 c