ScrUp - Обновление рабочего стола по двойному клику
Цитата: dehote9223 от 01.01.2025, 12:57Всем привет и с Новым годом!
Если у вас возникают проблемы с отображением файлов на рабочем столе после загрузки или сохранения из браузера, попробуйте ScrUp
ScrUp обновляет рабочий стол при двойном клике левой кнопки мыши, но только если клик происходит на рабочем столеЧтобы программа запускалась вместе с Windows, поместите её ярлык в папку "Автозагрузка"
Всем привет и с Новым годом!
Если у вас возникают проблемы с отображением файлов на рабочем столе после загрузки или сохранения из браузера, попробуйте ScrUp
ScrUp обновляет рабочий стол при двойном клике левой кнопки мыши, но только если клик происходит на рабочем столе
Чтобы программа запускалась вместе с Windows, поместите её ярлык в папку "Автозагрузка"
Цитата: dehote9223 от 01.01.2025, 19:20Значительно уменьшил размер приложения, ссылка та же
Значительно уменьшил размер приложения, ссылка та же
Цитата: dehote9223 от 06.01.2025, 17:08Немного изменён код для оптимизации / сокращения, ссылка та же
Немного изменён код для оптимизации / сокращения, ссылка та же
Цитата: dehote9223 от 13.02.2025, 17:50С помощью ChatGPT и Grok сделал код для Python
Возможно, кому-нибудь пригодитсяimport ctypes from ctypes import wintypes import win32gui import threading import time WM_LBUTTONDOWN, WH_MOUSE_LL = 0x0201, 14 last_click_time, running = 0, True def low_level_mouse_proc(nCode, wParam, lParam): global last_click_time if nCode >= 0 and wParam == WM_LBUTTONDOWN and time.time() - last_click_time < 0.4: if win32gui.GetClassName(win32gui.GetForegroundWindow()) in ["Progman", "WorkerW"]: ctypes.windll.shell32.SHChangeNotify(0x8000000, 0x1000, None, None) last_click_time = time.time() return ctypes.windll.user32.CallNextHookEx(hook_id, nCode, wParam, lParam) def hook_thread(): global hook_id mouse_callback = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_int, ctypes.c_uint, ctypes.POINTER(ctypes.c_void_p))(low_level_mouse_proc) hook_id = ctypes.windll.user32.SetWindowsHookExW(WH_MOUSE_LL, mouse_callback, None, 0) msg = wintypes.MSG() while running and ctypes.windll.user32.GetMessageW(ctypes.byref(msg), None, 0, 0): ctypes.windll.user32.TranslateMessage(ctypes.byref(msg)) ctypes.windll.user32.DispatchMessageW(ctypes.byref(msg)) ctypes.windll.user32.UnhookWindowsHookEx(hook_id) if __name__ == "__main__": threading.Thread(target=hook_thread, daemon=True).start() try: while running: time.sleep(1) except KeyboardInterrupt: running = False
С помощью ChatGPT и Grok сделал код для Python
Возможно, кому-нибудь пригодится
import ctypes
from ctypes import wintypes
import win32gui
import threading
import time
WM_LBUTTONDOWN, WH_MOUSE_LL = 0x0201, 14
last_click_time, running = 0, True
def low_level_mouse_proc(nCode, wParam, lParam):
global last_click_time
if nCode >= 0 and wParam == WM_LBUTTONDOWN and time.time() - last_click_time < 0.4:
if win32gui.GetClassName(win32gui.GetForegroundWindow()) in ["Progman", "WorkerW"]:
ctypes.windll.shell32.SHChangeNotify(0x8000000, 0x1000, None, None)
last_click_time = time.time()
return ctypes.windll.user32.CallNextHookEx(hook_id, nCode, wParam, lParam)
def hook_thread():
global hook_id
mouse_callback = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_int, ctypes.c_uint, ctypes.POINTER(ctypes.c_void_p))(low_level_mouse_proc)
hook_id = ctypes.windll.user32.SetWindowsHookExW(WH_MOUSE_LL, mouse_callback, None, 0)
msg = wintypes.MSG()
while running and ctypes.windll.user32.GetMessageW(ctypes.byref(msg), None, 0, 0):
ctypes.windll.user32.TranslateMessage(ctypes.byref(msg))
ctypes.windll.user32.DispatchMessageW(ctypes.byref(msg))
ctypes.windll.user32.UnhookWindowsHookEx(hook_id)
if __name__ == "__main__":
threading.Thread(target=hook_thread, daemon=True).start()
try:
while running:
time.sleep(1)
except KeyboardInterrupt:
running = False
Цитата: dehote9223 от 27.08.2026, 16:16ScrUp (Screen Update)
ScrUp — компактная фоновая утилита для Windows, которая позволяет обновлять Рабочий стол двойным кликом левой кнопки мыши (ЛКМ) по пустой области экрана.
Это актуально для пользователей, у которых сохраняемые из браузера картинки, загруженные файлы или созданные документы отображаются на рабочем столе не сразу, требуя ручного обновления через ПКМ.Автозапуск вместе с Windows
Чтобы не запускать программу вручную после каждой перезагрузки компьютера:
Поместите файл ScrUp.exe в постоянную удобную папку (например, C:\Program Files\ScrUp\ или в свою папку с утилитами).Запустите Командную строку (CMD) и выполните команду (заменив путь на свой):
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ScrUp" /t REG_SZ /d "C:\Путь_к_папке\ScrUp.exe" /fЛибо просто нажмите Win + R, введите shell:startup и скопируйте в открывшуюся папку ярлык на файл ScrUp.exe.
Завершение работы
Так как у программы нет интерфейса, для её закрытия выполните в командной строке:
taskkill /f /im ScrUp.exeЛибо завершите процесс ScrUp.exe через Диспетчер задач - вкладка Подробности.
Удаление из автозапуска
Если автозапуск больше не требуется:
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ScrUp" /fВАЖНО
Не забудьте выключить аналогичную функцию обновления рабочего стола двойным кликом в программе Trinity (Троица).
ScrUp (Screen Update)
ScrUp — компактная фоновая утилита для Windows, которая позволяет обновлять Рабочий стол двойным кликом левой кнопки мыши (ЛКМ) по пустой области экрана.
Это актуально для пользователей, у которых сохраняемые из браузера картинки, загруженные файлы или созданные документы отображаются на рабочем столе не сразу, требуя ручного обновления через ПКМ.
Автозапуск вместе с Windows
Чтобы не запускать программу вручную после каждой перезагрузки компьютера:
Поместите файл ScrUp.exe в постоянную удобную папку (например, C:\Program Files\ScrUp\ или в свою папку с утилитами).
Запустите Командную строку (CMD) и выполните команду (заменив путь на свой):
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ScrUp" /t REG_SZ /d "C:\Путь_к_папке\ScrUp.exe" /f
Либо просто нажмите Win + R, введите shell:startup и скопируйте в открывшуюся папку ярлык на файл ScrUp.exe.
Завершение работы
Так как у программы нет интерфейса, для её закрытия выполните в командной строке:
taskkill /f /im ScrUp.exe
Либо завершите процесс ScrUp.exe через Диспетчер задач - вкладка Подробности.
Удаление из автозапуска
Если автозапуск больше не требуется:
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "ScrUp" /f
ВАЖНО
Не забудьте выключить аналогичную функцию обновления рабочего стола двойным кликом в программе Trinity (Троица).
Цитата: dehote9223 от 28.08.2026, 06:10ScrUp Compact (Размер снижен до ~4 КБ)
Размер исполняемого файла уменьшен почти в 4 раза (с 15 КБ до рекордных 4 КБ) благодаря следующим оптимизациям:
1. Исключение рантайма CRT (Zero C-Runtime Dependency):
Программа больше не линкует стандартные библиотеки C/C++.
Задействованы исключительно базовые системные DLL (kernel32.dll, user32.dll, shell32.dll), которые уже загружены в память Windows.2. Кастомная точка входа (mainEntryPoint):
Устранены накладные расходы стандартного загрузчика wWinMain (парсинг аргументов командной строки, инициализация потоков и atexit-хендлеров).3. Чистый Win32 API:
Все строковые операции переведены на встроенные WinAPI-аналоги (lstrcmpiW), что полностью устранило необходимость в libc-функциях.4. Оптимизация бинарного файла:
- LTO (Link-Time Optimization): сквозная оптимизация кода на этапе линковки.
- Dead Code Stripping (--gc-sections): полное удаление неиспользуемых функций и констант.
- Очистка метаданных: удалены отладочные символы (-s), таблицы раскрутки исключений (-fno-unwind-tables, -fno-asynchronous-unwind-tables) и сигнатуры компилятора (-fno-ident).
ScrUp Compact (Размер снижен до ~4 КБ)
Размер исполняемого файла уменьшен почти в 4 раза (с 15 КБ до рекордных 4 КБ) благодаря следующим оптимизациям:
1. Исключение рантайма CRT (Zero C-Runtime Dependency):
Программа больше не линкует стандартные библиотеки C/C++.
Задействованы исключительно базовые системные DLL (kernel32.dll, user32.dll, shell32.dll), которые уже загружены в память Windows.
2. Кастомная точка входа (mainEntryPoint):
Устранены накладные расходы стандартного загрузчика wWinMain (парсинг аргументов командной строки, инициализация потоков и atexit-хендлеров).
3. Чистый Win32 API:
Все строковые операции переведены на встроенные WinAPI-аналоги (lstrcmpiW), что полностью устранило необходимость в libc-функциях.
4. Оптимизация бинарного файла:
- LTO (Link-Time Optimization): сквозная оптимизация кода на этапе линковки.
- Dead Code Stripping (--gc-sections): полное удаление неиспользуемых функций и констант.
- Очистка метаданных: удалены отладочные символы (-s), таблицы раскрутки исключений (-fno-unwind-tables, -fno-asynchronous-unwind-tables) и сигнатуры компилятора (-fno-ident).