EXE работает, а оно-же после инстала не работает

Создание приложений, библиотек, инсталляторов
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Всем привет.
Вопрос по Write (Read) to Spreedsheet File
Сделал проект в котором эту функцию применяю в разных частях моего проекта.
Собрал EXE-шник - все работает.
Собрал Installer (из этого-же самого), выполнил Setup, запускаю - и эта зараза открывает окно с выбором файл для записи .
Почему exe-ник работает как часы, а он-же после сэтапа ведет себя таким образом.
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск

Re: EXE работает, а оно-же после инстала не работает

Сообщение Vitekkz88 »

Экстрасенсы - ваш выход :crazy:
Вероятней всего пути, которые вы указали - не валидные, поэтому открывается диалог для указания файла. Ставьте индикаторы, выводите их на переднюю панель и смотрите какой путь где указан.
Этой функции 100 лет в обед, апробирована от и до. Можете скинуть упрощенную версию того, что вы делаете? Проверю у себя, вдруг там чо :crazy:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Приветствую, Vitek.
Я же сказал, что этот-же самый exe-шник работает четко до сборки инсталлятора (именно инсталлятора). Про работу до сборки я вообще молчу т. к. там вообще все четко
После установки моего приложения через Setup в папке ProgramFiles\Моя папка ставится тот-же самый exe-шник.
Можешь их менять местами как угодно Если просто сделать Build Application, то все работает.
А если из ЭТОГО-ЖЕ самого билда собрать инсталятор то Write (Read) to Spreedsheet File открывает окно с выбором файл для записи.
Как я могу поставить индикаторы в собраный exe.
Такое впечатление, что при сборке инсталлятора чего-то не хватает (Run-Time прикреплен со всеми внутренностями (на всякий включил там все), виза тоже прикреплена, lvinput.dll тоже в папке Data присутствует).
Как будто если просто запустить exe - он использует весь арсенал LV, а если после Setup - то он использует только то, что взял с собой при сборке инсталл-пакета.
Надеюсь проясннил задачу.
Все действия осуществляются на одном и том-же копьютере под Windows 10
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5198
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 21 раз
Поблагодарили: 42 раза

Re: EXE работает, а оно-же после инстала не работает

Сообщение IvanLis »

1. Попробуйте запустить файл, который получается после установки (в папке ProgramFiles) от имени администратора. Возможно у программы не хватает прав на какие-либо действия.

2. Проверьте "действительность" всех относительных путей к файлам.
Atom писал(а):Как я могу поставить индикаторы в собраный exe
ставите индикаторы в программу, потом компилируете, собираете инсталятор, устанавливаете и смотрите, что получилось
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Иван, ты меня опередил.
Только что попробовал от админа, все заработало.
Сел сообщить на радостях и вижу твое сообщение.

Видимо БРЕД мауэр не давал создавать папки и файлы на винчестере если не из под админа.
Как с этим бороться. Говорить заказчику чтобы пускался от админа - это последнее дело. Нужно как-то сделать нормально.
Только не предлагайте регистрить прогу у микромягкого и прочие "нереалии".
Последний раз редактировалось Atom 02 мар 2018, 17:46, всего редактировалось 1 раз.
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

В свойствах билдера есть раздел для работы с реестром винды.
Может там чего нужно указать?????
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3700
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2021
Благодарил (а): 3 раза
Поблагодарили: 51 раз
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение dadreamer »

Atom писал(а):После установки моего приложения через Setup в папке ProgramFiles\Моя папка
А почему бы не писать в папку юзера, раз учётка ограниченная?..
User Application Data = C:\Users\User\AppData\Local
Ну, и прочие пути см. в описании к Get System Directory VI.
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Прошу заранее прощения, может немного жестко прозвучит но:

Есть правила которые не мы придумали и не нам их ........
1. Расположение приложения в Program File или Program File (x86).
2. Предложение о создании ярлыка на рабочем столе
3. Открытие программы ПРОСТЫМ двойным нажатием

Пользователь должен:
Подключить оборудование к компу
Поставить дрова
Выполнить Setup (отнажиматься некстами и финишем)
И ВСЕ.
Далее см. три критерия в верху.
Заставлять пользователя лазить по папкам и щелкать галочками я считаю это не этично.
Такое можно делать если прога "для своих".

Вот и спрашиваю совета как к этому приплыть.
Еще раз прошу прощения за резкость, но результат должен быть таким.

Никак не могу в хелпах найти рассказ про настройку раздела Registry в свойствах билдера.
Саму-то хелпу по разделу нашел, но там общеизвестные фразы.
А вот конкретно по моей задачке не подскажите плиз.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3700
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2021
Благодарил (а): 3 раза
Поблагодарили: 51 раз
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение dadreamer »

Atom, вы о чём сейчас?? :shok: Снова невнимательно прочитали?..

Я к тому, что если программа предполагает запуск на компе с ограниченной учётной записью, то она не должна писать файлы "где попало". Для таких вещей есть определённые пути (папки). Это правила хорошего тона от Microsoft.
AndreyDmitriev писал(а):
Kosist писал(а):Уважаемые форумчане!
Подскажите, пожалуйста, как можно записать при помощи :labview: файл (xml) в папку на диске С (в директорию, где находится установленная программа)?
Ну как бы не надо туда писать. Ведь есть же директория %LOCALAPPDATA% - вот туда и надо писать свои файлы.
Путь к этой директории можно получить программно через Get System Directory.vi:
user_pref.png
user_pref.png (11.1 КБ) 4792 просмотра
Если уж так необходимо писать файлы в %PROGRAMFILES%, то самое верное - при инсталляции установить соответствующие права (скажем с помощью Icacls.exe), но лучше так не делать. Вот тут почитайте: Where Should I Write Program Data Instead of Program Files?
Atom писал(а):Прошу заранее прощения, может немного жестко прозвучит но:

Есть правила которые не мы придумали и не нам их ........
1. Расположение приложения в Program File или Program File (x86).
2. Предложение о создании ярлыка на рабочем столе
3. Открытие программы ПРОСТЫМ двойным нажатием
Какое из этих правил нарушает вышеописанный совет? Вообще, что за файлы пишутся через Write to Spreadsheet? Отчёты, логи или что-то подобное?
Atom писал(а):Пользователь должен:
Подключить оборудование к компу
Поставить дрова
Выполнить Setup (отнажиматься некстами и финишем)
И ВСЕ.
Далее см. три критерия в верху.
Заставлять пользователя лазить по папкам и щелкать галочками я считаю это не этично.
Такое можно делать если прога "для своих".
Вроде тоже никак к сабжу не относится. Или я не прав?
Atom писал(а):Никак не могу в хелпах найти рассказ про настройку раздела Registry в свойствах билдера.
Саму-то хелпу по разделу нашел, но там общеизвестные фразы.
А вот конкретно по моей задачке не подскажите плиз.
Что с реестром хотите сделать? Запись в Program Files вы так не активируете. Это политика безопасности Windows.
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Уважаемый, dadreamer.
Рад снова Вас поприветствовать. Ваши советы, мне когда-то неплохо помогли. Спс.

Я наверное немного не корректно написал, но предыдущий мой пост был не про запись файла или создание какой-то из моих внутренних папок (что собственно БМ и блокировал), а про приложение как таковое. И оно не рассчитано на конкретного юзера на компьютере. Просто как всегда одна проблема (блокирование БМ работы Write to Spreadsheet) плавно перетекла в другую смежную проблему. Мое приложение запущенное из под админа работает, а не из под него не работает. И тут уже вопрос не в Write to Spreadsheet, а настройке Installera.
Вот Вы когда ставите (по дефолту) Office - он-же пишется в Program File.
И у меня он тоже пишется где нужно, и все работает, но только из под админа.
Вопрос уже не в Write to Spreadsheet, т. к. дело не в нем (просто Spreadsheet не повезло тем, что на нем проблема вскрылась).
Надеюсь основная мысль понятна.

Ваша мысль мне тоже ясна: приложение - есть приложение, а пользовательские файлы (пусть и нужные для работы приложения) - это пользовательские. Но не хочется раскидывать коротенькие табличные файлы по всему компьютеру. Отчасти это конечно не совсем корректно, но ради десятка килобайтных файлов создавать папку под User-ом ...... И еще есть один основной конфигурационный файл для программы, который тоже может быть модифицирован пользователем (при настройке программы после первого ее запуска), как с ним быть?

Если для вопроса "запуска из под админа" нужно создать новую тему - то давайте.

А еще это окно при старте из под админа "Вы доверяете внести изменения..........." - тоже не гуд.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3700
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2021
Благодарил (а): 3 раза
Поблагодарили: 51 раз
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение dadreamer »

Atom, можно "заставить" экзешник постоянно выкатывать табличку о повышении привилегий (elevation), тогда он будет всё время запускаться из-под админа. Подойдёт?

Ну, или надо разбираться с правами и настраивать их. Просто много вариантов возможно, например, через те же консольные утилиты задать права на директорию для группы пользователей. А что происходит, когда пытаетесь запустить exe из-под простого юзера? Ошибка или вообще ничего не происходит? Или только файлы/папки не создаются рядом с exe?
Atom писал(а):А еще это окно при старте из под админа "Вы доверяете внести изменения..........." - тоже не гуд.
Это UAC, его можно отключить через Панель управления. Но конечный пользователь может и не захотеть отключать.

Хм, а пробовали в настройках инсталлера ставить галочку "Unlock"?
https://forums.ni.com/t5/LabVIEW/set-wi ... -p/2427386 (пара последних постов)
https://forums.ni.com/t5/LabVIEW/Instal ... -p/1511222 (последний пост)
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Насчет привилегий может и подойдет, но если можно попозже.
Сейчас как раз с этими Unlock разбираюсь (пока только теоритически) то есть читаю.

Если НЕ из под админа:
При первом старте программы у меня заложено создание на диске (в Program File (x86) \ Мой прект\ ...) трех папок (для разных задач) для табличных файлов.
Естественно папки не создаются, программа запускается нормально.
В программе создаю название файла и по нажатию кнопки "Сохранить" (в этот момент происходит вызов процедуры Write to Spreedsheet File) выскакивает обыкновенное окно для выбора файла для записи. Т. е. брендмауэр заблокировал запись на диск от Write to Spreedsheet File. Я так думаю он просто отрезал приход данных (у меня эти данные точно формируются) о пути куда нужно записать файл, и процедура открыла окно выбора. Если в этом окне выберешь "отмена", то выскочит 43 ошибка (все четко как в хелпах про Write to Spreedsheet File).

Я знаю что это UAC, но выглядит некрасиво и угрожающе :D

А Unlock (запутался галочка должна стоять или нет) нужно для свойств моего exe указывать?

С манифестами еще какая-то заморочка есть, для UAC.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3700
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2021
Благодарил (а): 3 раза
Поблагодарили: 51 раз
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение dadreamer »

Atom писал(а):Я знаю что это UAC, но выглядит некрасиво и угрожающе :D
Тут мало что можно сделать. В 7-ке можно было переключить параметр в реестре, после этого нужна была перезагрузка. В более поздних ОСях не проверял. Это, по идее, не хорошо и не правильно, отключать UAC без уведомления пользователя. Может, у него это единственная защита в системе. Да всякое бывает...
Atom писал(а):А Unlock (запутался галочка должна стоять или нет) нужно для свойств моего exe указывать?
Легко запомнить - Unlock переводится как "разблокировать". Ставите Unlock на тех папках и файлах, куда ваша программа должна иметь доступ при работе из-под обычного пользователя (запись, создание).

Насчёт брандмауэра, это маленько перебор :D Брандмауэр (он же фаерволл) следит за сетевой активностью и управляет доступом к портам и сетевым адресам. К системным событиям он отношения не имеет. Блокировать доступ может Защитник Windows, если посчитает, что файл представляет угрозу. Но скорее всего у вас даже проще: у пользователя не хватает прав на доступ к объекту и системная функция выдаёт соответствующую ошибку, :labview: её анализирует и предлагает выбрать другой каталог.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5198
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 21 раз
Поблагодарили: 42 раза

Re: EXE работает, а оно-же после инстала не работает

Сообщение IvanLis »

Я с Windows давно не копался, но используя логику Linux, необходимо:
1. Создать нового пользователя в системе
2. Инсталировать программу от его имени, соответственно он будет владельцем папки
3. Запускать программу от имени пользователя
------------- либо -------------
1. Установить программу
2. Создать нового пользователя в системе
3. Дать права пользователю на допуск к папке (и вложенным файлам) в которую была установлена
4. Запускать программу от имени пользователя

--------------------------------------

Ну а вообще Вам правильно советуют.
Программа, программой.
А все пользовательские файлы можно писать в папку пользователя.
Atom
advanced
advanced
Сообщения: 196
Зарегистрирован: 01 ноя 2009, 23:18
Версия LabVIEW: 2010
Откуда: Москва
Контактная информация:

Re: EXE работает, а оно-же после инстала не работает

Сообщение Atom »

Нет, UAC я отключать и не мечтаю, тут Вы правы на 100.

Так папки создаются в момент запуска программы (в инсталлере их нет еще), а файлы в этих папках вообще создаются пользователем по мере надобности.

Но я тут призадумался после прочтения постов которые Вы указали, да и мысль неплохая пришла.
Допустим на компьютере работают несколько пользователей (Петя, Вася, ...). У каждого своя юзер папка.
Приложение ставим в Program File, а пользовательские папки (которые генерит программа) и конфигурационный файл кладем в папку юзера, причем каждому юзеру по комплекту например Users\ПЕТЯ или ВАСЯ \AppData\...\Мой проект\...и тут папки... с файлами для каждого свои. И пусть хоть даже внешний вид программы каждый под себя настраивает.
Да, Да, я помню Вы говорили об этом в своем первом выступлении, червяк у начинал свое движение у меня.

Но я хотел нечто подобное организовать в следующей версии программы, а тут вон как обернулось.

Думаю тему нужно закрывать, очередное Вам :thank:
Нужно немного все взвесить (потому что улучшательствами можно заниматься вечно, а продукт так и не увидит свет) и до встречи в "чайниках" (есть ряд простых вопросов связанных с определением пути к папкам юзеров), но пока тайм-аут.
Переделаю все Spreadsheet-ы на новые Delimited и заодно подумаю.
Еще раз гранд-мерси.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»