Вы должны войти, чтобы создавать сообщения и темы.

ScrUp - Обновление рабочего стола по двойному клику

Всем привет и с Новым годом!

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

Чтобы программа запускалась вместе с Windows, поместите её ярлык в папку "Автозагрузка"

В облаке
http://disk.yandex.ru/d/FPYjvwVZNRX_nQ

Лайкнули Yevhenii, Сибирь и ещё 2
YevheniiСибирьАлександрamazon

Значительно уменьшил размер приложения, ссылка та же

Лайкнул Сибирь
Сибирь

Немного изменён код для оптимизации / сокращения, ссылка та же

Лайкнули Сибирь и amazon
Сибирьamazon

С помощью 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

 

Лайкнул Сибирь
Сибирь

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 (Троица).

disk.yandex.ru/d/it9D79C-AzTkxw

Лайкнули Сибирь и Александр
СибирьАлександр

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).

disk.yandex.ru/d/it9D79C-AzTkxw

Лайкнули Сибирь и ReplaceString
СибирьReplaceString