===================================================================== AJPapps - Run app on desktop 1.02 Линда Кайе 2010-2019. Посвящается Ариэль ===================================================================== Эта утилита появилась после AJPapps - Private desktops. Она запускает программу на указанном рабочем столе. Это может оказаться полезным для планировщиков и пакетных файлов. Программа работает только в системе Windows NT. История создания ---------------- Ни чего особенного поведать не могу. Просто у меня в AJPapps - Private desktops есть код, который отвечает за запуск оболочки на дополнительном рабочем столе. Я подумала, что было бы полезным написать утилиту, которая бы делала тоже самое, но с любым рабочим столом и с любой программой. Тем более что при этом рабочий стол создаётся автоматически. За основу я взяла программу AJPapps - Run app as... и немного переделала. История изменений ----------------- • 1.00.0000 Первый публичный релиз. • 1.00.0003 [+] Возможность выбора рабочего стола в диалоговом окне. • 1.00.0005 [+] Появились скрипты установки ассоциации с EXE файлами. [+] Двойной щелчок в списке эквивалентен кнопке Ok. • 1.00.0006 [-] При запуске программы от лица другого пользователя, дочерние программы стартовали в оконной станции сервиса, а не пользователя. • 1.00.0011 [-] Исправлены мелкие ошибки. • 1.01.0014 [+] Программа пытается избежать ошибок при запуске дочерних программ на несуществующих рабочих столах и оконных станциях, заранее создавая их. [+] Окно выбора рабочего стола теперь выглядит как в Private Desktops, но не выводит оконные станции, для которых не удалось получить список рабочих столов. • 1.01.0015 [-] При запуске дополнительного модуля, программа не освобождала дескрипторы рабочих столов. • 1.02.0018 [30.09.2019] [+] Небольшой рефакторинг. [-] Теперь при неправильной расстановке кавычек программа не падает со стандартным сообщением об ошибке. [+] Немного переделано сообщение с подсказкой о параметрах командной строки. Зависимости ----------- Для работы этой программы нужны следующие компоненты: • AJPapps - AJPapps support library 1.00 Файл AJPappsSupport0100.DLL • Microsoft Visual Basic Virtual Machine Файл MSVBVM60.DLL Эти компоненты обязательны. Они уже включены в программу установки ^_^ Информация о разработке ----------------------- Язык: Microsoft Visual Basic 6.0 SP6 Платформа: Windows XP Professional SP3 Установка --------- Так как эта утилита не используют ни чего особенного, она упакована в самораспаковывающийся архив, который можно распаковать куда угодно. Архив называется Install.RunAppOnDesktop.EXE и содержит саму утилиту и библиотеку, которую лучше держать в том же каталоге, что и утилиту. Скрипт Install.VBS установит ассоциацию программы с EXE файлами. Таким образом, кликнув EXE файл правой кнопкой мыши в Проводнике, можно выбрать "Run on desktop..." (Вы можете изменить это по своему вкусу, отредактировав скрипт) и получить диалог выбора рабочего стола. Использование ------------- Чтобы посмотреть параметры запуска программы, просто запустите её без параметров ^_^ Обратите внимание, что имя рабочего стола указывается либо само по себе (например, "My Private Desktop"), либо вместе с оконной станцией (например, "White Station\My Private Desktop"). Если оконная станция не указана, то рабочий стол выбирается из оконной станции, установленной для процесса. Если в качестве рабочего стола задать вопросительный знак, программа выведет окно со списком всех рабочих столов, позволяя выбрать, на каком рабочем столе запустить программу. Проблемы при запуске -------------------- В некоторых случаях при попытке запуска дочерней программы может появиться системное сообщение об ошибке вида: "Ошибка инициализации программы". Это может случиться если указан как существующий, так и несуществующий рабочий стол, но чаще всего - во втором случае. Мне не совсем понятны причины такого поведения, но это какая-то проблема с памятью, используемой оболочкой. Она часто случается, когда в системе создано много рабочих столов и оконных станций, а так же запущено много программ в некоторых из них. Кроме моей программы, столкнуться с ней может множество других, например, службы, которые запускаются на отдельном рабочем столе, а так же сервисные утилиты, которые подобным образом изолируют дочерние процессы, например, SSH сервер, запускающий для подключившихся пользователей консоль отдельно от всего остального. По крайней мере я испытываю ту же проблему с Bitvise SSH Server при попытке удалённого входа в систему или запуска SFTP сессии. На данный момент проблема наблюдается только в Windows XP, но по идее ничто не мешает её появиться и в более новых системах. Я не знаю, как с этим бороться. Единственный гарантированный способ - перезагрузка системы. Удаление -------- Удалите папку, куда Вы распаковали утилиту. Больше ни чего удалять не придётся. Если Вы ассоциировали программу с EXE файлами, перед удалением стоит запустить скрипт Uninstall.VBS. Маленький копирайт ------------------ 1. Программа распространяется бесплатно. 2. Вы имеете право распространять её на тех же условиях. 3. При распространении вы не имеете права менять авторство программы, присваивать его себе или каким-либо иным способом искажать его. 4. Разрешено коммерческое использование программы (в офисе, на производстве) за исключением её платного распространения или сдачи в аренду. 5. Программа распространяется как есть. Автор не несёт ответственности за любые трагедии или несчастные случаи, вызванные использованием программы. 6. Вы имеете право использовать ActiveX компоненты, поставляемые с программой, в собственных программах. При этом автор не гарантирует совместимость будущих версий компонентов. 7. Для любого пункта данного соглашения может быть сделано исключение с разрешения автора программы. 8. По любым вопросам, связанным с данной программой, обращайтесь по адресу lindaoneesama@gmail.com Контакты -------- Почта: lindaoneesama@gmail.com Сайт: https://www.lindachan.net