• Почему не выходит выполнить команду?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Никакие "cmd.exe /k" здесь не нужны.

    Process.Start("C:\\Program Files (x86)\\TestProg\\TestProg.exe", "-c -d");
    Ответ написан
    3 комментария
  • Почему не выходит выполнить команду?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    попробуйте
    var command = @"C:\Program Files (x86)\TestProg\TestProg.exe -c -d";


    Drottarutarnum,
    дело в том, что там куча переменных из вне которые меняют команду, я не могу выполнять файл
    это вопрос только ваших умений работы со строками

    Александр Юдаков,
    ну или так?
    using System.Diagnostics;
    
    namespace run_app
    {
        class Program
        {
            static void Main(string[] args)
            {
                var pi = new ProcessStartInfo();
                pi.FileName = @"C:\Program Files\Notepad++\notepad++.exe";
                pi.Arguments = @"C:\Windows\System32\drivers\etc\hosts";
                Process.Start(pi);
            }
        }
    }

    выхлоп YC6ROFL.png
    Ответ написан
    8 комментариев
  • Как сделать приложение вместо проводника?

    Moskus
    @Moskus
    То, что вы описываете, называется Kiosk mode.
    https://docs.microsoft.com/en-us/windows/configura...
    Ответ написан
    Комментировать
  • Как распределить события между всеми активити?

    EreminD
    @EreminD
    Кое-что умею
    Реактивное программирование?

    RxJava, RxAndroid в помощь
    Ответ написан
    Комментировать
  • Как сделать закругление кнопок?

    @terminator-light
    <style name="AppTheme" parent="YourTheme">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
            <item name="materialButtonStyle">@style/systemButtonStyle</item> <!-- если используете MaterialComponents -->
            <item name="buttonStyle">@style/systemButtonStyle</item> <!-- если используете AppCompat  -->
     </style>
    
    <style name="systemButtonStyle" parent="Widget.MaterialComponents.Button">
          <item name="android:background">@drawable/roundedbutton</item>
    </style>

    drawable/roundedbutton.xml
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
        <solid android:color="#ff0000" />
        <corners android:radius="8dp"/>
    </shape>
    Ответ написан
    5 комментариев
  • Как сделать get и set на операторах присваивания?

    @vanyamba-electronics
    #include <iostream>
    
    using namespace std;
    
    template<typename DataType>
    struct Data {
      static const DataType m_default_value;
      DataType m_data;
    
      Data() : m_data(m_default_value) {}
      
      Data(const DataType& value) : m_data(value) {}
    
      operator DataType () const {
        return m_data;
      }
    
      void operator = (const DataType& _data) {
        m_data = _data;
      }
    };
    
    template <> Data<double>::m_default_value = 0.;
    
    int main(int argc, char** argv) 
    {
        Data<double> data = 3.14159;
        cout << data << endl;
        return EXIT_SUCCESS;
    }
    Ответ написан
    Комментировать
  • Как передать двумерный массив в функцию без динамического выделения памяти?

    @Mercury13
    Программист на «си с крестами» и не только
    Для неизменяемых данных я придумал.
    #include <iostream>
    
    template <class T>
    struct Array
    {
        const size_t size;
        const T* const data;
    
        const T* begin() const { return data; }
        const T* end() const { return data + size; }
    
        constexpr Array(const std::initializer_list<T>& x)
            : size(x.size()), data(x.begin()) {}
    };
    
    using Row = Array<int>;
    using Matrix = Array<Row>;
    
    Matrix mtx = {
      {1, 2, 3 },
      { 10, 20, 30, 40, 50 },
      {},
      { 100 }
    };
    
    int main()
    {
        for (auto& u : mtx) {
            for (auto& v : u) {
                std::cout << v << ' ';
            }
            std::cout << std::endl;
        }
        return 0;
    }


    Для изменяемых данных пока вышло только так.
    #include <iostream>
    
    // Изменяемый вариант
    template <class T>
    struct Array2
    {
        const size_t size;
        T* const data;
    
        T* begin() { return data; }
        T* end() { return data + size; }
        const T* begin() const { return data; }
        const T* end() const { return data + size; }
        T& operator[](int i) { return data[i]; }
    
        template <size_t N>
        constexpr Array2(T (&x)[N])
            : size(N), data(x) {}
    };
    
    using Row2 = Array2<int>;
    using Matrix2 = Array2<Row2>;
    
    int main()
    {
        int i;
        std::cin >> i;
    
        int row1[] = { 1, i, 3 };
        int row2[] = { 10, 2*i, 30, 3*i, 50 };
        int row3[] = { 13 };
        int row4[] = { 100 };
    
        Row2 mtx[] = { row1, row2, row3, row4 };
    
        mtx[1][4] = i * 6;
    
        for (auto& u : mtx) {
            for (auto& v : u) {
                std::cout << v << ' ';
            }
            std::cout << std::endl;
        }
        return 0;
    }
    Ответ написан
    5 комментариев
  • Как выполнить команду по событию KeyDown для TextBox?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Можно использовать конвертер i:InvokeCommandAction из System.Windows.Interactivity.

    1) Добавить сборку System.Windows.Interactivity с помощью добавления ссылки (она в списке расширений).
    5cf0c5efb3bee685207836.png
    2) Добавить указанную сборку в xaml:
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

    3) Использовать i:EventTrigger и i:InvokeCommandAction:
    <TextBox>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="KeyDown">
                <i:InvokeCommandAction Command="{Binding KeyDownCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </TextBox>


    Но если вы хотите там вызывать только обработку представления, например, запретить определённые клавиши (то есть, не нужны данные из слоя бизнес-логики), то есть смысл обработку сделать обычным способом - в code-behind (xaml.cs).
    Ответ написан
    Комментировать
  • Почему нельзя перегрузить оператор?

    SerJook
    @SerJook
    кодер
    В целях оптимизации памяти стандарт языка C++ называет vector<bool> специальным стандартным контейнером, в котором каждый элемент bool использует только один бит памяти вместо того, чтобы занимать 1 байт, как занимает обычный bool. Ценой этой оптимизации является то, что этот контейнер не предоставляет всех возможностей и интерфейс, как это делает нормальный стандартный контейнер.

    Т.к. мы не можем получить адрес отдельного бита в байте, такие вещи, как operator[] не могут вернуть bool&, а вместо этого возвращают прокси-объект, который позволяет манипулировать отдельным битом. Этот прокси не является типом bool&, вы не можете присвоить его адрес указателю с типом bool*, как вы могли бы сделать с "нормальным" контейнером. Это означает что bool &pb =v[0] не является валидным кодом.
    Ответ написан
    Комментировать
  • Почему нельзя перегрузить оператор?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    bool& operator [] (int index) {
        return selfVector[index];
      }

    должен стать
    std::vector<bool>::reference operator [] (int index) {
        return selfVector[index];
      }
    Ответ написан
    Комментировать
  • Где в MVVM разместить глобальный класс?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Почитайте про DI контейнеры
    Ответ написан
    Комментировать
  • Где в MVVM разместить глобальный класс?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Тут два варианта: создать статический класс и в нем ссылку на экземпляр класса для работы с устройством и второй вариант — просто передавать требуемый класс в параметрах конструктора каждой VM.
    Ответ написан
    4 комментария