• Можно ли узнать какие вкладки открыты у пользователя в браузере?

    @x0000x
    подойти за спину и посмотреть, ток не спалиться
    Ответ написан
    Комментировать
  • Строка без кавычек, и как это работает?

    воспринимается как константа, в случае не существования константы возвращается её название.
    такие вот чудеса =)

    define( 'TEST_CONST', '123qwe' );
        $test = [ TEST_CONST, TEST_CONST2 ];
        var_dump( $test );


    array(2) {
      [0]=>
      string(6) "123qwe"
      [1]=>
      string(11) "TEST_CONST2"
    }
    Ответ написан
    5 комментариев
  • Как получить данные из стандартных команд cmd.exe в своем приложении на C#, не вызывая подпрограммы?

    @mayorovp
    У вас путаница в мыслях... Во-первых, "подпрограмма" - это в C# синоним метода. Если вы используете winforms - то вы уже используете кучу подпрограмм :) А то, чего вы хотите избежать, называется "внешняя программа" или "дочерний процесс".

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

    В-третьих, ping, tracert и netsh не являются командами cmd.exe. Команды cmd.exe - это echo, if, call, set, goto, for и т.д., а то, что вы перечислили - это системные утилиты.

    Теперь по вопросу.

    ping. Имеется вот этот класс: msdn.microsoft.com/en-us/library/system.net.networ... Ни разу с ним не работал, но выглядит удобным.

    tracert. Используйте тот же класс, указав Ttl в PingOptions.

    netsh. Тут все сложнее. Дело в том, что эта программа - обертка для кучи разных настроек, находящихся в совершенно разных местах. Если вам нужно получать данные - то попробуйте поискать их в msdn.microsoft.com/en-us/library/system.net.networ... Если их там нет - гуглите. Главное - гуглите без ключевого слова netsh.

    etc. А вот тут все не просто сложно, а невозможно. Невозможно взять неизвестную заранее утилиту, и сделать то же самое, что она делает, не запуская ее при этом. Поэтому вам надо определиться - либо ваша программа умеет выполнять фиксированный список действий - либо ей можно передать любую команду, но она будет запускать дочерние процессы. Возможен и промежуточный вариант - есть действия, которые программа может выполнять сама, а для выполнения других будут запускаться дочерние процессы.
    Ответ написан
    Комментировать
  • Правила объявления интерфейсов. "I" или "!I"?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Никакой "официальной" жесткой конвенции на этот счет нет. Как уже указал RGV, какую конвенцию использовать - личное дело команды / фирмы / техдира.
    Я сам в свое время пришел к Java из Pascal и .NET, и тоже придерживаюсь нотации с I, т.к. это позволяет в коде визуально отличить интерфейс от класса. Просто для примера:
    ...
      IProducer simpleProducer = new Producer();
      IProducer sofisticatedProducer = new SpecialProducer();
    ...
      public void produceSomething(IProducer producer);

    При взгляде на такой код сразу понятно, кто из ху, без всяких дополнительных кликов, наведения курсора и прочих пританцовываний с IDE.
    И хотя это никак явно не помешает креативному балбесу влепить класс там, где нужно использовать интерфейс, это поможет проводящему ревью заметить грабли невооруженным глазом :) С моей точки зрения цена такого удобства в 1 (один !) доп. символ в имени вполне оправдана.
    Ответ написан
    Комментировать
  • C# как получить Bool из WebRequest?

    @plasticmirror
    судя по предыдущему вопросу "как из пхп вытащить авторизацию для c# приложения" - это вторая часть?

    просто почитайте на досуге что такое HTTP и как оно работает
    в данном случае не bool надо заворачивать, а скорее 200 ОК / 401 Unauthorized генерировать / разбирать
    http status code вобчем

    п.с. заодно изучите что такое using, а то глазам больно смотреть
    Ответ написан
    Комментировать
  • Nginx ошибка - Primary script unknown ?

    Keksinautin
    @Keksinautin
    Software Engineer
    Ошибка говорит о том, что php-fmp на может найти файл, который вы просите запустить.
    Вообще если отследить прохождения запроса по вашему конфигу, то получается примерно следующие:
    1. пришел запрос, пусть даже /
    2. try_files такой файл не находит и отправляет его в @rewriteapp;
    3. @rewriteapp отправляет нас на адрес /app.php//
    4. теперь после реврайта мы попадаем в location и тут указываем, что
    SCRIPT_FILENAME = var/www/test.lan/public_html/app.php//
    вот этот адрес php-fmp и не находит.

    p.s. вы уверены, что хотели указать относительный адрес в директиве root?
    В php-fmp он тоже приходит как относительный, и я вот так сразу ни скажу, корень у него сейчас текущая директория или какая другая.
    Ответ написан
    Комментировать