• Какой RDP клиент для Windows со списком и папками/категориями вы знаете?

    @res2001
    Developer, ex-admin
    Делает отдельный каталог на раб.столе с набором .rdp файлов для всех ваших серверов. Файлы называйте так что бы было удобно находить нужный, можно делать вложенную иерархию. И все доступно из коробки :-)
    Ответ написан
    Комментировать
  • Почему пропадает интернет при подключениие к OpenVPN?

    @res2001
    Developer, ex-admin
    Типичная ошибка. ВПН сервер прописал себя маршрутом по умолчанию для клиента. И теперь все пакеты в интернет идут на ВПН сервер.
    В этом виновата опция
    push "redirect-gateway def1 bypass-dhcp"
    Она делает не то, что вы думаете.
    Просто закоментируйте эту опцию и перезагрузите сервер.
    Ответ написан
    54 комментария
  • Как указать путь к своей папке?

    @res2001
    Developer, ex-admin
    Смотрите описаниние модификаторов в for /? (модификаторы это буквы, которые идут после %~). Там они описаны для переменной цикла, но точно так же модификаторы работают и с параметрами батника, т.е. с переменными вида %0, %1, %2, ...
    Имя запускаемого батника хранится в переменной %0, соответственно применив модификаторы можно из этой переменной получить только путь к батнику: %~dp0
    Ответ написан
    1 комментарий
  • Почему в C++ всё именно так?

    @res2001
    Developer, ex-admin
    Показался интересным 7 вопрос.
    Дело в том, что вы можете создать экземпляр пустого объекта и можете взять его адрес.
    Но если размер объекта будет 0, то адрес будет взять не возможно (объект не занимает места в памяти, соответственно нет и адреса), что противоречит правилам языка.
    Поэтому пустые объекты на самом деле не пустые и занимают в памяти 1 байт.
    Ответ написан
    1 комментарий
  • Какие существуют средства для работы с документами Word.docs (.doc) через c++?

    @res2001
    Developer, ex-admin
    Например можно использовать для этого сам Word, если вас это устраивает. Все продукты MS Office являются COM/ActiveX объектами. Это можно использовать в своей программе на каком угодно языке, умеющем в COM/ActiveX. С++ это умеет. Из коробки это умеют еще и JacaScript и VBScript, так что может вам и плюсы не нужны.
    Ответ написан
    4 комментария
  • Как перенести папку Users на другой диск?

    @res2001
    Developer, ex-admin
    Вот тут описано: https://www.top-password.com/blog/move-the-entire-...
    Я примерно так же делаю еще со времен WindowsXP.
    Но я не переношу профиль Default и Public, как описано в статье, а пользовательский профиль создает винда сама в новом месте (данные во вновь созданный профиль, потом копирую руками). В профилях полно ссылок и при простом копировании всего каталога ссылки останутся указывать на старые места (а этого нам не нужно).

    Для того что бы не было проблем со ссылками действуйте по моему методу.
    На новом томе создаете пустую папку Users (имя папки не принципиально) с такими же правами и наследованием как у папки c:\Users. Далее указываете путь в параметре реестра ProfilesDirectory (смотри ссылку), Public и Default оставляете без изменений.
    Что бы винда создала новый профиль надо удалить ветку реестра старого профиля пользователя. Ветки реестра профиля находятся в разделе реестра ProfileLists (смотри ссылку) и имеют вид S-1-5-2-1-..., находите ветку интересующего вас пользователя и удаляете ее целиком (если страшно, можно ветку переименовать - добавьте к ней префикс). После перезагрузки винда создаст новый профиль в новом месте. Переносите данные из старого профиля в новый. Удаляете старый профиль. Все!
    Все профили новых пользователей будут создаваться на новом месте. При этом профили Public и Default будут находится на прежнем месте, так что каталог c:\Users не удаляйте. Т.к. профиль создан самой виндой с нуля, то все ссылки внутри профиля будут корректные.
    Ответ написан
    2 комментария
  • Какой IP адрес будет у маршрутизатора mikrotik, если к нему подключить 4g модем?

    @res2001
    Developer, ex-admin
    Какой IP адрес будет у маршрутизатора mikrotik, если к нему подключить 4g модем?

    Тот который выделит оператор. Но попадать в интернет вы скорее всего будете с другого адреса - с NATа оператора.
    Возможно ли присвоить ему (маршрутизатору) внешний IP от 4g модема и если да, то как?

    Адрес модема и есть адрес маршрутизатора. Модем - это как сетевой адаптер в компе.
    Ответ написан
    Комментировать
  • Сплиттер или коммутатор?

    @res2001
    Developer, ex-admin
    Конечно коммутатор. Можно взять самый простой тупой хаб (не роутер) на 4 порта (вряд ли найдете меньше).
    Ответ написан
    4 комментария
  • Как получить данные из сайта в C++?

    @res2001
    Developer, ex-admin
    Так же, как и на любом другом языке программирования - отправить HTTP запрос на сайт, получить и распарсить ответ. Для этого есть много библиотек, с помощью которых это можно сделать достаточно легко.
    Так же можно сделать и без сторонних библиотек, но это будет уже гораздо сложнее и придется во всем разбираться самому.
    В самом языке С++ встроенных средств для этого, конечно, нет.
    Ответ написан
    Комментировать
  • Каковы бест практикс структуры каталогов и файлов программы в Windows?

    @res2001
    Developer, ex-admin
    Например тут: https://en.wikipedia.org/wiki/Directory_structure
    Встречал похожий более подробный документ где-то на сайте микрософта, но сейчас не нашел.
    Если кратко:
    1.программу ставить в "Program Files" в соответствии с платформой. Внутренняя структура исполняемых файлов и библиотек - на ваше усмотрение. Если вы используете кучу динамических библиотек, то есть смысл разнести их по подкаталогам. Если у вам только небольшая кучка - могут лежать в одном каталоге. Это на самом деле не важно и никому не интересно.
    2.Общие настройки программы, которые распространяются на всех пользователей: в реестр в HKLM и/или в ProgramData.
    3.Пользовательские настройки программы: в реестр в HKCU и/или в AppData.
    4.Пользовательские временные файлы: в %TEMP%
    5.Файлы проектов или сохранения: в %USERPROFILE%\Documents
    Ответ написан
    2 комментария
  • Почему у меня постоянно кончается место на дисках C и D?

    @res2001
    Developer, ex-admin
    без возможности модернизации с закрытой намертво нижней крышкой

    Это как интересно?
    Намертво, это только если корпус цельнометаллический, таких ноутбуков я что-то не встречал в природе. Остальные варианты разбираются.
    У меня то же ноут от леново без отсеков внизу, но вполне успешно заменен системный диск, установлен второй и добавлена память. На ютубе полно роликов о том как разбирать разные модели ноутов.

    По сути вопроса:
    Рекомендую пользовательский профиль не оставлять на системном диске. Многие программы пишут свои временные файлы в каталоги профиля, они могут занимать очень много места. По поводу методов переноса профиля писал тут несколько раз когда-то.
    Устанавливаемый софт ставить на другой диск особого смысла нет - обычно софт занимает не так много места, чем файлы проектов и временные файлы. Если софт влазит на системный диск, то там ему и место.
    120 Гб для системного раздела Вин10 - это мало. Пока не замените системный диск попробуйте перенести файл подкачки с системного диска на другой, где больше емкость. На системном вообще его запретить. На системном диске всегда должно быть свободное место, иначе винда может перестать загружаться.
    Пользуйтесь виндовым мастером очистки, он стал уже достаточно продвинутым.
    Ответ написан
    Комментировать
  • Ограничение доступа в интернет клиентам OpenVPN?

    @res2001
    Developer, ex-admin
    добавляя опции

    Это странно, мягко говоря. Похоже вы добились прямо противоположного. Опция
    push redirect-gateway def1 bypass-dhcp
    Делает ВПН сервер шлюзом по умолчанию на клиентах. Так что интернет у клиента будет идти через ВПН.
    Вторая опция просто добавляет DNS сервер клиенту.
    Что бы клиент использовал свой интернет - удалите обе опции из конфига сервера.

    Все это легко проверяется - соединитесь с ВПН и посмотрите таблицу маршрутизации на клиенте стандартными средствами. Если маршрут по умолчанию будет через ВПН сервер - значит клиент будет получать интернет через ВПН.

    Включение NAT на ВПН интерфейсе то же не обязательно. Использовать его или нет - зависит от текущих настроек сети за клиентом и сервером и от того для чего вы используете ВПН.
    Ответ написан
  • В каких случаях лучше использовать wchar_t, char16_t, char32_t вместо char в C++?

    @res2001
    Developer, ex-admin
    Под виндой лучше всегда использовать wchar_t, т.к. ядро винды внутри себя использует wchar_t для строк. Все функции WinAPI, принимающие строки как char* - просто конвертируют их в wchar_t и вызывают соответствующую функцию для широких символов. Так что в целях некоторой оптимизации лучше сразу использовать wchar_t.
    В линуксе сейчас уже повсеместно UTF8. Разве что вам придется писать для старых ядер/дистрибутивов.
    Другие типы - тогда когда будете работать с данными в соответствующих кодировках.
    Ответ написан
    Комментировать
  • Как реализован консольный ввод/вывод в C/C++?

    @res2001
    Developer, ex-admin
    Непосредственно вводом/выводом занимается ОС. Стандартная библиотека С/С++ использует API ОС для ввода/вывода.
    Ответ написан
    Комментировать
  • Воспроизведение звука из буфера без сохранения?

    @res2001
    Developer, ex-admin
    Если вы не программист - никак.

    Воспроизвести звук программно это несколько сложнее, чем записать данные в файл. Но принцип примерно такой же - отрыть устройство воспроизведения и писать в него данные, которые надо воспроизводить.
    Но из-за того что воспроизведение должно быть без задержек, само воспроизведение занимает время и API ОС и оборудование умеют работать только с некоторыми типами данных возникают особенности, усложняющие процесс.
    Проще всего использовать какую-либо библиотеку, которая большую часть работы возьмет на себя. Можно использовать PortAudio, например, но она на Си и достаточно низкоуровневая. Можно использовать API ОС но это совсем низкоуровнево и может быть достаточно сложно для начинающего.
    Ответ написан
    Комментировать
  • В чем именно проблема с ЖД?

    @res2001
    Developer, ex-admin
    SMART всегда возвращает физическое состояние диска. Фактически состояние SMART хранится на контроллере диска, так что ПО тут значения не имеет.
    У вас начались переназначения секторов. Это происходит, когда какие-то сектора на диске выходят из строя, в этом случае доступ к ним блокируется контроллером и вместо них назначаются другие (резервные) сектора. Резервных секторов ограниченное количество.
    Пока что у вас только 3 переназначения (VALUE), предельное количество переназначений 36 (THRESH). Когда количество переназначений достигнет этого числа, то переназначать уже будет нечего, тогда контроллер диска будет возвращать ошибки чтения в ОС.
    Еще какое-то время диск может пожить. Но не известно как быстро он исчерпает все переназначения.
    Так что лучше слить с него все что можно и заменить.

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

    @res2001
    Developer, ex-admin
    но как роутер перенаправляет запрос, без указания, на какой из локальных ip адресов происходит подключение?

    Без указания - никак.
    Но указание в той или иной форме есть.
    Если внутренняя сеть имеет серые адреса, то на роутере настроен NAT и там прописано правило перенаправления портов - это правило и есть указание локального адреса.
    Если внутри сети используются белые адреса (актуально для IPv6, ну и в IPv4 иногда такое то же можно встретить), то таблица маршрутизации содержит соответствующие правила.
    Ответ написан
    Комментировать
  • Как сконнектить два приложения без общего сервера?

    @res2001
    Developer, ex-admin
    Если речь идет о взаимодействии в рамках одной сети WiFi - то нет проблем. Используйте широковещательные пакеты для уведомления других устройств, что в сети есть устройство, готовое работать по вашему протоколу.
    Если это более общая задача, не привязанная к одной сети и WiFi, то даже если устройства будут знать адреса друг друга (не важно каким способом), могут возникнуть проблемы с доступом к устройству из-за оператора связи, т.к. в сотовых сетях обычно используется NAT оператора, который препятствует прямому доступу из интернета к устройству (NAT как правило включен в любом WiFi роутере и т.п.). В этом случае придется использовать какой-либо сервер в интернете со статическим адресом.
    Существуют варианты обхода NAT, но они так же требуют сервера для инициализации соединения, а затем уже устройства могут работать напрямую. Подобные техники используются, например, в VoIP. Гуглите по протоколу STUN.
    Ответ написан
    2 комментария
  • Как использовать юникод в консоли windows с wstring?

    @res2001
    Developer, ex-admin
    Аргументы командной строки не обязательно будут в 866 кодировке, могут быть и в 1251 - зависит от кодировки консоли, которую можно менять консольной командой chcp.
    Вообще не стоит использовать юникод в консоли, т.к. виндовая консоль не слишком дружит с юникодом.
    Например, если захотите обработать вывод вашей программы каким-нибудь фильтром в батнике, то при юникоде могут быть проблеммы.
    Хотя внутри программы вы можете использовать юникод, но в этом случае вы должны будете перекодировать весь ввод и вывод. Не уверен, можно ли настроить стандартную библиотеку, чтобы она сама занималась перекодировкой.
    А так в WinAPI есть целый набор консольных функций, в т.ч. можно получить текущую кодировку консоли для ввода и вывода, установить нужную кодировку, перекодировать текст.
    Ответ написан
  • Что за скобки в выражении std::true_type{}?

    @res2001
    Developer, ex-admin
    На сколько я понимаю, в вашем примере вполне можно заменить фигурные скобки на круглые и ничего не изменится.
    Но если бы в классе hello был бы конструктор, принимающий std::initializer_list, то в случае использования фигурных скобок вызвался бы именно этот конструктор, а не конструктор по умолчанию, даже если фигурные скобки пустые.
    Сделайте оба конструктора и проверьте, какой из них вызывается с фигурными скобками и с круглыми.
    Ответ написан
    Комментировать