Задать вопрос
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    Я понял, что мне не нравится MIDL + ncalrpc ))

    Вообще, я надеялся, что есть какая-то C++ библиотека, которая делает ООП на пайпах. То есть, кагбе, COM, но не микрософтовский, а свободный и независимый. Но склейка имени интерфейса и метода в имя глобальной функции… Что-то я думаю, проще вызвать при первом запуске `regsvr32` и далее COM Elevation Moniker (инсталлятора быть не должно как явления, это моя принципиальная позиция). Так хоть полиморфизм будет, и много инстансов одного типа без плясок с pThis.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    VoidVolker,

    Он просто выключается так же один раз — и не будет никаких раздражающих сообщений.


    У юзера-то? Ну вот, я и говорю: юзеры будут в восторге. Чтобы комфортно работать с моим приложением, им понадобится отключать UAC.

    Кроме того, UAC нельзя отключать. Сам с ним мучаюсь, хотя он мне нафиг не нужен. Нельзя, потому что тогда перестанет работать перетаскивание файлов на кнопки таскбара.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    VoidVolker, галочка ставится один раз, а UAC вылезает при каждом запуске. Чего быть не должно. Можно, конечно, создать таску от админа, а запускать её батником или процессом-стартером от простого юзера, и UAC вылезать не будет, но как тогда будет работать pin to taskbar запущенного окна? Запинится ярлык, который будет запускать основной процесс, и делать он это будет не от админа.

    Кроме того, как быть с drag-n-drop'ом? Пишут, что между процессами с разными integrity он невозможен, а от обходного манёвра надо держаться на расстоянии трёхметровой палки:

    https://stackoverflow.com/questions/1171474/drag-d...
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    За MIDL + ncalrpc отдельное спасибо. Его я тоже упустил, но не из-за времени появления, а просто на COM'е пилил в основном dll'ки. Вы прям кладезь ценных знаний.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    Adamos, разберём на конкретном примере.

    Я как-то задал тут вопрос, почему перестали работать LL-хоткеи. Получил ответ: «Попробуй увеличить значение HKCU\Control Panel\Desktop\LowLevelHooksTimeout, вдруг поможет» (и это помогло).

    Когда я получил этот ответ, то открыл regedit, НЕ думая заранее, нужны права для этого ключа или нет. Это нормально, я хочу, чтобы если бы они были не нужны, то я об этом и не думал, а если нужны — то мне один раз был бы показан UAC.

    Но regedit так не умеет. У него в манифесте прописаны права админа, поэтому он при каждом запуске задалбывает меня UAC'ом. Отключить UAC для юзера не вариант.

    Если бы regedit был написан как предлагаете вы, я бы его открыл, пронавигировался до HKCU\Control Panel\Desktop\, прокрутился до LowLevelHooksTimeout, нажал на него, ввёл значение, нажал Enter и… получил бы сообщение «администрировать нужно, осознанно запуская утилиты от админа». Т.е. пришлось бы делать это заново.

    Если кто-то так пишет софт, я им просто не пользуюсь.

    P.S. Я думаю, разницы нет, что брать в пример: работу с реестром или работу с конфигами. Ключи в реестре бывают HKCU/HKLM, а файлы — в юзерской/системной папках. Логика одна и та же. Пример с реестром просто удобнее.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    VoidVolker, может, я чего-то не понимаю, но какой комфорт в том, чтобы принуждать юзера проходить UAC при каждом запуске, если он в принципе не хочет работать с файлами за пределами своего профиля?
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    COM Elevation Moniker придумали уже после того, как я перелез с COM'а, так что я его упустил. Щас пойду читать, спасибо.

    И не мельчи интерфейс, батчи вызовы на список путей — на каталоге с кучей файлов голый RPC на файл сожрёт всю экономию.


    Вообще я хотел сделать виртуальный список + асинхронщину. Допустим, юзер выбрал для показа колонки с хешом, свойствами, вычитываемыми приложениями (например, число слов для текстового редактора), да ещё и обычный стафф, типа попытки прочитать иконку.

    Соответственно, как я это вижу: юзер скрольнул, сгенерировались плейсхолдеры, в сервер отправился набор асинхронных запросов, по мере получения данных от сервера пошли вызовы колбеков, из них все плейсхолдеры заменились реальными данными.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    Adamos, юзер же не виноват, что в МС придумали треш. Поэтому, если не заставлять юзера платить за ошибки Майкрософт, цепочка должна быть такой: «сунулся к файлу, для работы с которым нужны права администратора» — «нажал кнопку в UAC и получил права». И всё.
    Написано
  • Архитектура для приложения, повышающего привилегии?

    @ImagineTables Автор вопроса
    Пользователи будут в восторге.
    Написано
  • Android-смартфон определяется в Windows как неизвестное устройство?

    @ImagineTables
    Я бы начал с того, что на 4pda поискал тему для своей модели телефона и почитал раздел про подключение, там обычно если есть какие-то нюансы, они описаны. Есть ссылки на нужные дрова и т.д.
    Написано
  • Как отучить VLC для Android сохранять обложки из mp3-файлов?

    @ImagineTables
    MX для видео + AIMP для аудио — в связке ещё лучше.

    P.S. Либо блочить Интернет для VLC, через фейковпн.
    P.P.S. Железный дурак говорит, что можно так:
    adb shell cmd netpolicy add restrict-background <package_name>
    Написано
  • Кто-нибудь писал на cpp2? Годится для работы?

    @ImagineTables Автор вопроса
    Читал я это. И хотел сразу написать в вопросе, что, мол, «автор не позиционирует cppfront для конечного использования». Меня интересует практический опыт, если у кого-то есть.

    Теоретически проблем быть не должно, там есть mixed-mode, где даже макросы поддерживаются. А на практике, как обычно, всплывут потом какие-нибудь подводные грабли.
    Написано
  • Кто-нибудь писал на cpp2? Годится для работы?

    @ImagineTables Автор вопроса
    Чукча сам себе начальник ))
    Написано
  • Как сделать автокоммит текстового файла в git при сохранении в Notepad++?

    @ImagineTables Автор вопроса
    Дмитрий, не люблю по таймеру, если есть ивент. P.S. N++ виндовое приложение.
    Написано
  • Как сделать автокоммит текстового файла в git при сохранении в Notepad++?

    @ImagineTables Автор вопроса
    Михаил Лялин, это дневник работы с кодом. «Надо проверить такой-то подход», «Такой-то API работает не так, как описано» и пр. Каждый день десятки записей, иногда приходится перечитывать, ссылки там искать и т.п. Но использовать что-то тяжелее N++ скажется на продуктивности.
    Написано
  • Как сделать автокоммит текстового файла в git при сохранении в Notepad++?

    @ImagineTables Автор вопроса
    Запостил свою версию вашего скрипта (асинхронная, не мигает окно) как отдельный ответ.
    Написано
  • Как сделать автокоммит текстового файла в git при сохранении в Notepad++?

    @ImagineTables Автор вопроса
    Работает. Со следующим изменением:

    def is_subfolder_case_insensitive(path, folder):
    	return path.lower().startswith(folder.lower())
    
    def on_save(args):
    	filename = notepad.getBufferFilename(args["bufferID"])
    	file_dir = os.path.dirname(filename)
    
    	expected_folder = r"C:\path\to\folder"
    
    	if not is_subfolder_case_insensitive(filename, expected_folder):
    		return
    …


    Он должен так ДИЧАЙШЕ тормозить? Секунд пять обрабатывается Ctrl+S, пользоваться невозможно.

    Может, это можно пофиксить, если запускать процесс гита и сразу возвращать управление? (Я в Питоне не силён).
    Написано
  • Как сделать автокоммит текстового файла в git при сохранении в Notepad++?

    @ImagineTables Автор вопроса
    Устанавливаешь TortoiseGit и через ПКМ делаешь commit, добавляя комментарий.


    Ну естественно, что из Черепахи, а не из командной строки. Просто сейчас я могу:

    • Добавить текст,
    • Сохранить файл,
    • Убрать текст,
    • Сохранить файл,
    • Закоммитить,
    • Понять, что удалённый текст был важен.

    Хотелось бы сделать цепочку невозможной.
    Написано
  • Как заблокировать входящие по подстроке идентификатора?

    @ImagineTables Автор вопроса
    Была бы у меня локальная база на все случаи жизни — я бы заблочил просто номера.
    Написано