Задать вопрос
  • Как убрать ошибку с загрузкой компонентов Visual C++ VCBuild.exe?

    @res2001
    Developer, ex-admin
    Установите VS2005 и запускайте сборку из консоли студии, а не из обычного cmd: ссылка на консоль должна быть в меню Пуск в папке со студией.
    Ответ написан
  • Как заставить bat запускаться от имени админа?

    @res2001
    Developer, ex-admin
    С помощью runas привилегии повышаются действительно только для встроенного администратора.
    Ничего страшного в том, что бы его активизировать я не вижу. Хотите подстраховаться - смените ему имя. Конечно нужно назначит нормальный пароль.
    Но сохранять с помощью runas /savecred пароль администратора - это выстрел себе в ногу. С помощью этого сохраненного пароля и runas можно будет любую программу запускать с повышенными привилегиями из-под любого пользователя. Этим вы сделаете большую дыру в безопасности сети.

    На самом деле не очень понятна цель этого мероприятия - вы меняете IP адрес. Зачем? Чувствую, что, то что вы хотите добиться, должно быть сделано по другому. Варианты:
    1. Сделайте 2 IP на одном интерфейсе и пусть они всегда будут.
    2. Организовать доступ в 172.16.11 подсеть через промежуточный шлюз, на котором в зависимости от некоторых условий можно разрешать доступ или нет.
    3. Можно запускать netsh удаленно с админскими привилегиями, запускать, конечно должен админ, а не пользователь. Если у вас есть АД, то доменный админ может это делать, если АД нет, то на пользовательском компе нужно выставить ключ в реестре:
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
    Этот ключ позволяет при сетевом доступе с админскими правами автоматически повышать привилегии. Локальных пользователей и их привилегии это не затрагивает.

    Более конкретно можно будет сказать, если вы опишите цель смены IP.
    Ответ написан
    5 комментариев
  • Как рекурсивно заархивировать каждый файл?

    @res2001
    Developer, ex-admin
    В предположении, что все папки находятся в одном корневом каталоге (в примере c:\tmp), то примерно так будет:
    @echo off
    set "source_dir=c:\tmp"
    for /f "tokens=* delims=" %%a in ('dir /s/b "%source_dir%\*" ') do (
      rar a "%%~dpna" "%%~fa"
      del /f/q "%%~fa"
    )

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

    В вопросе ничего не сказано куда записывать архивы. Если их записывать туда же, где были исходные файлы, то при повторном вызове скрипта будет конфликт. Нужно предусмотреть пропуск архивных файлов.
    Ответ написан
    Комментировать
  • Какой сборник книг выбрать для изучения элементарной математики (7-11 класс)?

    @res2001
    Developer, ex-admin
    Школьные учебники достаточно хороши для этой цели, когда их используют по назначению, а не как обычно.
    Берите любой из используемых сегодня в школах.
    Основа - это сам учебник, а остальные задачники и прочее можно рассматривать как дополнение к учебнику, если вам нужно больше задач или задачи посложнее.
    Ответ написан
  • Как перезапустить зависшую службу печати без перезапуска сервера?

    @res2001
    Developer, ex-admin
    Если спулер завис и не реагирует убейте его процесс (spool.exe). Затем стартуйте его любым способом.
    Вообще спулер чаще всего глючит из-за проблемных драйверов принтеров, ищите корень проблемы тут.
    Неоднократно сам сталкивался с подобным. Убийство спулера никаких проблем обычно не вызывает - он итак уже не работает.
    Нужно вычислить проблемный драйвер, чаще всего это что-то из последнего установленного. Для начала удалите принтер вместе с драйвером и посмотрите на поведение спулера, если он начнет работать нормально, значит дело именно в этом драйвере. Можно найти у производителя новую версию драйвера с исправленными проблемами или поискать какой-то подходящий драйвер, входящий в состав винды.
    Сталкивался с ситуацией, когда новая версия драйвера от производителя имеет какие-то проблемы, из-за чего приходилось откатываться на предыдущую. Поэтому всегда держал заведомо рабочую проверенную версию драйвера и последнюю.
    Ответ написан
    Комментировать
  • Программа для удаленного выполнения разных задач?

    @res2001
    Developer, ex-admin
    Добавлю, что стандартными средствами из командных файлов можно выполнять удаленные команды с помощью wmic:
    wmic /node:"servername" process call create "notepad.exe"
    Все это работает при наличии администраторских прав на удаленные ПК.
    https://habr.com/company/pc-administrator/blog/342428/
    Ответ написан
    Комментировать
  • На что расходуется оперативная память Windows 10?

    @res2001
    Developer, ex-admin
    Все версии винды после ХР автоматически кэшируют много чего, большое количество памяти расходуется на этот кэш. Размер кэша можно посмотреть в Task Manager на закладке Perfomance в разделе Memory, в процессах и деталях его нет.
    У вас памяти и так-то впритык - 2Гб.
    Так что ни чего неожиданного нет.
    Если в целом производительность вас устраивает - значит система работает нормально.
    Ответ написан
    Комментировать
  • Как поделить флешку на два раздела с grub2 и ntfs?

    @res2001
    Developer, ex-admin
    1.На сколько я знаю в прошлых версиях винды скрытие разделов происходило просто указанием их в таблице разделов не на первом месте, т.е. с флэшки отображался только первый раздел (о чем по ссылке Ezhyg то же пишут).
    В ВИн10 после какого-то большого обновления это убрали и теперь на флэшке видны все разделы.
    2.В логических разделах нет смысла, когда на диске до 4 разделов.
    3.Загрузка UEFI и Legacy BIOS осуществляется с помощью разных механизмов.
    3.1.UEFI для загрузки использует EFI раздел на диске и размещенные в этом разделе загрузочные *.efi файлы.
    EFI раздел - это раздел с файловой системой FAT16 или FAT32. Загрузочные efi файлы должны лежать в строго определенном месте в файловой системе, где их ищет UEFI.
    3.2.Legacy boot - использует старый механизм MBR (master boot record). MBR - это нулевой сектор на диске. Для того что бы это работало нужно какой-то из разделов сделать активным, этот раздел не может быть логическим, только основным. Именно с активного раздела происходит дальнейшая загрузка ОС. Кроме этого на диск нужно записать MBR - некий код, который осуществляет дальнейшую загрузку. MBR записывается в 0 сектор диска, он не является частью файловой системы (т.е. его нельзя записать скопировав куда-нибудь файл), для его записи необходим спец. софт. У груба есть свой MBR, у винды - свой, и т.д.
    4.Загрузку с флэшки и в UEFI и в legacy режиме успешно решают многие. Например есть диагностическая сборка WinPE, где это решено. Для разбиения диска, записи MBR и т.п. действий там используется утилита bootice. Можете скачать архив с adminpe, там есть инструкция как сделать загрузочную флэшку с несколькими разделами и там по моему то же используется grub.
    Кстати, в bootice было удобно скрывать разделы - там это реализовано одной кнопкой - она просто переписывавет таблицу разделов, где разделы указаны в нужном порядке. Правда сейчас это уже не актуально.
    Ответ написан
    Комментировать
  • Как получить hmodule ресурса?

    @res2001
    Developer, ex-admin
    Надергал из своего старого проекта вызовов для чтения ресурса.
    Правда у меня ресурсы были текстовые, но суть от этого не меняется.
    HMODULE hModule = GetModuleHandle(NULL);
    HRSRC hResInfo = FindResourceA(hModule, MAKEINTRESOURCEA(IDR_README1), MAKEINTRESOURCEA(READMETXT));
    HGLOBAL hResource = LoadResource(hModule, hResInfo);
    DWORD nSize = SizeofResource(hModule, hResInfo);
    LPVOID resource = LockResource(hResource);

    После LockResource получаете указатель на байтовый массив вашего ресурса, дальше делайте с ним что хотите.
    В примере IDR_README1 и READMETXT - идентификатор ресурса из rc файла.
    Вызовы расположены в реальном порядке, как есть в проекте.
    Ответ написан
    Комментировать
  • Как в bat-скрипте сделать echo побуквенно и в одну строчку? То есть, сделать так, будто комп сам что-то пишет в консоли?

    @res2001
    Developer, ex-admin
    Тут основная проблема - вывести строку без перевода каретки.
    Это можно сделать с помощью такой конструкции:
    0<Nul Set /p "Wake Up Neo: "
    echo.other text

    Дальше выводите таким образом текст по буквенно, между командами вставляете небольшую паузу с помощью timeout или ping.
    Для универсальности можно сделать процедуру, которая бы разбивала переданную в параметре строку на символы и выводила с таким эффектом.
    Ответ написан
    Комментировать
  • Смена скорости с 1гб/с на 100мб/с?

    @res2001
    Developer, ex-admin
    Что делаете, что бы восстановить гигабит?

    Проблемы могут быть на любом участке между компом и свичем:
    1. дохнет или глючит свич/порт в свиче;
    2. сетевой адаптер компа (но вы уже меняли на другой, так что это видимо не оно)
    3. плохой контакт в одном из патчкордов, разъемов, розеток
    4. кривые драйвера сетевого адаптера.

    Что можно предпринять:
    1.Найдите свежие драйвера для сетевого адаптера и переустановите
    2.Замените патчкорды, которые сможете.
    3.Переткните в другой порт на свиче, а лучше - в другой свич.
    4. Для подключения компа используйте другую розетку

    В качестве эксперимента: воткните этот комп на прямую в свич одним кабелем (чтоб не было лишних стыков, так вы проверите исправность кабеля от розетки до патч-панели); воткните в этот порт свича другой комп, у которого не было ранее такой проблемы.
    Возможно результаты этих действий помогут выявить причину проблемы.
    Ответ написан
  • C - Как в массиве найти наибольшую подпоследовательность полных квадратов?

    @res2001
    Developer, ex-admin
    1. 2 - потому что вы делаете k = 1, когда последовательность кончается. Делайте k = 0 - будет 1.
    И уберите условие - оно совершенно лишнее.
    else
                {
                        k = 0;
                }


    2.На мой взгляд вычислять является ли число полным квадратом таким образом нельзя - как минимум, потому что сравнивать вещественные числа напрямую - плохая идея. Почитайте для затравки, например тут.
    Я бы сделал как-то так:
    double v = sqrt(arrayName[i]);
    double v1 = floor(v);
    if((v - v1) < 0.000001)
    {
    // число- полный квадрат
    }

    Константу 0.000001 - я выбрал наугад, как достаточно маленькую для вашего случая.
    Вообще вопрос сравнения вещественных чисел - отдельная тема, представленный выше подход, лишь один из вариантов, не самый лучший, но в вашем случае работать будет.
    Ответ написан
  • Можете посоветовать IDE под C/C++ как CLion (с возможностью подключения MinGW) под 32 бита (x86)?

    @res2001
    Developer, ex-admin
    Eclipse CDT
    Ответ написан
    Комментировать
  • Как быстро очистить корзину (1.000.000+ файлов) Windows 10?

    @res2001
    Developer, ex-admin
    Попробуйте из командной строки удалять командой
    del /f/q *
    Я временные папки всегда так чищу (там обычно скапливается куча файлов) - она работает на порядок быстрее, чем проводник.
    Удобно запускать команды оболочки из какого-либо файлового менеджера, из Far manager например.
    Ответ написан
    1 комментарий
  • C - Как объединить две последовательности (массива) в один без повторения чисел?

    @res2001
    Developer, ex-admin
    С помощью конструкции:
    return sizeof(arrayName) / sizeof(arrayName[0]);
    вы не получите размер массива для динамических массивов, это работает только для статических, когда компилятору заранее известен размер массива. Операция sizeof() - исполняется во время компиляции.
    Вы должны вручную считать размер массива c и увеличивать его при realloc.
    Ответ написан
    Комментировать
  • Подменить ip при dns-запросе?

    @res2001
    Developer, ex-admin
    Заведите на своем ДНСе зону mail.ru и отвечайте так как вам угодно.
    Ответ написан
  • Почему не компилится код на си с подключением к бд?

    @res2001
    Developer, ex-admin
    Видимо нужно подключать заголовки так:
    #include <mysql/mysql.h>
    Пользуйтесь тегами - невозможно читать.
    Ответ написан
    2 комментария
  • Как экранировать пути в "dir"?

    @res2001
    Developer, ex-admin
    смотри set /?
    set "fulldir=С:\path\to\file.mp3"
    set "fulldir=%fulldir:\=\\%"
    или
    set "fulldir=%fulldir:\=/%"
    Ответ написан
    3 комментария