• Почему rand() не выводит нужное значение от -0.1 до 0.2?

    @res2001
    MIYA112412, По ссылке в примере показан принцип запихивания возвращаемого rand() значения в требуемый диапазон.
    Сама rand() возвращает целое в диапазоне [0; RAND_MAX], где RAND_MAX константа (обычно 0xFFFF, но не обязательно, ее значение не регламентируется стандартом).
    По сути приведение к требуемому диапазону - обычная математика.
    Первое действие rand()/RAND_MAX - приводит возвращаемое значение в диапазон [0;1], приведение типов нужно, чтоб выполнялась операция с плавающей точкой, а не целочисленное деление.
    Отсюда уже очень просто перейти к любому другому диапазону с помощью умножения и сложения.

    Например чтоб получить рандомное значение в диапазоне [10;30]:
    static_cast<int>(10 + static_cast<double>(rand())/RAND_MAX*20)
  • Openvpn tcp режет скорость, как увеличить?

    @res2001
    Скорость канала оператора VPS не показатель, т.к. полно промежуточных узлов со своими каналами и скоростями.
    Проведите тестирование:
    Какую скорость показывает, например, iperf.
    Какая скорость при использовании ssh/scp?
    Если в openvpn использовать UDP скорость будет выше?
  • Как правильно установить C на Windows 10?

    @res2001
    Плюсую.

    Но не совсем согласен по MSVS. Да, микрософт официально стандарты Си не поддерживает, но большая часть стандарта С11 реализована. Не реализованы (или частично реализованы) какие-то не важные или не нужные с точки зрения MS вещи, например VLA (и правильно на мой взгляд) или complex.h (многие не знаю что это есть в стандарте).
    Думаю для проектов ТС реализованного функционала будет вполне достаточно. Так что вполне рекомендую MSVS или Visual Studio Build Tools, как более легковесный вариант (только компилятор и сопутствующие утилиты без IDE). По моему компилятор микрософт наилучшим образом подходит для разработки под винду.

    Конечно, если захочется проверки строго соответствия стандарту Си, то придется выбирать другой компилятор, т.к. микросовтовский просто не умеет это делать.

    WSL - тут придется программировать под линукс, а не под винду. Внутрь линукса в WSL надо будет поставить штатными средствами линукса компилятор и т.п. WSL по сути виртуальная машина с линуксом, но плотно интегрированная в винду, поэтому работает быстро и возможно требует меньше ресурсов, чем типичные гипервизоры типа virtualbox и т.п. Могут быть определенные сложности с GUI приложениями, хотя в последних версиях WSL уже можно получить рабочий стол линукса, но для этого надо предпринимать дополнительные телодвижения, т.к. по умолчанию никакой поддержки GUI нет. Тут вам придется писать программу именно для линукс (потом можете ее запускать на обычном линуксе), WinAPI будет не доступно.

    msys2+mingw/clang - альтернативный вариант. Поддержка компиляторами стандартов Си, возможность использования WinAPI - все присутствует.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов, Если программа заработала в портабельном режиме, то у нее не возникнет проблемы с сохранением проектов. Максимум, что может быть - она не найдет каталог по умолчанию, куда сохраняет проекты. Этот каталог в любом случае можно либо выбрать, либо создать руками, если очень надо. Если программа работает, то я лично не сталкивался с подобной проблемой.

    Основная задача - заставить программу запускаться без установки.

    Собственно установка программы (то что делает инсталлятор) это по сути:
    1. копирование исполняемых файлов программы на диск
    2. возможно создание в реестри каких-то веток и ключей, необходимых для работы программы
    3. возможно создание в файловой системе каких-то дополнительных файлов и каталогов, которые будут использованы программой
    4. Если в программе используются свои COM объекты, то регистрация этих объектов.
    5. Добавление переменных окружения, если нужно.
    6. создание ярлыков в меню пуск и на раб.столи или еще где-то
    7. добавляет в определенную ветку в реестре информацию о том, что была установлена программа, путь куда она была установлена и что надо сделать что бы удалить программу.

    Пункты 1-5 ты можешь сделать вручную без инсталлятора. Если программа не использует 2-5 пункты, то инсталлятор по сути просто распаковывает файлы в каталог на диске и создает ярлык.
    Ты легко можешь это сделать сам. И в этом случае программа не будет считаться установленной в ОС, т.к. ты установил ее руками.
    Именно пункт 7 отвечает за то, что ОС видит, что программа установлена и знает, что надо сделать, чтоб ее удалить. Если его не делать, а сделать все остальное, то программа будет работать вполне корректно, но система не будет знать о том, что она установлена.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов,
    А если следовать точным инструкциям в интернете, не делая что то самому по себе?

    В интернете много разного пишут. Если что-то пойдет не так (а там есть чему пойти не так), ты кому будешь притензии предъявлять? Писателю гаидов?
    В БИОСе нельзя разделить диск на разделы. Так что ты явно плохо представляешь себе, что ты делать собрался.
    но в этом случае как я понял до конца учебного года все мои программы на обеих профилях будут удалены? Если использую портабельный метод?

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

    @res2001
    Джавад Султанов,
    она удалилась с обеих профилей

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

    Но портабельную программу можно запустить вручную (каталог с ее файлами у вас скопирован), открыв папку на диске, где лежит программа, и кликнув на исполняемый файл. Так же можно вручную сделать ярлык на рабочем столе для быстрого запуска.
    На мой взгляд именно этот вариант стоит попробовать, прежде чем производить опасные манипуляции с диском и установкой дополнительной ОС. Устанавливать вторую ОС стоит только если вы хорошо понимаете, что делаете, т.к. есть риск порчи разделов и данных при неправильных действиях. Т.е. есть риск, что комп у вас перестанет загружаться вовсе.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов,
    Можно ли разделить свой ссд на 2 части(виртуальные)

    Диск можно разделить на части, только они не виртуальные. Части диска называются разделы. Именно разделы вы видите в проводнике под буквами дисков. Посмотреть текущую конфигурацию разделов можно в менеджере дисков. Делить на части, теоретически можно тем же менеджером, но лучше использовать какую-либо диагностическую загрузочную флешку, как правило там есть необходимые инструменты для подобных операций. Могу порекомендовать набор adminpe.ru. Сам неоднократно его использовал. Для разбиения можно воспользоваться Acronis Disk Director или чем-нибудь от Paragon, в комплекте оно все есть.
    На счет портабельности. Да, конечно, вам потребуется предпринять некоторые телодвижения, чтоб добиться цели. Я так и думал, что у вас все программы уже установлены, соответственно все упрощается - просто копируете программы в профиль, затем штатно удаляете установленные и пытаетесь запустить из скопированного комплекта. После того как вы штатно удалите программы они перестанут быть видны во втором профиле.
    Как я уже писал - успех не гарантирован, но обычно можно добиться портабельного поведения. Простого копирования может быть не достаточно, но с него можно начать, а дальше разбираться с каждой программой и ее зависимостями.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов, Возможно. Но, если загрузочное меню увидит проверяющий, то это сразу вызовет подозрение у него :-) Увидеть его он сможет, если вы будете включать комп при нем.
    Если есть 2 физических диска в ноуте, то можно 2 ОСи поставить каждую на свой диск. В БИОСе выставить загрузку по умолчанию с диска на котором будут стоять учебные программы, а загрузку ОСи с с дополнительными программами можно выбирать через вызов Boot menu БИОС, обычно для этого в БИОС есть горячая клавиша. Тогда загрузочное меню ОСи можно удалить, т.е. убрать там дополнительный пункт. Как-то так.

    Я бы для начала попробовал вариант с портабельной версией и вторым пользователем.
    Если это нужно для игр, то должно сработать - игрушкам как правило не требуются администраторские права.
    Самый простой вариант:
    1. Устанавливаете программу (игру) как обычно с помощью установщика из-под второго пользователя. Если там есть вариант установки "для одного пользователя" используйте его и при выборе каталога установки укажите каталог в профиле пользователя (скорее всего программа сама выберет какой-то каталог в профиле). И в принципе этого может быть достаточно.
    2. Если варианта установки "для одного пользователя" нет, то устанавливайте как обычно. Запомните каталог куда программа установилась (скорее всего это будет где-то в "c:\Program Files".
    2.1. Копируете каталог с программой в профиль пользователя (можно просто на рабочий стол). Нужно именно скопировать, а не перенести!
    2.2. Штатным образом удаляете программу. Она удалится только из "c:\Program Files".
    2.3. Пробуете запустить программу из профиля. Возможно для правильного запуска надо будет посмотреть куда ссылаются ярлыки штатно установленной программы. Ярлыки можно скопировать из штатно установленных и поправить в них пути запуска.
    Если программа достаточно простая то этих действий может быть достаточно. Игры как правило "простые" не смотря на их размер и всю внутреннюю сложность. Например , WoT я когда-то использовал именно по такой схеме.
    Но возможно, программе требуются какие-то ее ветки в реестре или дополнительные файлы/каталоги в профиле или еще где-то. В принципе это все можно отследить и узнать что программе нужно. Но это уже сложнее. Но все таки есть программы, которые практически не реально сделать портабельными, например MS Office и т.п.
  • Как вывести все слова, в которых 2-ая буква будет "n"?

    @res2001
    Т.к. "n" буква английская, то вам пофигу на все остальные русские бувы.
    Главное, что бы вводимый текст был в однобайтовой кодировке (CP1251, CP866, ...), а не в Unicode.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов,
    но как переключаться между ними?

    В случае второй ОС при загрузке компа у вас появится загрузочное меню с выбором ОС в самом начале загрузки.
    В принципе это не так сильно важно, ведь дома я буду переключаться на основную учетную запись

    Учетная запись не имеет значения, т.к. приложения будут установлены на виртуальный шифрованный диск, то они и запускать будут с него, и работать будут с ним, не зависимо из-под какого пользователя вы запускаете программу.
  • Запуск WScript.exe scr.vbs "%variable%", не экранирует точку. Как экранировать?

    @res2001
    Игорь Mакаров,
    Можно даже без ковычек передавать аргумент

    Можно без кавычек только если эта строка не содержит спец.символов и пробелов.
    я думал все знают как к блокноту добавить свою кнопку в реестре

    Я не знаю
  • Как скрыть приложения на виндовс 11?

    @res2001
    В случае второй ОС при загрузке компа у вас будет загрузочное меню с выбором ОС. Если его увидит проверяющий, то это сразу вызовет подозрение у него :-)
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов,
    не думаю что они сканировать будут

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

    Тут есть нюансы. Обычно установщик приложения запрашивает повышение привилегий (права администратора) в этом случае приложение устанавливается в "c:\Program Files" и пишет информацию о себе в системный раздел реестра. Этот каталог и раздел реестра доступен для записи только администратору, а для чтения всем пользователям. То же самое происходит в некоторых установщиках, когда выбираешь "установить для всех пользователей". Поэтому приложения, установленные таким образом, видны всем пользователям в системе.
    Но бывают приложения, которые можно установить "только для одного пользователя" из-под которого запущен установщик. В этом случае повышение привилегий не требуется и программа устанавливается в профиль этого пользователя, а так же пишет информацию о себе в пользовательский раздел реестра. Профиль пользователя и пользовательский раздел реестра доступен для чтения и записи только этому пользователю и администратору. Другие пользователи не могут видеть ни файлов ни реестра этого пользователя, а значит не увидят и установленных приложений.
    Портабельные программы ведут себя аналогично второму варианту (если их скопировать в профиль пользователя), но не требуют установки.
    можно ли сделать так чтобы этотд= диск был только у второго профиля, а основной диск не был виден?

    Как вы будете работать без физического (основного) диска. Так не бывает.
    Чтоб виртуальный диск был доступен только одному пользователю достаточно положить файл этого диска (виртуальный диск представляет собой просто файл на основном диске) в профиль этого пользователя. В этом случае доступен виртуальный диск будет только этому пользователю и администратору.
    Кстати, если программы, которые вы хотите скрыть активно используют диск, то вариант с виртуальным шифрованным диском плохой, т.к. виртуализация и особенно шифрование сильно понижают пропускную способность дисковых операций (т.е. виртуальный шифрованный диск работает сильно медленнее нормального диска). Но, если виртуальный шифрованный диск разместить на SSD, то возможно просадка в скорости будет вполне приемлемой.
    а что вы думаете насчет того чтобы вторую операционку скачать?

    Только не скачать, а установить вторую опреационную систему.
    Вариант нормальный. Но со своими нюансами.
    На сколько я понимаю, у вас и вторая ОС то же будет винда. В этом случае разделы дисков будут видны от из одной винды в другой. А значит это не спасет от полного сканирования дисков с правами администратора. Можно отключить назначение буквы диска от раздела второй винды, тогда диск второй винды будет не виден в проводнике. Но букву диска, опытный админ, всегда может назначить.
    Набор пользователей в разных ОС будет разный (со своими профилями) и набор установленных приложений будет то же разным. Поэтому простое сканирование через реестр в одной винде не покажет, установленных приложений в другой винде и наоборот.
    Главное вторую ОС устанавливать в отдельный раздел диска, а не поверх первой.
  • Как скрыть приложения на виндовс 11?

    @res2001
    Джавад Султанов,
    но там все равно через видно что приложения есть на диске

    Где видно?
    А как портабельную версию использовать?

    Для начала надо ее найти или самому сделать. Далеко не все приложения могут запускаться без предварительной установки.
    Использовать портабельную версию просто - копируешь папку с приложением и запускаешь исполняемый файл. В портабельной версии отсутствует процедура установки, потому оно и портабельное, т.е. просто перенес с одного компа на другой, запусти и работает.

    Опять же. Даже портабельная версия не спасет от полного сканирования диска с администраторскими правами. Т.к. приложение все равно лежит на диске и администратор может его найти. Но обычный пользователь не сможет найти приложение, если оно лежит в профиле другого пользователя, потому что нет прав на просмотр файлов в чужом профиле.

    Если хочется чтоб совсем-совсем было не видно даже админу. То можно:
    1. портабельную версию приложения архивировать с паролем. Когда надо ее использовать - распаковываешь, пользуешься, удаляешь. Архиватор, конечно, должен быть установлен на компе штатным образом.
    2. Можно использовать виртуальный шифрованный диск. Когда диск смонтирован приложение будет доступно, если диск не смонтирован - не доступно. Сам по себе виртуальный диск представляет обычный файл на физическом диске, а т.к. файл зашифрован, то простыми методами не возможно посмотреть, что находится внутри. Виртуальный диск (vhd, vhdx) вроде бы можно создать стандартными средствами винды и зашифровать его используя BitLocker (то же стандартное средство). Не уверен, что это работает в домашней версии винды. Можно погуглить. Так же есть дополнительный софт типа VeraCrypt для этих целей, но его надо устанавливать, а тебе нельзя. Приложение должно быть установлено на этот виртуальный диск. Если приложение при этом будет портабельным, то вообще никаких хвостов в системе, по идее, не должно быть от приложения.
  • OpenVPN доступ к сайту?

    @res2001
    SteepNET, Это говорит только о том, что соединение установлено. Но при этом фаервол может блокировать трафик внутри ВПН и тогда весь ВПН трафик будет блокироваться. Причем это может делать фаервол как на клиенте так и на сервере.
    Пинги с клиента на сервер и обратно по внутренним ВПН адресам проходят?
  • Запуск WScript.exe scr.vbs "%variable%", не экранирует точку. Как экранировать?

    @res2001
    Вообще в батниках бороться со спец.символами может быть довольно тяжело.
    Но если передавать параметры в VBS, как у автора, то там уже все намного проще, т.к. спец.символа cmd.exe не играют никакой роли в vbs - достаточно взять в кавычки передаваемую строку.
    Например, test_arg.vbs:
    Set objArgs = Wscript.Arguments
    Wscript.Echo objArgs(0)

    cscript //Nologo test_arg.vbs "><=@."
    Результат: ><=@.
  • Запуск WScript.exe scr.vbs "%variable%", не экранирует точку. Как экранировать?

    @res2001
    сергей кузьмин, Если убрать кавычки в echo "%~1" - будет ошибка, из-за спец.символов.
    В этом примере символы <> можно экранировать с помощью ^, т.е. передавать аргумент так: arg_echo.cmd "^>^<=@"
  • Запуск WScript.exe scr.vbs "%variable%", не экранирует точку. Как экранировать?

    @res2001
    Не понятно излагаете.
    Куда стали попадать данные с доменами? В переменную? А до этого какие были данные?
    Кавычки в cmd не экранируют. Они не для этого предназначены.
    Пишет .ru неизвестный формат.

    Какой формат известный?
    Приведите пример правильного содержимого переменной и не правильного.
    Добраться до variable вы можете анализируя параметры полученные scr.vbs.
    Так же можно для теста запускать не scr.vbs, а какой-нибудь простой батник (cmd.exe /c file.bat "%variable%"), который будет выводить полученные параметры. Например такой:
    @echo off
    echo [%*]


    Не понятно, чем вам помешала точка. Точка не является спец.символом cmd, ее не требуется экранировать.
    Как данные попадают в переменную окружения? В принципе переменную окружения можно и не передавать параметром, как батник, так и VBS могут читать переменные окружения встроенными средствами.
  • OpenVPN доступ к сайту?

    @res2001
    SteepNET,
    соединение есть и работает

    Как вы определили, что оно работает?
  • Сколько всего ip адресов в глобальном интернете?

    @res2001
    Vitsliputsli, Согласен, все так.
    Можно это называть костылями, но это продлевает жизнь (ресурс) протокола. И благодаря всему этому интернет до сих пор вполне может существовать на IPv4.
    Лично мне без разницы на чем там мой домашний интернет работает. Перейдет оператор на IPv6 я, скорее всего, и не замечу, т.к. давно уже и ОС и железки поддерживают его. Вот если бы тарифы на подключение IPv6 для конечного потребителя реально были бы меньше, думаю, массовый переход давно бы состоялся.

    Да и тема обхода NAT очень популярна тут :-) При переходе уйдет целый пласт сетевых проблем и обсуждений с ними связанных.