Тёмный

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

XpucT
Подписаться 95 тыс.
Просмотров 25 тыс.
50% 1

Опубликовано:

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 127   
@dary1337
@dary1337 2 года назад
Доброй ночи, лично Я добавляю в конце аргументов cmd: "& exit", это позволяет избавиться от останков cmd в фоновых процессах, если процесс не смог закрыться самостоятельно
@FOXLLive
@FOXLLive 4 года назад
Блин. Это видео просто спасительное! Спасибо!
@МаксимГоловизнин-к4в
Большое спасибо!
@NKCMEH
@NKCMEH 5 лет назад
Хорошее видео спс. p.s *Какая мышка у Хачатура? Уж классно клацает*
@XpucT
@XpucT 5 лет назад
X-738K
@vladyslavbuzhor5652
@vladyslavbuzhor5652 4 года назад
Извините но ваш пример не работает, делал все по видео, но ничего не выводит
@АндрейАндрей-й4д3ф
Для тех, у кого после всех манипуляций с кодировкой для вывода всё равно выходят иероглифы и хрен пойми что, нашёл команду для cmd, мне помогло, только русский текст всё равно отобразит символами, но так-как у меня это только имя сетевого подключения - не критично, главное что основная информация хотя бы есть: REG ADD HKCU\Console /v CodePage /t REG_DWORD /d 0xfde9
@akmalaliev4526
@akmalaliev4526 Год назад
Спасибо большое. А можете показать как вводить значения в командной строке? Например если запустить команду "time", то мы не видим что отобразилось в командной строке. А хотелось бы увидеть и суметь ввести какие значения
@XpucT
@XpucT Год назад
Консоль, как приложение и консоль как взаимодействие - немного разные. Чтобы вводить что-то в консоль, нужно отправлять эти значения, как аргументы своему приложению. То есть в Вашем случае, что Вы спросили, будет работать отдельный exe через простую консоль. То есть консоль не будет являться самостоятельным приложением.
@coolplayerivan
@coolplayerivan 5 месяцев назад
В случае с консольным приложением вы можете использовать аналогичный RedirectStandardInput. Или же можно использовать SendKeys, есть такая вещь в вин апи
@xxxxxxxxxxxxxxxxxx496
@xxxxxxxxxxxxxxxxxx496 4 года назад
классный контент
@rightman13
@rightman13 Год назад
Здравствуйте, искал как вытащить данные ipconfig с консоли в лейбл. наткнулся на ваше видео, написал точно так-же, но в сам лейбл ничего не выводится. есть мысли в чем может быть дело?
@XpucT
@XpucT Год назад
Попробуйте абсолютно ничего не менять в коде и вытащить другие данные. Не ipconfig
@rightman13
@rightman13 Год назад
@@XpucT походу какой-то глюк случился у студии. с какого-то раза сработало и все вывело. спасибо.
@GoldbergCC
@GoldbergCC 4 года назад
CrwateNoWindow по-любому Русские программисты делали ))) Наши любят поугарать и поиздеваться ))))
@imafamiliya9336
@imafamiliya9336 3 года назад
Как можно в С# (если возможно) получить параметры извне не в консольном приложении (static void Main(string[] args)), а в точку входа Windows Form (static void Main()). Спасибо
@XpucT
@XpucT 3 года назад
С помощью dnSpy.
@kalobyte
@kalobyte 5 лет назад
посмотрел ролик увидел ответ на вопрос КАК использовать не увидел ответ на вопрос ЗАЧЕМ сейчас гляну следущее видео, там наверное есть ответ
@XpucT
@XpucT 5 лет назад
Есть операции, которые намного дешевле и проще на cmd, чем на C#. Поэтому есть возможность подключаться. Пример из Win 10 Tweaker: Как узнать, SSD у человека или HDD? На C# никак, на С++ никак, на VB никак. А вот на PowerShell можно.
@kalobyte
@kalobyte 5 лет назад
@@XpucT да вот нашел за пару минут emoacht.wordpress.com/2012/11/06/csharp-ssd/ обертка для винапи не пару строчек, зато не надо вызывать пс но один хер я могу вызвать внешнюю утилиту и считать вывод ее из stdin и регулярками распарсить это все равно не дает понимания смысла этих лямбд, а только больше засирает мозги синтаксисом непонятным
@XpucT
@XpucT 5 лет назад
​@@kalobyte Я это нашёл также когда-то за пару минут. Но судя по тому, что после Моего коммента Ты дал эту ссылку, Ты не очень понимаешь, что это боль в десятой степени. У кодера не должно быть принципов пилить на чистом C#. Это крайне тупо. В случае с вопросом SSD - это тупо в десятой степени. То есть 10 причин. 10 степеней боли в разных местах при использовании такого решения. Есть вопросы копирования файлов или удаления в корзину средствами подключения Basic, также Basic лучше при работе с ярлыками. Чтобы узнать какой монитор или ТВ установлен, C# не поможет. Он не настолько развит, как другие, зато легко даёт подключаться к любому другому. Что касается чтения вывода из внешней утилиты, то эта утилита должна поддерживаться также C#. Если внешняя утилита сделана не консольным окном, а типа консольным, то не получится. Нужно гуглить примеры, скорее всего кто-то это уже делал. Точно такой же вопрос чтения с этой утилиты.
@kalobyte
@kalobyte 5 лет назад
@@XpucT дело не в принципах есл вопрос можно решить без внешних утилит, то он должен решаться без внешних утилит, т.к. антивирусы не любят такое насчет определить тип диска, то я думал, что есть wmi запрос к бд и вообще есть ли в системе свойства у типов хранилищ или дисков если в апи виндовса такого нет, то там конечно будут костыли с доставкой этой инфы и насчет типа консольным я не понял если приложение консольное, то оно выводит данные в стандартный вывод или stderr в шарпе же должны быть функции для принятия потока со стандартного вывода или ввода
@XpucT
@XpucT 5 лет назад
​@@kalobyte ну, уже всё было понятно с первого ответа, но после слов об антивирусах только закрепилось. Очевидно мы не найдём общий язык. Надеюсь, что найдёте ответ на свой вопрос.
@tyuop
@tyuop 5 лет назад
Тоже пытался сделать такую программу к консольному приложению, но она не имеет такого ключа, который я могу ей отправить только когда она уже запущена. После запуска я могу получать логи, которые собираю и отправлять команды. Как сделать возможность *ввода* команд? И консольное приложение может очистить консоль и изменить текст на экране. Для ввода программа должна быть уже запущена (т.е поле для ввода)
@XpucT
@XpucT 5 лет назад
Console для олдфагов. Это не наш метод.
@tyuop
@tyuop 5 лет назад
XpucT нет, есть консольное приложение (node.js windows сервер), от которого нужно получать логи в реальном времени (сделано, спасибо видео) и вводить команды Теперь есть красивое приложение на C#, но команды вводить нельзя
@sergeykozhemyakin7707
@sergeykozhemyakin7707 3 года назад
очень крутой видос, спасибо. а через командную строку можно создать видеозвонок конкретному пользователю по скайпу?
@XpucT
@XpucT 3 года назад
Если Skype принимает такие аргументы, то да. Но нужно читать документацию. Гуглить примерно так: Skype API calls
@sergeykozhemyakin7707
@sergeykozhemyakin7707 3 года назад
XpucT спасибо
@user-wu-tang
@user-wu-tang Год назад
@@sergeykozhemyakin7707 добрый день У вас получилось написать код, он заработал?
@VAscetic
@VAscetic 3 года назад
Спасибо огромное! Именно то, что я искал: мне надо было, чтобы командная строка у яндекс-облака запрашивала новый токен. Большую часть параметров я нарыл верно, но что-т с синтаксисом намудрил похоже. Ваш пример заработал :) А может, сейчас понимаю, дело было просто в "/c" поля аргументов. В общем, очень полезное видео!
@Мибус
@Мибус 2 года назад
Пересмотрел несколько раз это видео и ещё предыдущее про лямбда выражение и как-то не могу уловить смысл. Я понял, что эта лямбда упрощает код, но не могу въехать когда лучше её использовать почему в конкретном примере мы используем именно такую запись? В предыдущем уроке вроде было понятно. Вот на примере process.OutputDataReceived += (s, e) => { label.Text += e.Data + Environment.NewLine; }; какая бы была запись без использования лямбды?
@XpucT
@XpucT 2 года назад
Привет 🖐 v004.radikal.ru/2111/ab/6258118893-6-f61e128384c217fd351076acdfdb5826.mp4
@Мибус
@Мибус 2 года назад
@@XpucT спасибо большое! Стало понятнее) Я сначала даже "вышел с этим вопросом в Интернет" и меня там гугл закидал делегатами, полез в самой вижуал студии внутрь OutputDataReceived и в итоге опять упёрся в делегаты. Почувствовал себя тупым =) Просто не сразу въехал, что есть такое по своей сути OutputDataReceived и почему мы потом пишем лямбду. Вдруг в будущем попадётся нечто подобное, а я не смогу понять что с ним делать). Как оказалось это такое же событие как какой-нибудь маус клик и т.п.. Да, в видео ты говорил, что это событие, но это как-то не отложилось в памяти и в ответе на комментарий это было продемонстрировано наглядно)
@IlyaArlenka
@IlyaArlenka 4 года назад
CreateNoWindow значит "не создавать окно", с английского во многих случаях нельзя переводить в таком же порядке)
@rockforever-h6k
@rockforever-h6k 2 года назад
*создать без окна
@redtayron6390
@redtayron6390 5 лет назад
Еще два крутых видео на ночь, точно ночью код присниться))
@ДанилЛафин
@ДанилЛафин 4 месяца назад
Спасибо тебе большое, два часа ебался с классом "Powershell", пытался заставить его работать, не смог.. нашёл твоё видео (ещё года два назад смотрел, но тогда не понадобилось), за пару минут переписал свой код согласно инструкции))) и всё заработало Вот просто от души, жирный лайк
@awfsdgsgeefdgwef
@awfsdgsgeefdgwef 5 лет назад
Привет, хотел бы узнать, как сделать возможным общение 2 твоих программ? Вроде есть что-то, как pipe. Но не понимаю, что да как. Извините, если может не ясно выразился
@УсманГалеев
@УсманГалеев 7 месяцев назад
Привет, Хачатур! По ходу урока переписывал код, написан точь-в-точь как у тебя, но у меня программа открывает новое окно. Передал программе права админа, ситуацию не изменило
@chechensoft_ru
@chechensoft_ru 2 года назад
Показывает ошибку на это: process.BeginOutputReadLine(); process.OutputDataReceived += (s, e) => { label1.Text += e.Data + " "; }; Ошибка: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'label1' не из того потока, в котором он был создан." пишу все как на видео. может что то изменилось?
@XpucT
@XpucT 2 года назад
Про потоки видео есть на канале и как ими управлять.
@МаксимМягков-я9р
Не запускается. Пишет "имя label1 не существует в данном контексте" подскажите где проблема
@ТотЕщёГастелло
@ТотЕщёГастелло 2 года назад
Здравствуйте. Подскажите, есть ли какое-то решение. как в уже открытую CMD, передавать команды, то есть CMD открыли отдельно и надо ее поймать, и провести с ней операции?
@XpucT
@XpucT 2 года назад
Добрый день. Разве что перехват клавиш и донабор. Либо AutoIt. Программно на C# так просто не залезешь в чужой интерфейс.
@ТотЕщёГастелло
@ТотЕщёГастелло 2 года назад
@@XpucT Понятно. Запустил gcc gdb, а подключится к нему не могу. Хотел сделать для него удобный интерфейс.
@ТотЕщёГастелло
@ТотЕщёГастелло 2 года назад
@@XpucT Спасибо. По мучался, но получилось, разобрался, на самом деле очень удобный, этот Autoit. Тут еще выяснил, что его можно подключать к C#, вообще много процессов можно упростить. Ее раз спасибо, за подсказку.
@Валентина-р9ш3х
@Валентина-р9ш3х 3 года назад
может, тут кто-нибудь еще обитает... не помогает смена кодировки на 1251, все равно возвращает крокозябры. В чем может быть причина?
@XpucT
@XpucT 3 года назад
Я читаю все комментарии. Привет. Ты получаешь данные из cmd или что-то вызываешь через cmd?
@Валентина-р9ш3х
@Валентина-р9ш3х 3 года назад
@@XpucT Привет! Делаю как у тебя на видео, то есть вызываю cmd с аргументом "/c chcp 1251 & ipconfig". С 65001 все в порядке.
@Валентина-р9ш3х
@Валентина-р9ш3х 3 года назад
@@XpucT Разобралась. Помогла установка StandardOutputEncoding (поставила в моем случае UTF8 и все стало ок). Спасибо :)
@neuro_picture
@neuro_picture 2 года назад
Спасибо за урок! Я чёт не очень понял как лучше и эффективнее завершать процессы программ, служб и тд Cmd($"taskkill /f /im distnoted.exe" ); Так Или так foreach (Process process in Process.GetProcessesByName("regedit")) // Для каждого процесса, у которого имя regedit { process.Kill(); // Завершить процесс }
@XpucT
@XpucT 2 года назад
Оба варианта рабочие, однако, когда нужно завершить процесс (по какой-то причине) в отдельном потоке, то, чтобы не создавать Task или Thread проще завершить процесс в cmd.
@VAscetic
@VAscetic 3 года назад
Кстати, окно у меня всё равно создаётся)) Похоже машинка медленная...
@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; }
@akmalaliev4526
@akmalaliev4526 9 месяцев назад
Добрый день еще раз. Не могли бы вы рассказать про консоль "как взаимодействие"? Например я по вашему материалу запускаю команду plink (из состава putty) с аргументами, однако, если я делаю запрос на сервер в первый раз, то система даже при использовании аргумента для plink "-batch" запрашивает разрешение сохранить или нет ssh ключ. С помощью вашего урока я все это читаю, а как послать на такой запрос ответ "yes" не знаю. Если не сложно просветите как это сделать?
@akmalaliev4526
@akmalaliev4526 9 месяцев назад
сам понял, все получилось. Не совсем так как у Вас. Если интересно кому - обращайтесь
@АндрейАндрей-й4д3ф
А вот по поводу 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. Если есть решение, был бы рад услышать, но пока что, что решения не нашёл.
@Колобожко
@Колобожко 5 лет назад
какая ось? этот командлет вроде только в win10
@proProger
@proProger Год назад
А как Писать в C# Комманды Коммандной Стороки (CMD) Ответь Пж
@proProger
@proProger Год назад
Плиз
@fall1n1
@fall1n1 3 года назад
Насколько же у тебя крутые видео, смотрю и обучаюсь с большим удовольствием! Что думаешь по поводу MAUI?
@XpucT
@XpucT 3 года назад
Таким новинкам даю какое-то время на развитие. Пока рано говорить. Но, как показывает практика, это очередная попытка сделать что-то, на что потом Microsoft успешно забьёт. Не могу опять же точно говорить, что так будет, но так показывает практика
@try_parse99
@try_parse99 2 года назад
Привет, У меня приложение плохого качества в смысле что шрифты кнопки и прочее плохо отображаются, типа блюр. Не знаешь как пофиксить ?
@XpucT
@XpucT 2 года назад
Привет 🖐 В свойствах формы, как минимум стоит указать шрифт, который не блюрит. Есть по похожей теме видео: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-weEjciHBEyE.html
@try_parse99
@try_parse99 2 года назад
@@XpucT Спасибо за то что быстро ответил и помог :3
@sergegoist1488
@sergegoist1488 3 года назад
Реальная годнота. Спасибо тебе.
@farmer2456
@farmer2456 2 года назад
Очень полезно, но мне интересно, как продолжить работу с консолью? Допустим, я написал команду "del /p file.txt", получил вывод "Удалить [Y(да)/N(нет)]?" и мне нужно для удаления написать "y" в консоль. Можно ли как-то реализовать такое?
@XpucT
@XpucT 2 года назад
Желательно смотреть все видео по плейлисту, там есть ответ на этот вопрос. ru-vid.com/group/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_
@farmer2456
@farmer2456 2 года назад
@@XpucT Понял, поищу. Спасибо.
@toluncrazy8308
@toluncrazy8308 3 года назад
Немного непонятно на том моменте, когда вы рассказываете про свойства UseChellExecute и RedirectStandardOutput, вероятно просто я тупой, но раньше я об этих вещях не где не слышал, а их описание почему то звучит для меня слишком страшно
@XpucT
@XpucT 3 года назад
Но в видео-то всё понятно? =)
@toluncrazy8308
@toluncrazy8308 3 года назад
@@XpucT да, в целом, всё чётко :)
@rhseo4249
@rhseo4249 2 года назад
Подскажите как передать в командную строку вот такую команду Wbadmin start backup
@Авакидик-щ2з
@Авакидик-щ2з 3 года назад
Доброго времени суток! Наткнулся на ваши ролики. Долго пытаюсь понять принцыпы Power Shell, но пока безуспешно. Посоветуйте как пробить эту стену. Заранее благодарен.
@XpucT
@XpucT 3 года назад
PowerShell довольно медленно развивается, однако почти всё можно найти на stackoverflow.
@Авакидик-щ2з
@Авакидик-щ2з 3 года назад
Спасибо.
@DinaSolo13
@DinaSolo13 3 года назад
Спасибо тебе за уроки! У меня только запрашивает запуск программы от Админа. Может кто подсказать, как ее с с# запустить или как по умолчанию запускать в cmd всегда от админа?
@XpucT
@XpucT 3 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-jHVTmDePWAA.html
@DinaSolo13
@DinaSolo13 3 года назад
@@XpucT Спасибо!
@botzmann3328
@botzmann3328 5 лет назад
многобукф. можно мативационноное видео? типо зачем с 0? ты проги делаешь этим живешь. а юзеру без практики смысл. что тебе мотевировало это изучать? вин тен твикер тыж не сразу придумал. твой путь?)
@XpucT
@XpucT 5 лет назад
Интересная мысль. Наверно нужно будет 👍
@botzmann3328
@botzmann3328 5 лет назад
@@XpucT люблю твою фолософию слушать)
@botzmann3328
@botzmann3328 5 лет назад
@@deftrue4444 ого. загнул))) но я к тому нужноли это? мне нравиться к примеру фотошопить. знаю. учусь 7 лем лет. и всеравно тяп ляп. могу программить теоритически. но не кончиться ли так же? взял ноу экран к сожелению отсикает возможность шопить. поменять нет возможности. у праграммиромирования нет зависимости от железа. тут дело скорей в том что могу а не хочу. вопрос в том не накроеться все это без практики? что огн делал как развился в этом направлении? делать для себя тобишь в муср что ли?
@botzmann3328
@botzmann3328 5 лет назад
@@deftrue4444 спасибо. многое объяснил. учту
@ВладимирДанилин-м3к
Здравствуйте, попробовал ваш код, но при нажатии на кнопку вылезает ошибка "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'label1' не из того потока, в котором он был создан.". А также заметил, что если в выражении (s, a) я заменяю "a" на "e" то эта переменная подчеркивается красным. В точности повторил ваш код.
@XpucT
@XpucT 5 лет назад
Добрый день, Володя. Скиньте, пожалуйста, ответом весь код полностью. Кстати, ошибка с потоками будет рассмотрена позже и объясню, как это обойти.
@ВладимирДанилин-м3к
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; }; } } }
@ВладимирДанилин-м3к
@@XpucT Проблема решена) System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
@XpucT
@XpucT 5 лет назад
@@ВладимирДанилин-м3к это лайфхак, но злоупотреблять не рекомендуется, потому что если будут ошибки, то Ты их просто не выловишь. Просто всегда помни, что у Тебя подключён лайфхак.
@evagor730
@evagor730 4 года назад
Та же история. Костыли сейчас приделаю, но почему такое происходит, не догоняю. Насчет переменной события: как вообще у Хачатура работает с переменной e, если выше этот же символ объявлен переменной события кнопки?
@Desiderathus
@Desiderathus 2 года назад
03:40 с 21 строки по 27 это что? Анонимный метод?
@XpucT
@XpucT 2 года назад
Давай назад, Данил и не забегай вперёд. Про методы уже был урок. Идти в этом курсе нужно *строго последовательно* ➜ ru-vid.com/group/PL05SB3rBbUsraqiEUeS70RKhVAu97nGeb
@Desiderathus
@Desiderathus 2 года назад
@@XpucT О, спасибо за ответ. Да не, я уже и Шилдта прочитал на metanit сижу и все твои видео смотрел. Решил это видео пересмотреть и в голове, наверное, все перемешалось, из-за недостатка практики, я увидел здесь не то, что есть на самом деле. а Сейчас обдумал и понял.
@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 года назад
Добрый день. Вы изучите материал, который Вам тут предоставлен, потом задайте вопрос. А Вы свой код откуда-то взяли, причём устаревший метод объявлений. По потокам также есть видео ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-vHqHrf914TA.html
@maxsemirin
@maxsemirin 4 года назад
Здравствуйте! У меня не срабатывает амперсанд. Сначала думал, что в коде, а в итоге сама консоль пишет "Неправильный формат параметра: $". В чем может быть проблема?
@XpucT
@XpucT 4 года назад
Добрый день. Смотря в какой среде разработки Вы работаете. Если в старой, где C# версия ниже 4, то он не знает, что это. Проблем в Visual Studio последней версии не может быть со знаком амперсанда.
@MrPronav
@MrPronav 4 года назад
Очень познавательно! Спасибо!
@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 года назад
Привет 🖐 i.imgur.com/fepTA3e.png
@ianm8107
@ianm8107 4 года назад
@@XpucT Спасибо!!!долбанная невнимательность...
@tyuop
@tyuop 5 лет назад
Upd: Видимо в ответах к комментариям не приходят уведомления, либо они не появляются в списке. Вставлю ответ сюда: XpucT нет, есть консольное приложение (node.js windows сервер), от которого нужно получать логи в реальном времени (сделано, спасибо видео) и вводить команды Теперь есть красивое приложение на C#, но команды вводить нельзя
@XpucT
@XpucT 5 лет назад
Я видел ответ, но не понял его совершенно. В чём конкретно вопрос? В поле ввода? Закинуть textBox и всё.
@tyuop
@tyuop 5 лет назад
XpucT как сделать ввод команды в допустим cmd без ключей, а напрямую, как с выводом. Только здесь не cmd, а стороннее консольное приложение
@alex31347
@alex31347 5 лет назад
Большое спасибо за уроки!!! Можешь подсказать: 1. Как проверить доступ к файлу, например, для того, чтобы удалить или переименовать. 2. Как запустить child процесс с ограничением использования ресурсов CPU, оперативка
@XpucT
@XpucT 5 лет назад
1. try { stream = ТвойФайл.Open(FileMode.Open, FileAccess.Read, FileShare.None); } catch { // ТвойФайл занят и трогать нельзя } 2. Priority = ThreadProirity.Highest ( подробнее ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-vHqHrf914TA.html )
@alex31347
@alex31347 5 лет назад
XpucT Спасибо большое за ответ!! 1. Данная реализация проверяет занят ли данный файл другим процессом, а что насчет атрибутов, например, файл только для чтения, а я его хочу удалить. 2. В данном видео рассказывается о потоках, а я имел ввиду запуск командной строки с параметрами и для этой командной строки огранить использование ресурсов CPU и Memory .
@XpucT
@XpucT 5 лет назад
@@alex31347 1. File.SetAttributes(ПутьКфайлу, File.GetAttributes(ПутьКфайлу) & ~FileAttributes.ReadOnly); 2. Нужно искать в сети, есть ли вообще контроль управления памятью у cmd. Но что-то подсказывает, что контролировать нужно не cmd, а то, что она использует.
@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 года назад
@@XpucT Спасибо большое, теперь все рабоет
@mozze3395
@mozze3395 5 лет назад
Уроки по WPF будут?
@XpucT
@XpucT 5 лет назад
Только если в этом будет необходимость или народ решит сделать что-то, где требуется WPF.
@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 официальный образ для разрабов (тот что с вижуалкой сразу и тд) и накатить твикер с активатором, хех Спасибо
@NewbieTM_
@NewbieTM_ 3 года назад
Добрый вечер. Я до данного плейлиста посмотрел еще 1 плейлист у другого человека. За 20 уроков вы объяснили все что он говорил за 60. Но после синтаксиса, я как будто начал смотреть видео по другим языкам. До этого не объяснялось что такое реестр или язык cmd. А без этих знаний, мне кажется что просмотр становится отчасти бесполезным. Как будто вы стало все обьснять для более продвинутой аудитории. Где мне все это понять, чтобы просмотр стал более эффективным?
@XpucT
@XpucT 3 года назад
В идеале пройтись по этому плейлисту: ru-vid.com/group/PL0U1uvNv2tf6DduPOCc9-IGJjdVghlvo_ Но только смотреть, не делать. Делать можно после просмотра всего листа, ибо многое уже поменялось.
@NewbieTM_
@NewbieTM_ 3 года назад
@@XpucT Спасибо за такой скорый ответ. Обязательно пройдусь. Конечно здесь мне понравилось лямбда выражение, которое действительно связанно с синтаксисом и наверное упрощением читабельности кода и не только. А Нужно идти по новому плейлисту сейчас или уже после просмотра данного плейлиста?
@XpucT
@XpucT 3 года назад
@@NewbieTM_ в идеале идти по плейлисту C# после просмотра плейлиста Windows.
Далее
11 ming dollarlik uzum
00:43
Просмотров 625 тыс.
ДЕНЬ УЧИТЕЛЯ В ШКОЛЕ
01:00
Просмотров 1,2 млн
Windows 7. 15 Years Later.
15:50
Просмотров 171 тыс.