Ответы пользователя по тегу Windows
  • Как в 2017м продвигать десктопное приложение под винду?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    На Хабре можно. С тегом "Я пиарюсь". Условия только почитайте: https://habrahabr.ru/info/help/rules/

    59f995545f1b1260764739.png


    Я бы ещё посоветовал написать в support, чтобы они поточнее описали ограничения на редактирование после публикации. Они есть, но в правилах не описаны.
    Ответ написан
  • Программа не запускается под обычным пользователем. В чем может быть проблема?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Я обычно начинаю с просмотра журналов Windows:

    59f1d568aef9f450810663.png

    потом пускаю в ход procmon от sysinternals
    Ответ написан
    Комментировать
  • Win7, почему долго открывается контекстное меню?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Могу предположить, что у у вас в контекстном меню есть пункты, которых там не было изначально. Особенность некоторых пунктов в том, что их инициализация проводится каждый раз при открытии меню. И иногда этот процесс бывает длительный, особенно, когда в пункте контекстного меню требуется предоставить актуальную информацию. А если это файловая инфа, так это норма с туплением. Надо либо выкинуть часть пунктов либо смириться.
    Если хотите глянуть, что за программы стоят, то могу посоветовать (исключительно предвзятый мой выбор)
    www.door2windows.com/ultimate-windows-context-menu...
    Ответ написан
    3 комментария
  • Дизайн десктопных программ на windows?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Раз вы пришли из web-программирования, то вам будет близка технология WPF и первым качеством, которое я посоветую вам освоить в WPF - это WPF-binding. Грубо и отдалённо напоминает angular-binding. При желании можно увидеть достаточно близкие параллели, фигурные скобки, watchers...
    Я достаточно давно потихоньку пользовался WPF, но как-то всё вынужденно, но как только прочувствовал binding, то возникло ощущение, что открылись глаза. Он, конечно, не без недостатков, но даже то что есть на порядок лучше WinForms.
    Ответ написан
    Комментировать
  • Как узнать WinAPI функцию?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Без подобного понимания я вообще застрял в обучении, и приходится, мягко говоря, туго.
    Кто-то обещал, что будет легко??? Мы тут все окукливаемся и не жалуемся. Привыкайте ))) Добро пожаловать в профессию.

    Ну а по поводу функций, сами они, конечно, не найдутся, но читаете документацию в соответствующем разделе и достигаете результата.

    >> Но опять же,что в поисковой строке на MSDN вводить? X которая делает Y?
    Обычно да. Только нужно иметь верную догадку, что Y делается именно X-ом.

    >> Стандартный ответ будет-читай MSDN
    Ну вы так сразу на всех не ополчайтесь. Обычно такой ответ означает, что вы перешли границы, потому что никто не любит решать задачу за вас. Имейте совесть не просить сделать что-то за вас. Разбивайте вопрос на части и по одному задавайте. Конкретно. Что хотите, что уже сделали, скрины и т.д. Нужно, чтобы была видна ваша работа, тогда участникам будет вам интересно помогать.

    >> Сейчас учу C++
    Вы и не рассчитывайте, что вот прям сейчас у вас что-то и получится ))) Обучение - процесс длительный и итерационный. Разве что с опытом он начинает идти быстрее.

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

    P.S.
    Посоветую из личного опыта - заведите блокнот бумажный/электронный, не важно. Записывайте в него то, что вы узнали и обязательно потом перечитывайте его!!!
    Ответ написан
    Комментировать
  • Есть ли "тестовый репозиторий" для десктопных Windows приложений?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Я пишу десктопное Windows приложение и хочу прислать клиенту тестовую версию
    Такие вопросы должны быть прописаны в договоре. Что предоставляется, на каких этапах. По идее акт приёма-передачи. У вас есть какие-то официальные договорённости или всё на честном слове?
    Ответ написан
    Комментировать
  • Есть ли менеджер команд командной строки?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не могу гадать чем вы пользуетесь кроме cmd.exe на сервере windows, но если сервер с GUI, то могу предложить неплохую программу ConEmu:
    https://conemu.github.io/en/Screenshots.html
    Одни скриншоты чего стоят.
    Однако, если вы считаете, что нужно как-то удобнее работать с текстом, то по своему опыту могу предложить вам попробовать неплохой менеджер буфера обмена - ditto: ditto-cp.sourceforge.net/. Он помнит всю историю (обычно все скрипты/команды проходят через буфер обмена) и можно искать по части кода. Например, я не помню на память команду запуска сборки некоторых проектов мавеном и делаю так:

    0fca0952f2b34d4f82d0d21134dd91fb.png

    Старт mysql:

    825bab285f854ddfa57fdb803e6fcfc8.png

    Остановка mysql на локальном компе:

    44fd188d26c14d7e8e62491409947ef7.png
    Ответ написан
    3 комментария
  • Как запустить приложение в командной строке windows?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    В таких случаях рекомендуют убить профиль: https://productforums.google.com/forum/#!topic/chr...
    В консоль cmd он ничего не выводит, я никогда не наблюдал такого явления, хоть и много раз запускал из консоли.

    8e83fb94c1f041feab0dd4bbc1289fc9.png
    Ответ написан
  • [Решено, Solved] Если linux-комп не в Active Directory, то он не считается компьютером домена?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Проблема решена.
    Вот небольшое расследование.

    Есть два сервера. test-0001/apache,php/Centos 7.2 (нормально аутентифицирует по kerberos) и test-0002/apache,php/OracleLinux 7.2 (сбой аутентификации kerberos).

    Анализ протокола обмена HTTP показал, что «почему-то» web-клиент (IE, FF, Chrome) как один отличают компьютер test-0002 от test-0001. Отличие состоит в том, что ключ аутентификации, которые web-клиент отправляет в качестве авторизации пользователя ооочень сильно отличается «размером»:
    Запрос к test-0002 (сбой аутентификации по Kerberos):
    96706c13d8894210bfe4d0fd2b2516e2.png080ede7e64b0434b9229c520d07af319.png

    Запрос к test-0001 (аутентификация Kerberos выполняется нормально):
    5825189ce16741359c1148fee30b70dd.pngb710650b34bf482d88f77adca35000ff.png

    Давайте всё-таки выясним, почему ключ от test-0002 короче test-0001 ??? Начну с того, что формат ключа - ASN.1 (если интересно, то гляньте https://ru.wikipedia.org/wiki/ASN.1 ). В инете есть просмотрщик этого формата:
    https://lapo.it/asn1js
    Анализ ключа в запросе от test-0002:
    1ceee5434ef44a08b17cee123e5ba515.png
    1. NEGOEX – насколько я понял именно этот формат обеспечивает «объединение» нескольких аутентификаторов одного и того же пользователя в разных протоколах. В данном ключе вложен только протокол NTLM
    2. Данные для протокола NTLM (который не поддерживается компонентом apache mod_auth_gssapi).

    Анализ ключа в запросе к test-0001:
    573bbcfea2e64351a1a27e4db461d303.png
    Как видим во втором ключе уже присутствует протокол Kerberos!!! Занятно! Т.е. проблема для test-0002 не на стороне сервера, раз клиент сразу не отдаёт ему ключ правильного формата!

    Хм. А давайте-ка посмотрим в журнал windows?
    c7d2f48555b348cdb239d1b40e36af8b.png

    0x7 KDC_ERR_S_PRINCIPAL_UNKNOWN
    0x19 KDC_ERR_PREAUTH_REQUIRED

    Опаньки! Это что такое??? Какая-то проблема с принципалом? И почему только с test-0002? (Записей, указывающих на другой компьютер, например, test-0001 не найдено). Получается, что браузер до ответа на запрос серверу уже что-то «подозревает», раз не отдаёт ему нужный ключ (ОЧЕНЬ БОЛЬШАЯ ПРОСЬБА: ЕСЛИ КТО-ТО ПОНИМАЕТ ПРОЦЕСС, КАК БРАУЗЕР ПРИНИМАЕТ РЕШЕНИЕ КАК СОЗДАТЬ КЛЮЧ ДЛЯ АУТЕНТИФИКАЦИИ - РАССКАЖИТЕ МНЕ НЕМНОГО ОБ ЭТОМ!!!).
    Если порыться в интернете, то вопросов по этой ошибке много (https://www.google.ru/search?q=KDC_ERR_S_PRINCIPAL...), но в основном они без ответа. Тупик? Ничего подобного! Давайте глянем в документацию Microsoft по поводу SPN: https://msdn.microsoft.com/en-us/library/ms677949%...
    b5334963f38a4f9ca87c087db77ed639.png
    Т.е. spn моего сервиса должен быть зарегистрирован только в одном аккаунте. ЗАПОМНИМ ЭТО!!! И вот ещё один интересный момент: https://msdn.microsoft.com/en-us/library/ms677601%...
    6545dfe4a1ad44b6acc6577a3163eeb3.png
    Тут написано, что SPN должен быть уникальным. Если он не уникален, то аутентификация даст сбой.

    А вот давайте проверим, а действительно ли SPN для сервера test-0002 уникален? На просторах интернета нашёлся простой скрипт powershell, который после небольшой модификации показывает интересующие нас SPN-ы: social.technet.microsoft.com/wiki/contents/article...
    #Set Search
    cls
    $search = New-Object DirectoryServices.DirectorySearcher([ADSI]“”)
    $search.filter = “(servicePrincipalName=HTTP/test-*)”
    $results = $search.Findall()
    
    #list results
    foreach($result in $results)
    {
           $userEntry = $result.GetDirectoryEntry()
           Write-host "Object Name = " $userEntry.name -backgroundcolor "yellow" -foregroundcolor "black"
           Write-host "DN      =      "  $userEntry.distinguishedName
           Write-host "Object Cat. = "  $userEntry.objectCategory
           Write-host "servicePrincipalNames"
           $i=1
           foreach($SPN in $userEntry.servicePrincipalName)
           {
               Write-host "SPN(" $i ")   =      " $SPN       $i+=1
           }
           Write-host ""
    }


    Результат:
    3e67af20a3d041779246cdaeb21598b9.pngWTF???

    ПОЧЕМУ В ДВУХ РАЗНЫХ АККАУНТАХ ОДИН И ТОТ ЖЕ SPN??? (Помните, чуть выше я просил запомнить правило, что spn должен быть уникален и присвоен только одному аккаунту?) Или может быть я что-то неправильно понял? Пойдём дальше и давайте посмотрим атрибуты для учёток test-0002 и test-0001, но не через оснастку AD, а через оснастку ADSI:
    2f16d1f71fcf40779ff6ac36b4824c2f.png
    test-0002 – OK.
    А вот для test-0001 нас ждёт СЮРПРИЗ (удивительно, что сюрприз связан с аккаунтом сервера на котором ВСЁ РАБОТАЕТ!!!):
    a04ac318d20c4844b68b1f7127f8a934.png
    Так, так!!! Оказывается, что spn для сервера test-0002 имеется в AD в двух экземплярах – в учётке test-0002_httpd и в учётке test-0001_httpd ! Чего по документации быть не должно! Вот это и был корень проблемы! Дубликат SPN.
    После удаления дубликата всё заработало!!!

    Всем спасибо за внимание.)))

    P.S.
    Рекомендация для заведения SPN. Нужно использовать команду setspn -S, а не servspn -A, т.к. setspn -S проверяет наличие дубликатов. Очень рекомендую к прочтению статью https://social.technet.microsoft.com/wiki/contents....
    Ответ написан
    Комментировать
  • Почему под Windows 10 форма не выводится поверх всех окон?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не подскажу за дельфи, но для C# есть решение:

    stackoverflow.com/questions/10740346/setforeground...

    Пользуюсь им, работает уже в 99.9999% (при разработке ещё подглючивало, но вот уже несколько месяцев работает на 100%). В основном работаю на 8.1, но на домашней windows 10 глюков с этим методом не было.
    Ответ написан
  • Как поставить на постоянный автокоммит каталог в Windows?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    В принципе поставить watcher можно. Если есть опыт C#, то смотрите FileSystemWatcher. На этой странице даже пример есть. Неплохой, кстати.
    P.S.
    Только смотрите, что эти watcher-ы ждать не будут, пока вы закоммитите. Могут навалить событий воз и маленькая тележка. Но и просто с ходу некоторые темы там туманны. Надо практиковаться.

    P.P.S.
    На всякий случай: https://diff2html.xyz/
    Ответ написан
    Комментировать
  • Как массово удалить символьные иконки (➨,+,★,♥ и т.д.) из имени файла?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Я как-то решал подобную задачу и столкнулся с проблемой, что после переименования могут произойти конфликты, когда имена разных файлов после удаления некоторых символов могут совпасть. В этом случае я делал в excel таблицу исходных имён файлов, переименовывал их в соседний столбец и проверял, что не появились дубликаты (если появлялись, то можно было прямо в excel написать какое должно быть новое имя). Когда добивался нужного результата с отсутствием дубликатов, то на основе таблиц делал BAT-файл поименного переименования файлов. Такой подход гарантирует, что не будет дубликатов и все файлы будут с точно заданными именами и не нужно делать дубликат каталога с файлами (или архив), т.к. размеры таких каталогов могут быть гигантскими и по количеству и по объёму файлов.
    Думаю, что нужно не сразу в лоб переименовывать файлы в каталоге/каталогах а проверять, что после переименования не появится дубликатов. Регулярки, конечно, подойдут, но результат надо проанализировать заранее.
    Ответ написан
    2 комментария
  • Приложение собранное с помощью nw.js не запускается на windows 10. В чем может быть проблема?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Возможно, что сама nw.dll имеет неразрешённые зависимости. Вот список приложений, которые, возможно, помогут вам выяснить, что требуется для загрузки этой dll: https://www.raymond.cc/blog/check-what-dll-or-ocx-...
    Мне в своё время помогала утилитка Dependency Walker. Больше всего нравилась.
    Или посмотрите какие файлы читаются при запуске всего приложения с помощью Procmon.exe
    Ответ написан
  • Как закрыть доступ ко всему кроме одной программы?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно попробовать режим киоска для Windows.
    Ответ написан
    5 комментариев
  • Открыть 80 порт на windows 10?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Посмотрите через tcpview, кто висит на этом порту?
    Ответ написан
    Комментировать
  • Как задать правильный порядок установки обновлений для windows в dism?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Вроде решил задачу. Главное тут скачать все обновления. Для этого нужно сначала установить обновления, потом запустить скрипт: https://keithga.wordpress.com/2014/10/29/offline-p...
    Теперь, когда все обновления скачались, можно уже работать dism-ом:

    1. dism /image:c:\dism\offline /Add-Package /PackagePath:"f:\install\windows\2012.update
    2. dism /unmount-image /mountdir:c:\dism\offline /commit

    Дальше - не имеет отношение к вопросу, но для самой задачи - важно.
    Непредвиденная проблема. Объём install.vim начинает превышать 4GB из-за внедрённых обновлений. Его надо разрезать:

    imagex.exe /split install.wim install.swm 4096 /check

    А сам файл install.vim - удалить. После этого можно делать iso-шку:

    1. copype.cmd amd64 c:\dism\boot
    2. oscdimg -n -m -o -bc:\dism\boot\fwfiles\etfsboot.com c:\dism\iso "F:\install\windows\windows_2012_R2_update.04.iso"
    Ответ написан
  • Существуют ли какие-то решения для «общего буфера обмена» между двумя ПК?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Есть у меня на примете одна програмка - clipboard manager ditto - настоятельно рекомендую:
    ee2e8a6a26ba4c1c9bef4598bdb3f6a4.png
    Ответ написан
    3 комментария
  • Как установить модуль в python 3?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Как знакомо. Я тоже пользуюсь cntlm, но перед ним ставлю fiddler и все запросы направляю через fiddler. Очень хорошо видно, что гуляет через proxy cntlm.
    Ответ написан
    Комментировать
  • Какие есть иерархические блокноты под Windows?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    На чём в итоге остановились?
    Мои комментарии к zim.
    Пару лет им пользуюсь. Накопилось больше 3000 веток. Вроде не тупит. Только при таком количестве веток дико тупит встроенный web-сервер. Но прикольно то, что можно всё можно экспортировать в html и выложить на свой web-сервер. После чего можно ещё и проиндексировать. Недавно техподдержка взяла его на вооружение. Обмен между сотрудниками - через git/gitlab. Сделал им отдельный корпоративный шаблон для экспорта html и хелп по программам кладём через него. Так что вполне достойная вещь. Даже для небольшой корпоративной работы годиться.
    Ответ написан
    Комментировать