Уроки C# - Читаем данные из командной строки и PowerShell + в реальном времени - C#

Поділитися
Вставка
  • Опубліковано 23 кві 2019
  • Донаты и на кофе ➜ t.me/win10tweaker/171
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜
    Форум по C#:
    win10tweaker.ru/forum/forum/%...
    Основной канал:
    / jailbreakvideo
    #CMD #PowerShell #КоманднаяСтрока #СиSharp #СиШарп
  • Наука та технологія

КОМЕНТАРІ • 128

  • @dary1337
    @dary1337 2 роки тому +7

    Доброй ночи, лично Я добавляю в конце аргументов cmd: "& exit", это позволяет избавиться от останков cmd в фоновых процессах, если процесс не смог закрыться самостоятельно

  • @user-tl6gq2tj7c
    @user-tl6gq2tj7c 28 днів тому

    Спасибо тебе большое, два часа ебался с классом "Powershell", пытался заставить его работать, не смог.. нашёл твоё видео (ещё года два назад смотрел, но тогда не понадобилось), за пару минут переписал свой код согласно инструкции))) и всё заработало
    Вот просто от души, жирный лайк

  • @VAscetic
    @VAscetic 2 роки тому +5

    Спасибо огромное! Именно то, что я искал: мне надо было, чтобы командная строка у яндекс-облака запрашивала новый токен. Большую часть параметров я нарыл верно, но что-т с синтаксисом намудрил похоже. Ваш пример заработал :) А может, сейчас понимаю, дело было просто в "/c" поля аргументов. В общем, очень полезное видео!

  • @redtayron6390
    @redtayron6390 5 років тому +7

    Еще два крутых видео на ночь, точно ночью код присниться))

  • @FOXLLive
    @FOXLLive 4 роки тому +4

    Блин. Это видео просто спасительное! Спасибо!

  • @user-pn4jf4pq2m
    @user-pn4jf4pq2m 5 років тому +4

    Большое спасибо!

  • @sergegoist1488
    @sergegoist1488 2 роки тому +1

    Реальная годнота. Спасибо тебе.

  • @MrPronav
    @MrPronav 4 роки тому

    Очень познавательно! Спасибо!

  • @NKCMEH
    @NKCMEH 5 років тому +13

    Хорошее видео спс. p.s *Какая мышка у Хачатура? Уж классно клацает*

    • @XpucT
      @XpucT  5 років тому +4

      X-738K

  • @fall1n1
    @fall1n1 2 роки тому +1

    Насколько же у тебя крутые видео, смотрю и обучаюсь с большим удовольствием! Что думаешь по поводу MAUI?

    • @XpucT
      @XpucT  2 роки тому +1

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

  • @IlyaArlenka
    @IlyaArlenka 4 роки тому +6

    CreateNoWindow значит "не создавать окно", с английского во многих случаях нельзя переводить в таком же порядке)

  • @awfsdgsgeefdgwef
    @awfsdgsgeefdgwef 5 років тому +2

    Привет, хотел бы узнать, как сделать возможным общение 2 твоих программ? Вроде есть что-то, как pipe. Но не понимаю, что да как. Извините, если может не ясно выразился

  • @xxxxxxxxxxxxxxxxxx496
    @xxxxxxxxxxxxxxxxxx496 4 роки тому +1

    классный контент

  • @user-fq9gn2yu4i
    @user-fq9gn2yu4i 4 роки тому +1

    А вот по поводу poweshell и команды из примера "/command get-appxpackage | ft name" у меня что в выводе, что в самом poweshell (логично) говорит о том, что не распознает команду : the term 'get-appxpackage' is not recognized as the name of a cmdlet, function, script file, or operable program. Если есть решение, был бы рад услышать, но пока что, что решения не нашёл.

    • @user-mo5wt4ue2r
      @user-mo5wt4ue2r 4 роки тому

      какая ось? этот командлет вроде только в win10

  • @rhseo4249
    @rhseo4249 2 роки тому

    Подскажите как передать в командную строку вот такую команду Wbadmin start backup

  • @user-fq9gn2yu4i
    @user-fq9gn2yu4i 4 роки тому +1

    Для тех, у кого после всех манипуляций с кодировкой для вывода всё равно выходят иероглифы и хрен пойми что, нашёл команду для cmd, мне помогло, только русский текст всё равно отобразит символами, но так-как у меня это только имя сетевого подключения - не критично, главное что основная информация хотя бы есть: REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 0xfde9

  • @user-wd4sq4yj8i
    @user-wd4sq4yj8i 3 місяці тому

    Привет, Хачатур! По ходу урока переписывал код, написан точь-в-точь как у тебя, но у меня программа открывает новое окно. Передал программе права админа, ситуацию не изменило

  • @akmalaliev4526
    @akmalaliev4526 6 місяців тому

    Добрый день еще раз. Не могли бы вы рассказать про консоль "как взаимодействие"? Например я по вашему материалу запускаю команду plink (из состава putty) с аргументами, однако, если я делаю запрос на сервер в первый раз, то система даже при использовании аргумента для plink "-batch" запрашивает разрешение сохранить или нет ssh ключ. С помощью вашего урока я все это читаю, а как послать на такой запрос ответ "yes" не знаю. Если не сложно просветите как это сделать?

    • @akmalaliev4526
      @akmalaliev4526 6 місяців тому

      сам понял, все получилось. Не совсем так как у Вас. Если интересно кому - обращайтесь

  • @user-lr4gi2iw4b
    @user-lr4gi2iw4b Рік тому

    Не запускается. Пишет "имя label1 не существует в данном контексте" подскажите где проблема

  • @user-wo8jg4kj2y
    @user-wo8jg4kj2y 3 роки тому +1

    Доброго времени суток!
    Наткнулся на ваши ролики.
    Долго пытаюсь понять принцыпы Power Shell, но пока безуспешно. Посоветуйте как пробить эту стену. Заранее благодарен.

    • @XpucT
      @XpucT  3 роки тому +1

      PowerShell довольно медленно развивается, однако почти всё можно найти на stackoverflow.

    • @user-wo8jg4kj2y
      @user-wo8jg4kj2y 3 роки тому

      Спасибо.

  • @MibusVideo
    @MibusVideo 2 роки тому +2

    Пересмотрел несколько раз это видео и ещё предыдущее про лямбда выражение и как-то не могу уловить смысл. Я понял, что эта лямбда упрощает код, но не могу въехать когда лучше её использовать почему в конкретном примере мы используем именно такую запись? В предыдущем уроке вроде было понятно. Вот на примере process.OutputDataReceived += (s, e) => { label.Text += e.Data + Environment.NewLine; }; какая бы была запись без использования лямбды?

    • @XpucT
      @XpucT  2 роки тому +2

      Привет 🖐
      v004.radikal.ru/2111/ab/6258118893-6-f61e128384c217fd351076acdfdb5826.mp4

    • @MibusVideo
      @MibusVideo 2 роки тому +2

      @@XpucT спасибо большое! Стало понятнее) Я сначала даже "вышел с этим вопросом в Интернет" и меня там гугл закидал делегатами, полез в самой вижуал студии внутрь OutputDataReceived и в итоге опять упёрся в делегаты. Почувствовал себя тупым =) Просто не сразу въехал, что есть такое по своей сути OutputDataReceived и почему мы потом пишем лямбду. Вдруг в будущем попадётся нечто подобное, а я не смогу понять что с ним делать). Как оказалось это такое же событие как какой-нибудь маус клик и т.п.. Да, в видео ты говорил, что это событие, но это как-то не отложилось в памяти и в ответе на комментарий это было продемонстрировано наглядно)

  • @user-fe1et9ze2b
    @user-fe1et9ze2b 2 роки тому +1

    Здравствуйте. Подскажите, есть ли какое-то решение. как в уже открытую CMD, передавать команды, то есть CMD открыли отдельно и надо ее поймать, и провести с ней операции?

    • @XpucT
      @XpucT  2 роки тому +1

      Добрый день.
      Разве что перехват клавиш и донабор. Либо AutoIt.
      Программно на C# так просто не залезешь в чужой интерфейс.

    • @user-fe1et9ze2b
      @user-fe1et9ze2b 2 роки тому +1

      @@XpucT Понятно. Запустил gcc gdb, а подключится к нему не могу. Хотел сделать для него удобный интерфейс.

    • @user-fe1et9ze2b
      @user-fe1et9ze2b 2 роки тому +1

      @@XpucT Спасибо. По мучался, но получилось, разобрался, на самом деле очень удобный, этот Autoit. Тут еще выяснил, что его можно подключать к C#, вообще много процессов можно упростить. Ее раз спасибо, за подсказку.

  • @akmalaliev4526
    @akmalaliev4526 Рік тому +1

    Спасибо большое. А можете показать как вводить значения в командной строке? Например если запустить команду "time", то мы не видим что отобразилось в командной строке. А хотелось бы увидеть и суметь ввести какие значения

    • @XpucT
      @XpucT  Рік тому +1

      Консоль, как приложение и консоль как взаимодействие - немного разные.
      Чтобы вводить что-то в консоль, нужно отправлять эти значения, как аргументы своему приложению.
      То есть в Вашем случае, что Вы спросили, будет работать отдельный exe через простую консоль.
      То есть консоль не будет являться самостоятельным приложением.

    • @coolplayerivan
      @coolplayerivan 2 місяці тому

      В случае с консольным приложением вы можете использовать аналогичный RedirectStandardInput. Или же можно использовать SendKeys, есть такая вещь в вин апи

  • @vladyslavbuzhor5652
    @vladyslavbuzhor5652 3 роки тому +3

    Извините но ваш пример не работает, делал все по видео, но ничего не выводит

  • @imafamiliya9336
    @imafamiliya9336 3 роки тому

    Как можно в С# (если возможно) получить параметры извне не в консольном приложении
    (static void Main(string[] args)),
    а в точку входа Windows Form (static void Main()).
    Спасибо

    • @XpucT
      @XpucT  3 роки тому

      С помощью dnSpy.

  • @user-wu-tang
    @user-wu-tang Рік тому

    ув. Хачатур привет
    Можно ли менять кодировку сразу в строке Match match?
    пример:
    line = wc.DownloadString($"");

    Match match = Regex.Match(line, " chcp 65001 & \"temp\":(.*?),(.*?)\"name\":\"(.*?)\",");
    label1.Text = match.Groups[3].Value + " " + match.Groups[1].Value + " °C";
    или нужно добавлять в переменную line ? типа так--->
    line = wc.DownloadString($" chcp 65001 & ");
    P.S. Скажи пожалуйста можно ли вывести время в реальном времени, что бы после нажатия на кнопку, в лейбл выводилось время и чтоб время обновлялось само, без нажатия на кнопку(т.е. шло в реальном времени)?

    • @user-wu-tang
      @user-wu-tang Рік тому

      Нашёл информацию, через таймер, все работает))
      void timer1_Tick(object sender, EventArgs e)
      {
      string date_time = DateTime.Now.ToString();
      label2.Text = date_time;
      }

  • @rightman13
    @rightman13 Рік тому +1

    Здравствуйте, искал как вытащить данные ipconfig с консоли в лейбл. наткнулся на ваше видео, написал точно так-же, но в сам лейбл ничего не выводится. есть мысли в чем может быть дело?

    • @XpucT
      @XpucT  Рік тому +1

      Попробуйте абсолютно ничего не менять в коде и вытащить другие данные. Не ipconfig

    • @rightman13
      @rightman13 Рік тому

      @@XpucT походу какой-то глюк случился у студии. с какого-то раза сработало и все вывело. спасибо.

  • @maxsemirin
    @maxsemirin 4 роки тому

    Здравствуйте! У меня не срабатывает амперсанд. Сначала думал, что в коде, а в итоге сама консоль пишет "Неправильный формат параметра: $". В чем может быть проблема?

    • @XpucT
      @XpucT  4 роки тому

      Добрый день.
      Смотря в какой среде разработки Вы работаете. Если в старой, где C# версия ниже 4, то он не знает, что это.
      Проблем в Visual Studio последней версии не может быть со знаком амперсанда.

  • @mlstrbrv
    @mlstrbrv 3 роки тому

    Хачатур не подскажешь, как в приложении winforms по нажатию на кнопку открывать в браузере по умолчанию определенную ссылку? Пробовал по твоему видосу как удалять папку через консоль , там консоль не видно, в общем очень удобно, но команда которую я ввожу не выполняется. Как можно сделать это по другому? В интернете решения не нашел. Заранее спасибо!!

    • @XpucT
      @XpucT  3 роки тому

      Привет 🖐
      Очень просто, в уроках показывал:
      Process.Start("google.com");

    • @mlstrbrv
      @mlstrbrv 3 роки тому

      @@XpucT Я так пробовал но вылазит ошибка: System..ComponentModel.Win32Exception: "Приложение не найдено". В интернете решение не нашел

    • @XpucT
      @XpucT  3 роки тому

      @@mlstrbrv в системе не привязан браузер по умолчанию.

    • @mlstrbrv
      @mlstrbrv 3 роки тому +1

      @@XpucT Спасибо большое, теперь все рабоет

  • @alex31347
    @alex31347 5 років тому

    Большое спасибо за уроки!!!
    Можешь подсказать:
    1. Как проверить доступ к файлу, например, для того, чтобы удалить или переименовать.
    2. Как запустить child процесс с ограничением использования ресурсов CPU, оперативка

    • @XpucT
      @XpucT  5 років тому +1

      1.
      try
      {
      stream = ТвойФайл.Open(FileMode.Open, FileAccess.Read, FileShare.None);
      }
      catch
      {
      // ТвойФайл занят и трогать нельзя
      }
      2.
      Priority = ThreadProirity.Highest
      ( подробнее ua-cam.com/video/vHqHrf914TA/v-deo.html )

    • @alex31347
      @alex31347 5 років тому

      XpucT Спасибо большое за ответ!!
      1. Данная реализация проверяет занят ли данный файл другим процессом, а что насчет атрибутов, например, файл только для чтения, а я его хочу удалить.
      2. В данном видео рассказывается о потоках, а я имел ввиду запуск командной строки с параметрами и для этой командной строки огранить использование ресурсов CPU и Memory
      .

    • @XpucT
      @XpucT  5 років тому +2

      @@alex31347
      1. File.SetAttributes(ПутьКфайлу, File.GetAttributes(ПутьКфайлу) & ~FileAttributes.ReadOnly);
      2. Нужно искать в сети, есть ли вообще контроль управления памятью у cmd. Но что-то подсказывает, что контролировать нужно не cmd, а то, что она использует.

  • @DinaSolo13
    @DinaSolo13 3 роки тому +1

    Спасибо тебе за уроки! У меня только запрашивает запуск программы от Админа. Может кто подсказать, как ее с с# запустить или как по умолчанию запускать в cmd всегда от админа?

    • @XpucT
      @XpucT  3 роки тому +2

      ua-cam.com/video/jHVTmDePWAA/v-deo.html

    • @DinaSolo13
      @DinaSolo13 3 роки тому +1

      @@XpucT Спасибо!

  • @toluncrazy8308
    @toluncrazy8308 2 роки тому +1

    Немного непонятно на том моменте, когда вы рассказываете про свойства UseChellExecute и RedirectStandardOutput, вероятно просто я тупой, но раньше я об этих вещях не где не слышал, а их описание почему то звучит для меня слишком страшно

    • @XpucT
      @XpucT  2 роки тому +1

      Но в видео-то всё понятно? =)

    • @toluncrazy8308
      @toluncrazy8308 2 роки тому +1

      @@XpucT да, в целом, всё чётко :)

  • @sergeykozhemyakin7707
    @sergeykozhemyakin7707 3 роки тому

    очень крутой видос, спасибо. а через командную строку можно создать видеозвонок конкретному пользователю по скайпу?

    • @XpucT
      @XpucT  3 роки тому +1

      Если Skype принимает такие аргументы, то да. Но нужно читать документацию.
      Гуглить примерно так: Skype API calls

    • @sergeykozhemyakin7707
      @sergeykozhemyakin7707 3 роки тому +1

      XpucT спасибо

    • @user-wu-tang
      @user-wu-tang Рік тому

      @@sergeykozhemyakin7707 добрый день
      У вас получилось написать код, он заработал?

  • @farmer2456
    @farmer2456 2 роки тому

    Очень полезно, но мне интересно, как продолжить работу с консолью? Допустим, я написал команду "del /p file.txt", получил вывод "Удалить [Y(да)/N(нет)]?" и мне нужно для удаления написать "y" в консоль. Можно ли как-то реализовать такое?

    • @XpucT
      @XpucT  2 роки тому

      Желательно смотреть все видео по плейлисту, там есть ответ на этот вопрос.
      ua-cam.com/play/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_.html

    • @farmer2456
      @farmer2456 2 роки тому +1

      @@XpucT Понял, поищу. Спасибо.

  • @chechensoft_ru
    @chechensoft_ru 2 роки тому +2

    Показывает ошибку на это:
    process.BeginOutputReadLine();
    process.OutputDataReceived += (s, e) => { label1.Text += e.Data + "
    "; };
    Ошибка: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'label1' не из того потока, в котором он был создан."
    пишу все как на видео.
    может что то изменилось?

    • @XpucT
      @XpucT  2 роки тому

      Про потоки видео есть на канале и как ими управлять.

  • @user-wu7cq7ns8r
    @user-wu7cq7ns8r 5 років тому +1

    Здравствуйте, попробовал ваш код, но при нажатии на кнопку вылезает ошибка "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'label1' не из того потока, в котором он был создан.". А также заметил, что если в выражении (s, a) я заменяю "a" на "e" то эта переменная подчеркивается красным. В точности повторил ваш код.

    • @XpucT
      @XpucT  5 років тому

      Добрый день, Володя.
      Скиньте, пожалуйста, ответом весь код полностью.
      Кстати, ошибка с потоками будет рассмотрена позже и объясню, как это обойти.

    • @user-wu7cq7ns8r
      @user-wu7cq7ns8r 5 років тому

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;
      using System.Diagnostics;
      namespace WindowsFormsApp2
      {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }
      private void Button1_Click(object sender, EventArgs e)
      {
      Process process = Process.Start(new ProcessStartInfo
      {
      FileName = "cmd",
      Arguments = "/c dism /online /cleanup-image /startcomponentcleanup",
      UseShellExecute = false,
      CreateNoWindow = true,
      RedirectStandardOutput = true
      });
      process.BeginOutputReadLine();
      process.OutputDataReceived += (s, a) => { label1.Text += a.Data; };
      }
      }
      }

    • @user-wu7cq7ns8r
      @user-wu7cq7ns8r 5 років тому +2

      @@XpucT Проблема решена)
      System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

    • @XpucT
      @XpucT  5 років тому

      @@user-wu7cq7ns8r это лайфхак, но злоупотреблять не рекомендуется, потому что если будут ошибки, то Ты их просто не выловишь. Просто всегда помни, что у Тебя подключён лайфхак.

    • @evagor730
      @evagor730 4 роки тому

      Та же история. Костыли сейчас приделаю, но почему такое происходит, не догоняю. Насчет переменной события: как вообще у Хачатура работает с переменной e, если выше этот же символ объявлен переменной события кнопки?

  • @neuro_picture
    @neuro_picture 2 роки тому +2

    Спасибо за урок!
    Я чёт не очень понял как лучше и эффективнее завершать процессы программ, служб и тд
    Cmd($"taskkill /f /im distnoted.exe" ); Так
    Или так
    foreach (Process process in Process.GetProcessesByName("regedit")) // Для каждого процесса, у которого имя regedit
    {
    process.Kill(); // Завершить процесс
    }

    • @XpucT
      @XpucT  2 роки тому +1

      Оба варианта рабочие, однако, когда нужно завершить процесс (по какой-то причине) в отдельном потоке, то, чтобы не создавать Task или Thread проще завершить процесс в cmd.

  • @VAscetic
    @VAscetic 2 роки тому

    Кстати, окно у меня всё равно создаётся)) Похоже машинка медленная...

  • @try_parse99
    @try_parse99 2 роки тому

    Привет, У меня приложение плохого качества в смысле что шрифты кнопки и прочее плохо отображаются, типа блюр. Не знаешь как пофиксить ?

    • @XpucT
      @XpucT  2 роки тому

      Привет 🖐
      В свойствах формы, как минимум стоит указать шрифт, который не блюрит.
      Есть по похожей теме видео: ua-cam.com/video/weEjciHBEyE/v-deo.html

    • @try_parse99
      @try_parse99 2 роки тому

      @@XpucT Спасибо за то что быстро ответил и помог :3

  • @mozze3395
    @mozze3395 5 років тому

    Уроки по WPF будут?

    • @XpucT
      @XpucT  5 років тому

      Только если в этом будет необходимость или народ решит сделать что-то, где требуется WPF.

  • @makshill1490
    @makshill1490 4 роки тому

    Зравствуйте, не знаю как исправить ошибку System.InvalidOperationException: "Поток StandardOut не был перенаправлен или процесс еще не был запущен."
    работает только так
    private void button1_Click(object sender, EventArgs e)
    {
    Process process = new Process();
    process.StartInfo.FileName = "cmd";
    process.StartInfo.Arguments = "/c chcp 65001 & dism /online /cleanup-image /startcomponentcleanup";
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.RedirectStandardOutput = true;
    process.Start();
    process.BeginOutputReadLine();
    process.OutputDataReceived += (s, a) => { label1.Text += a.Data + "
    "; };

    process.WaitForExit();
    }

    • @XpucT
      @XpucT  4 роки тому

      Добрый день.
      Вы изучите материал, который Вам тут предоставлен, потом задайте вопрос.
      А Вы свой код откуда-то взяли, причём устаревший метод объявлений.
      По потокам также есть видео ua-cam.com/video/vHqHrf914TA/v-deo.html

  • @ianm8107
    @ianm8107 4 роки тому

    привет Хачатур, почему-то вылезает ошибка при запуске кода не понимаю почему , на компе я админ и в VS тоже.
    private void button1_Click(object sender, EventArgs e)
    {
    Process process = Process.Start(new ProcessStartInfo
    {
    FileName = "cmd",
    Arguments = "/c time /t",
    UseShellExecute = false,
    CreateNoWindow = true,
    RedirectStandardInput = true,
    }) ;
    label1.Text = process.StandardOutput.ReadToEnd();
    }
    Сама Ошибка - StandardOut has not been redirected or the process hasn't started yet.

    • @XpucT
      @XpucT  4 роки тому +1

      Привет 🖐
      i.imgur.com/fepTA3e.png

    • @ianm8107
      @ianm8107 4 роки тому +1

      @@XpucT Спасибо!!!долбанная невнимательность...

  • @tyuop
    @tyuop 5 років тому

    Upd: Видимо в ответах к комментариям не приходят уведомления, либо они не появляются в списке.
    Вставлю ответ сюда:
    XpucT нет, есть консольное приложение (node.js windows сервер), от которого нужно получать логи в реальном времени (сделано, спасибо видео) и вводить команды
    Теперь есть красивое приложение на C#, но команды вводить нельзя

    • @XpucT
      @XpucT  5 років тому +1

      Я видел ответ, но не понял его совершенно. В чём конкретно вопрос?
      В поле ввода? Закинуть textBox и всё.

    • @tyuop
      @tyuop 5 років тому

      XpucT как сделать ввод команды в допустим cmd без ключей, а напрямую, как с выводом. Только здесь не cmd, а стороннее консольное приложение

  • @user-ef4ty8nl5s
    @user-ef4ty8nl5s 2 роки тому +1

    может, тут кто-нибудь еще обитает... не помогает смена кодировки на 1251, все равно возвращает крокозябры. В чем может быть причина?

    • @XpucT
      @XpucT  2 роки тому

      Я читаю все комментарии. Привет.
      Ты получаешь данные из cmd или что-то вызываешь через cmd?

    • @user-ef4ty8nl5s
      @user-ef4ty8nl5s 2 роки тому

      @@XpucT Привет!
      Делаю как у тебя на видео, то есть вызываю cmd с аргументом "/c chcp 1251 & ipconfig". С 65001 все в порядке.

    • @user-ef4ty8nl5s
      @user-ef4ty8nl5s 2 роки тому +1

      @@XpucT Разобралась. Помогла установка StandardOutputEncoding (поставила в моем случае UTF8 и все стало ок). Спасибо :)

  • @proProger
    @proProger Рік тому

    А как Писать в C# Комманды Коммандной Стороки (CMD)
    Ответь Пж

  • @PervertGenius
    @PervertGenius 5 років тому

    Христ, я же верно понял, что это та самая ВМ от самих микромягких?

    • @XpucT
      @XpucT  5 років тому

      Нет, не верно. Это бесплатный продукт от компании Oracle.

    • @PervertGenius
      @PervertGenius 5 років тому

      @@XpucT я про другое. Я про то, что образ от них или просто накатил винду Индуса?

    • @XpucT
      @XpucT  5 років тому

      @@PervertGenius Windows 10 build 1709 by xlx

    • @PervertGenius
      @PervertGenius 5 років тому

      @@XpucT да, окей
      Я просто пока решил помучиться и попробовать поставить на VirtualBox официальный образ для разрабов (тот что с вижуалкой сразу и тд) и накатить твикер с активатором, хех
      Спасибо

  • @tyuop
    @tyuop 5 років тому

    Тоже пытался сделать такую программу к консольному приложению, но она не имеет такого ключа, который я могу ей отправить только когда она уже запущена.
    После запуска я могу получать логи, которые собираю и отправлять команды.
    Как сделать возможность *ввода* команд? И консольное приложение может очистить консоль и изменить текст на экране. Для ввода программа должна быть уже запущена (т.е поле для ввода)

    • @XpucT
      @XpucT  5 років тому +1

      Console для олдфагов. Это не наш метод.

    • @tyuop
      @tyuop 5 років тому

      XpucT нет, есть консольное приложение (node.js windows сервер), от которого нужно получать логи в реальном времени (сделано, спасибо видео) и вводить команды
      Теперь есть красивое приложение на C#, но команды вводить нельзя

  • @GoldbergCC
    @GoldbergCC 4 роки тому +3

    CrwateNoWindow по-любому Русские программисты делали ))) Наши любят поугарать и поиздеваться ))))

  • @Desiderathus
    @Desiderathus 2 роки тому

    03:40 с 21 строки по 27 это что? Анонимный метод?

    • @XpucT
      @XpucT  2 роки тому

      Давай назад, Данил и не забегай вперёд.
      Про методы уже был урок. Идти в этом курсе нужно *строго последовательно* ➜ ua-cam.com/play/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb.html

    • @Desiderathus
      @Desiderathus 2 роки тому +1

      @@XpucT О, спасибо за ответ.
      Да не, я уже и Шилдта прочитал на metanit сижу и все твои видео смотрел. Решил это видео пересмотреть и в голове, наверное, все перемешалось, из-за недостатка практики, я увидел здесь не то, что есть на самом деле. а Сейчас обдумал и понял.

  • @kalobyte
    @kalobyte 4 роки тому

    посмотрел ролик
    увидел ответ на вопрос КАК использовать
    не увидел ответ на вопрос ЗАЧЕМ
    сейчас гляну следущее видео, там наверное есть ответ

    • @XpucT
      @XpucT  4 роки тому +2

      Есть операции, которые намного дешевле и проще на cmd, чем на C#.
      Поэтому есть возможность подключаться.
      Пример из Win 10 Tweaker:
      Как узнать, SSD у человека или HDD? На C# никак, на С++ никак, на VB никак. А вот на PowerShell можно.

    • @kalobyte
      @kalobyte 4 роки тому

      @@XpucT
      да вот нашел за пару минут
      emoacht.wordpress.com/2012/11/06/csharp-ssd/
      обертка для винапи
      не пару строчек, зато не надо вызывать пс
      но один хер я могу вызвать внешнюю утилиту и считать вывод ее из stdin и регулярками распарсить
      это все равно не дает понимания смысла этих лямбд, а только больше засирает мозги синтаксисом непонятным

    • @XpucT
      @XpucT  4 роки тому

      ​@@kalobyte Я это нашёл также когда-то за пару минут. Но судя по тому, что после Моего коммента Ты дал эту ссылку, Ты не очень понимаешь, что это боль в десятой степени. У кодера не должно быть принципов пилить на чистом C#. Это крайне тупо. В случае с вопросом SSD - это тупо в десятой степени. То есть 10 причин. 10 степеней боли в разных местах при использовании такого решения. Есть вопросы копирования файлов или удаления в корзину средствами подключения Basic, также Basic лучше при работе с ярлыками. Чтобы узнать какой монитор или ТВ установлен, C# не поможет. Он не настолько развит, как другие, зато легко даёт подключаться к любому другому.
      Что касается чтения вывода из внешней утилиты, то эта утилита должна поддерживаться также C#. Если внешняя утилита сделана не консольным окном, а типа консольным, то не получится. Нужно гуглить примеры, скорее всего кто-то это уже делал. Точно такой же вопрос чтения с этой утилиты.

    • @kalobyte
      @kalobyte 4 роки тому

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

    • @XpucT
      @XpucT  4 роки тому +1

      ​@@kalobyte ну, уже всё было понятно с первого ответа, но после слов об антивирусах только закрепилось. Очевидно мы не найдём общий язык. Надеюсь, что найдёте ответ на свой вопрос.

  • @botzmann3328
    @botzmann3328 5 років тому +1

    многобукф. можно мативационноное видео? типо зачем с 0? ты проги делаешь этим живешь. а юзеру без практики смысл. что тебе мотевировало это изучать? вин тен твикер тыж не сразу придумал. твой путь?)

    • @XpucT
      @XpucT  5 років тому +2

      Интересная мысль. Наверно нужно будет 👍

    • @botzmann3328
      @botzmann3328 5 років тому

      @@XpucT люблю твою фолософию слушать)

    • @botzmann3328
      @botzmann3328 5 років тому

      @@deftrue4444 ого. загнул))) но я к тому нужноли это? мне нравиться к примеру фотошопить. знаю. учусь 7 лем лет. и всеравно тяп ляп. могу программить теоритически. но не кончиться ли так же? взял ноу экран к сожелению отсикает возможность шопить. поменять нет возможности. у праграммиромирования нет зависимости от железа. тут дело скорей в том что могу а не хочу. вопрос в том не накроеться все это без практики? что огн делал как развился в этом направлении? делать для себя тобишь в муср что ли?

    • @botzmann3328
      @botzmann3328 5 років тому

      @@deftrue4444 спасибо. многое объяснил. учту

  • @NewbieTM_
    @NewbieTM_ 2 роки тому +1

    Добрый вечер. Я до данного плейлиста посмотрел еще 1 плейлист у другого человека. За 20 уроков вы объяснили все что он говорил за 60. Но после синтаксиса, я как будто начал смотреть видео по другим языкам. До этого не объяснялось что такое реестр или язык cmd. А без этих знаний, мне кажется что просмотр становится отчасти бесполезным. Как будто вы стало все обьснять для более продвинутой аудитории. Где мне все это понять, чтобы просмотр стал более эффективным?

    • @XpucT
      @XpucT  2 роки тому +1

      В идеале пройтись по этому плейлисту:
      ua-cam.com/play/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_.html
      Но только смотреть, не делать. Делать можно после просмотра всего листа, ибо многое уже поменялось.

    • @NewbieTM_
      @NewbieTM_ 2 роки тому

      @@XpucT Спасибо за такой скорый ответ. Обязательно пройдусь. Конечно здесь мне понравилось лямбда выражение, которое действительно связанно с синтаксисом и наверное упрощением читабельности кода и не только. А Нужно идти по новому плейлисту сейчас или уже после просмотра данного плейлиста?

    • @XpucT
      @XpucT  2 роки тому

      @@NewbieTM_ в идеале идти по плейлисту C# после просмотра плейлиста Windows.