Объявление

Collapse
No announcement yet.

Вопрос разработчикам под винду и дот-нетчикам в частности

Collapse
X
 
  • Filter
  • Время
  • Show
Clear All
new posts

  • #16
    прежде чем что то ломать давайте разберемся зачем это сделано

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

    вывод: сделано это намерено и тот кто это делал позаботился что бы сломать это было трудно.

    мне кажется в вашем случае лучше всего сделать авто логин - но не под админом, а под простым guest. сервис стартовать после логина, под более высокими привилегиями (какие вам там необходимы LOCAL SERVICE, NETWORK, etc.). Таким образом и на компьютере никто ничего не сделает и ваша прога будет иметь достаточно привилегий. И программирования здесь минимум - на события подписываться не надо.

    Comment


    • #17
      Ну, во-первых, никто не спорит, что это очень правильно запретить привязку к какому-либо десктопу до логина.
      Во-вторых, раз уж тема всплыла опять, повторю искходные данные:
      Есть проложение, которое мониторит не-виндовз систему. Это приложение имеет ГУИ, но в основном работает автономно и в случае чего шлет емэйлы админу и юзерам.
      В данный момент запуск программы сидит в автозапуске админа и при попытке "log off" оно, ессно, закрывается, поетому одна сессия админа всегда висит открытой.
      Задача была запускать приложение до логина, и затем, если админ залогинился - привязать его к активному десктопу админа без перезапуска (иначе теряется вся собранная информация).
      Any further suggestions?

      Comment


      • #18
        Сообщение от Andrej
        Any further suggestions?
        Разрезать прогу на два кусочка. Один - сервис.
        Второй - десктопный компоненет, запускающийся из Startup и разговаривающий с первым каким-то образом (способов - вагон и маленькая тележка). Выглядит сложновато, но это самый правильный способ.

        Comment


        • #19
          Разделить программу на два кусочка - конечно правильно.
          Но если программа уже есть и изменить ее нельзя или сложно, то можно прикрутить сервис, который будет ее запускать.

          Мы используем такой самописный сервис. Этот сервис стартует указанные приложения и следит, чтобы они работали. Если приложение по какой-либо причине закрывается, то сервис запускает его заново. Я сейчас еще раз проверил. Сервис auto стартует до логина пользователя и запускает приложение до логина. Приложение работает до логина. Его окно естественно не видно. После логина его окно сразу видно на экране и приложение продолжает работать. При log-off приложение продолжает работать, его окно не видно. После повторного логина его окно опять на экране.

          Так что, это возможно. Если надо, могу поискать исходники этого сервиса и посмотреть как именно он запускает приложение.
          Best wishes, Vladimir.
          If you can't have the best, make the best of what you have.

          Comment


          • #20
            Сообщение от highlander
            Сообщение от Andrej
            Any further suggestions?
            Разрезать прогу на два кусочка. Один - сервис.
            Второй - десктопный компоненет, запускающийся из Startup и разговаривающий с первым каким-то образом (способов - вагон и маленькая тележка). Выглядит сложновато, но это самый правильный способ.
            Хайландер опять "не читал всякий бред", apparently.
            Речь, как я понимаю, шла об уже существующей программе, которую нужно сделать так, чтобы и рыбку съесть, и как сервис пускать.
            Была бы задача написать свою - вопросов бы, надо думать, не было.
            หนึ่งใคร่ครวญเป็นรักร่วมเพศเย็ด

            Comment


            • #21
              Сообщение от highlander
              Разрезать прогу на два кусочка...
              Ну, это и ежу ясно. Такое я уже писал, проблем нет.
              Абрахас прально заметил, что это хозяство уже есть и "serves its purpose".
              С перезапуском при логине была хорошая идея, но не может быть реализована, т.к. прога ведет кучу внутренних щетчиков и даже быстрый перезапуск с сохранением состояния нарушит всю картину.
              Как я говорил выше, хотелось бы просто "re-assign/allocate active desktop", если такое возможно, иначе хай работает как есть.

              Comment


              • #22
                Сообщение от Andrej
                Как я говорил выше, хотелось бы просто "re-assign/allocate active desktop", если такое возможно, иначе хай работает как есть.
                Учитывая то, что в Уиндоуз до сих пор имеются определенные непонятки с тем, сколько десктопов может быть одновременно и какой из них считать активным, такой вариант кажется в некоторой степени маловероятным.

                Comment


                • #23
                  Сообщение от abraxas
                  Хайландер опять "не читал всякий бред", apparently.
                  Хайлендер не занимается костылестроением принципиально.

                  Comment


                  • #24
                    Сообщение от highlander
                    Хайлендер не занимается костылестроением принципиально.
                    Ну, можно конечно мимо пройти с высоко поднятой головой. А можно и попробовать решить проблему

                    Comment


                    • #25
                      Сообщение от Andrej
                      Сообщение от highlander
                      Хайлендер не занимается костылестроением принципиально.
                      Ну, можно конечно мимо пройти с высоко поднятой головой. А можно и попробовать решить проблему
                      Проблема должна решаться правильно. В данной постановке вопроса, когда имеется готовая программа, как я понимаю, без исходников (в смысле - трогать не моги), мониторящая непонятно что непонятно как, решить проблему без костылей невозможно. Более того, стоимость костылестроительства может превысить стоимость написания "правильной" версии исходной программы.

                      Comment


                      • #26
                        Сообщение от highlander
                        Сообщение от Andrej
                        Сообщение от highlander
                        Хайлендер не занимается костылестроением принципиально.
                        Ну, можно конечно мимо пройти с высоко поднятой головой. А можно и попробовать решить проблему
                        Проблема должна решаться правильно. В данной постановке вопроса, когда имеется готовая программа, как я понимаю, без исходников (в смысле - трогать не моги), мониторящая непонятно что непонятно как, решить проблему без костылей невозможно. Более того, стоимость костылестроительства может превысить стоимость написания "правильной" версии исходной программы.
                        Написать простой сервис, следящий за приложением(ями) не должно быть сложно. Описанную проблему он полностью решает. (По крайней мере в моем тесте мои приложения работают так как надо Андрею.) К тому же он все равно нужен, если решать проблему до конца, т.к. приложение может сдохнуть само по себе, сервис это отследит, перезапустит и выдаст сигнал тревоги админу в систему мониторинга. Так что это не костыль, а необходимый компонент системы, если нужна надежность и ранее оповещение о проблемах. Вроде как такие вещи называют умным словом watchdog.
                        Best wishes, Vladimir.
                        If you can't have the best, make the best of what you have.

                        Comment


                        • #27
                          Сообщение от highlander
                          ...программа, как я понимаю, без исходников (в смысле - трогать не моги), мониторящая непонятно что непонятно как...
                          The program is monitoring activity, skewing factors, calculates Larry-Higa ratio for user sessions etc. on the Teradata machine plus activity on MVS. Does it help you? What would you suppose to do with legacy systems? Bugger them off and re-write from scratch? Hmmm, very professional.

                          Comment


                          • #28
                            Сообщение от bvg
                            Написать простой сервис, следящий за приложением(ями) не должно быть сложно. Описанную проблему он полностью решает. (По крайней мере в моем тесте мои приложения работают так как надо Андрею.)
                            Well, not quite. All the counters will be reset if the app gets restarted.

                            Comment


                            • #29
                              Сообщение от Andrej
                              Сообщение от bvg
                              Написать простой сервис, следящий за приложением(ями) не должно быть сложно. Описанную проблему он полностью решает. (По крайней мере в моем тесте мои приложения работают так как надо Андрею.)
                              Well, not quite. All the counters will be reset if the app gets restarted.
                              В случае, если программа работает нормально, то она не перезапускается. Если она помирает из-за своей внутренней баги, то сервис ее запускает заново, но если бы сервиса не было, то все внутренние счетчики были бы потеряны и так, да еще и программа бы не перезапустилась.

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

                              Я сейчас еще раз проверил. Сервис auto стартует до логина пользователя и запускает приложение до логина. Приложение работает до логина. Его окно естественно не видно. После логина его окно сразу видно на экране и приложение продолжает работать. При log-off приложение продолжает работать, его окно не видно. После повторного логина его окно опять на экране.
                              Разве это не то, что тебе надо?
                              Best wishes, Vladimir.
                              If you can't have the best, make the best of what you have.

                              Comment


                              • #30
                                Сообщение от bvg
                                Я сейчас еще раз проверил. Сервис auto стартует до логина пользователя и запускает приложение до логина. Приложение работает до логина. Его окно естественно не видно. После логина его окно сразу видно на экране и приложение продолжает работать. При log-off приложение продолжает работать, его окно не видно. После повторного логина его окно опять на экране.
                                Разве это не то, что тебе надо?
                                Да, это именно то, что мне надо, чтобы просто стало видно окно при логине.
                                А как это там реализовано? Насколько я понимаю твой сервис манипулирует десктопом как-то.
                                Если не трудно, глянь как это у тебя реализовано?
                                Сорри, не совсем понял твой начальный пост.

                                Comment

                                Working...
                                X