SmartRebooteR для работы с портативными программами
Цитата: Никита от 25.06.2021, 12:19Цитата: Яр от 25.06.2021, 11:50Всем привет.
Вопрос возник: а как быть с программами, у которых при работе происходит запуск нескольких утилит/процессов?
Например, набор утилит Glary Utilities и другие подобные. При запуске утилит из главного окна, каждая из них запускается отдельным процессом.
Прав Adler — нужен способ вычленять дочерние процессы, причём, в два уровня глубины, т.е.: поиск дочернего процесса ланчера + дочерние процессы, запускаемые через главное окно программы.
Только что проверил, если завершить главный процесс, соответственно, завершит свою работу и ланчер, но утилиты при этом продолжают исполняться.Здравия!
Проверь с этой версией.
Сделал, как подсказал Adler + Добавил завершение дочерних процессов от дочерних процессов лаунчера (спасибо за подсказки)..
В файле Apps.ini нет нужды (можно удалять).. Перетаскивайте только исполняемый файл ланчера..
[spoiler title="Скрины"]
[/spoiler]
Цитата: Яр от 25.06.2021, 11:50Всем привет.
Вопрос возник: а как быть с программами, у которых при работе происходит запуск нескольких утилит/процессов?
Например, набор утилит Glary Utilities и другие подобные. При запуске утилит из главного окна, каждая из них запускается отдельным процессом.
Прав Adler — нужен способ вычленять дочерние процессы, причём, в два уровня глубины, т.е.: поиск дочернего процесса ланчера + дочерние процессы, запускаемые через главное окно программы.
Только что проверил, если завершить главный процесс, соответственно, завершит свою работу и ланчер, но утилиты при этом продолжают исполняться.
Здравия!
Проверь с этой версией.
Сделал, как подсказал Adler + Добавил завершение дочерних процессов от дочерних процессов лаунчера (спасибо за подсказки)..
В файле Apps.ini нет нужды (можно удалять).. Перетаскивайте только исполняемый файл ланчера..


Цитата: Антон от 25.06.2021, 12:48Никита, привет!
А по какой причине программа может вообще не запуститься?) Добавил на панель как у тебя в видео, при нажатии - панель сверху не появляется, в процессах появляется RebooteR и подпроцесс Form1 и сразу пропадает. И все на этом. 20H2 631
Никита, привет!
А по какой причине программа может вообще не запуститься?) Добавил на панель как у тебя в видео, при нажатии - панель сверху не появляется, в процессах появляется RebooteR и подпроцесс Form1 и сразу пропадает. И все на этом. 20H2 631
Цитата: ЯR от 25.06.2021, 12:52Подтверждаю — не запускается.
Подтверждаю — не запускается.
Цитата: Adler от 25.06.2021, 13:26У меня запускается и между двумя формами переключается. Что там дальше не проверял, ибо не на чем и незачем.
P.S. Зачем там нужны две формы и кнопка для Drag&Drop мне непонятно.
У меня запускается и между двумя формами переключается. Что там дальше не проверял, ибо не на чем и незачем.
P.S. Зачем там нужны две формы и кнопка для Drag&Drop мне непонятно.
Цитата: Никита от 25.06.2021, 13:45Привет, Антон
Причина в разрешении экрана скорее всего.
Делал для full hd.. в правый нижний угол минус 1300 пикселей влево. Чтобы была в левом нижнем. Если не full hd монитор, то нужно посмотреть, как привязку сделать к левому углу.. сейчас сяду, гляну
Привет, Антон
Причина в разрешении экрана скорее всего.
Делал для full hd.. в правый нижний угол минус 1300 пикселей влево. Чтобы была в левом нижнем. Если не full hd монитор, то нужно посмотреть, как привязку сделать к левому углу.. сейчас сяду, гляну
Цитата: Никита от 25.06.2021, 13:47Цитата: Adler от 25.06.2021, 13:26У меня запускается и между двумя формами переключается. Что там дальше не проверял, ибо не на чем и незачем.
P.S. Зачем там нужны две формы и кнопка для Drag&Drop мне непонятно.Чтобы руками не писать в .ini название исполняемого файла , сделал чтобы можно было перетащить исполняемый файл на эту форму и он пропишется в .ini файле
Цитата: Adler от 25.06.2021, 13:26У меня запускается и между двумя формами переключается. Что там дальше не проверял, ибо не на чем и незачем.
P.S. Зачем там нужны две формы и кнопка для Drag&Drop мне непонятно.
Чтобы руками не писать в .ini название исполняемого файла , сделал чтобы можно было перетащить исполняемый файл на эту форму и он пропишется в .ini файле
Цитата: Антон от 25.06.2021, 13:51Цитата: Никита от 25.06.2021, 13:45Привет, Антон
Причина в разрешении экрана скорее всего.
Делал для full hd.. в правый нижний угол минус 1300 пикселей влево. Чтобы была в левом нижнем. Если не full hd монитор, то нужно посмотреть, как привязку сделать к левому углу.. сейчас сяду, гляну1366х768 ноутбук
Цитата: Никита от 25.06.2021, 13:45Привет, Антон
Причина в разрешении экрана скорее всего.
Делал для full hd.. в правый нижний угол минус 1300 пикселей влево. Чтобы была в левом нижнем. Если не full hd монитор, то нужно посмотреть, как привязку сделать к левому углу.. сейчас сяду, гляну
1366х768 ноутбук
Цитата: Adler от 25.06.2021, 13:53Цитата: Никита от 25.06.2021, 13:47Чтобы руками не писать в .ini название исполняемого файла , сделал чтобы можно было перетащить исполняемый файл на эту форму и он пропишется в .ini файле
Ну так можно D&D привязать прямо к основной форме, без каких либо кнопок, которая к тому же еще и нажимается не вызывая никаких действий.
Ну или сделать ее "Drag&Drop or Open" и при нажатии открывать OpenFileDialog.
Цитата: Никита от 25.06.2021, 13:47Чтобы руками не писать в .ini название исполняемого файла , сделал чтобы можно было перетащить исполняемый файл на эту форму и он пропишется в .ini файле
Ну так можно D&D привязать прямо к основной форме, без каких либо кнопок, которая к тому же еще и нажимается не вызывая никаких действий.
Ну или сделать ее "Drag&Drop or Open" и при нажатии открывать OpenFileDialog.
Цитата: Юрий от 25.06.2021, 14:21Всем привет!
Никита, у меня есть вопрос (идея), а нельзя ваш лаунчер привязать к системным кнопкам. Идея работы в следующем, если в лаунчере имеются вложенные портабл, то запускается ваша программа и отрабатывает, если нет то работают кнопки в стандартном режиме, вот как то так?
Всем привет!
Никита, у меня есть вопрос (идея), а нельзя ваш лаунчер привязать к системным кнопкам 
Цитата: Adler от 25.06.2021, 14:22Определить разрешение можно так:
[spoiler title="Код"]public static class DesktopScreen { [DllImport("user32.dll")] private static extern IntPtr GetDC(IntPtr hWnd); [DllImport("gdi32.dll")] private static extern int GetDeviceCaps(IntPtr hdc, int nIndex); private const int DESKTOPHORZRES = 118; private const int DESKTOPVERTRES = 117; static DesktopScreen() { IntPtr hdc = GetDC(IntPtr.Zero); Width = GetDeviceCaps(hdc, DESKTOPHORZRES); Height = GetDeviceCaps(hdc, DESKTOPVERTRES); } public static int Width { get; private set; } public static int Height { get; private set; } }Потом соответственно используйте:
DesktopScreen.Height DesktopScreen.Width[/spoiler]
и расчитывайте нужное положение окна.
Определить разрешение можно так:
public static class DesktopScreen
{
[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hWnd);
[DllImport("gdi32.dll")]
private static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
private const int DESKTOPHORZRES = 118;
private const int DESKTOPVERTRES = 117;
static DesktopScreen()
{
IntPtr hdc = GetDC(IntPtr.Zero);
Width = GetDeviceCaps(hdc, DESKTOPHORZRES);
Height = GetDeviceCaps(hdc, DESKTOPVERTRES);
}
public static int Width { get; private set; }
public static int Height { get; private set; }
}
Потом соответственно используйте:
DesktopScreen.Height DesktopScreen.Width
и расчитывайте нужное положение окна.
Цитата: Никита от 25.06.2021, 14:43Адлер, сделал вот так и теперь на любом разрешении слева в углу стартует.. но ХЗ на сколько это по фен-шую)
[spoiler title="Код"]Rectangle workingArea = Screen.GetWorkingArea(this);[/spoiler]
this.Location = new Point(0 + 5, workingArea.Bottom - Size.Height - 5);Антон, сделал для всех разрешений экрана..
Можно скачать тут.
Так же перетаскивание работает на всю форму.
[spoiler title="gif"][/spoiler]
Адлер, сделал вот так и теперь на любом разрешении слева в углу стартует.. но ХЗ на сколько это по фен-шую)
СкопированоRectangle workingArea = Screen.GetWorkingArea(this);
this.Location = new Point(0 + 5, workingArea.Bottom - Size.Height - 5);Антон, сделал для всех разрешений экрана..
Можно скачать тут.
Так же перетаскивание работает на всю форму.

Цитата: Антон от 25.06.2021, 14:58Никита, все работает - буду тестировать)
Спасибо за программу!
Никита, все работает - буду тестировать)
Спасибо за программу!
Цитата: Никита от 25.06.2021, 17:15Цитата: Юрий от 25.06.2021, 14:21Всем привет!
Никита, у меня есть вопрос (идея), а нельзя ваш лаунчер привязать к системным кнопкам. Идея работы в следующем, если в лаунчере имеются вложенные портабл, то запускается ваша программа и отрабатывает, если нет то работают кнопки в стандартном режиме, вот как то так?
Привет)
Вариант, который я представляю.. Это, как писал Хачатур отслеживать попытку перезагрузки ПК через WinAPI и блокировать перезагрузку и в этот момент запускать мой процесс.. но в таком случае, если я правильно понимаю, то нужно чтобы моя программа всегда работала в фоне и ждала, пока пользователь попробует перезагрузить или выключить ПК..
Если я не прав, поправьте, кто больше понимает)
Цитата: Юрий от 25.06.2021, 14:21Всем привет!
Никита, у меня есть вопрос (идея), а нельзя ваш лаунчер привязать к системным кнопкам. Идея работы в следующем, если в лаунчере имеются вложенные портабл, то запускается ваша программа и отрабатывает, если нет то работают кнопки в стандартном режиме, вот как то так?
Привет)
Вариант, который я представляю.. Это, как писал Хачатур отслеживать попытку перезагрузки ПК через WinAPI и блокировать перезагрузку и в этот момент запускать мой процесс.. но в таком случае, если я правильно понимаю, то нужно чтобы моя программа всегда работала в фоне и ждала, пока пользователь попробует перезагрузить или выключить ПК..
Если я не прав, поправьте, кто больше понимает)
Цитата: Никита от 08.08.2022, 12:41Всем привет!
Обновление.При нажатии на кнопки Выключения и Перезагрузки правой клавишей мыши (Прям, как лицензионное соглашение)
Есть возможность поставить таймер отложенного выключения или перезагрузки
[spoiler title="Скрин"][/spoiler]
В трее появится иконка, при наведении на которую будет видно, сколько секунд осталось до выключения или перезагрузки.
Если нажать правой клавишей по иконке в трее и выбрать "Exit", то отложенная перезагрузка или выключение будут отменены.
[spoiler title="Скрин"][/spoiler]
И добавил удаление директорий при выключении и перезагрузке, если эти директории прописаны в файле Directories.
Всем привет!
Обновление.
При нажатии на кнопки Выключения и Перезагрузки правой клавишей мыши (Прям, как лицензионное соглашение)
Есть возможность поставить таймер отложенного выключения или перезагрузки

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


И добавил удаление директорий при выключении и перезагрузке, если эти директории прописаны в файле Directories.