Перейти к содержанию

burask

Пользователи
  • Постов

    3
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные burask

  1. Невежда так же в ослепленье
    Бранит науки и ученье,
    И все ученые труды,
    Не чувствуя, что он вкушает их плоды.

    И.А. Крылов 

    от себя добавлю:

    Меня расстраивает современная тенденция, с подачи некоторых журналистов,  в попытках уязвить отличников в их, якобы, ущербности. Это что-то вроде самоутверждения за чужой счет. Успешность человека не зависит от его успеваемости в школе, а зависит от его способности и умения планировать и следовать намеченному плану.

    А по школьному образованию - на данный момент, насколько знаю, нет способов опредения способностей человека на его раннем этапе развития (не берем в счет гениев), поэтому школа дает универсальное образование, а человеку уже самому решать - надо это ему или нет. Проблема в том, что некоторые индивидуумы решив, что какой-то предмет(ы) ему не нужен(ы), начинают всячески препятствовать в его изучении другим ученикам.  Не хочешь учиться - не учись, но не мешай другим.

    • Нравится 2
  2. 1. Ничего сносить не надо.

    2. Разблокировать ПК методами http://boltunishka.berserki.ru/archives/459

    3. Лечить антивирусом. Лучше снять винт и проверить на другом ПК. Если другого ПК нет, то в безопасном режиме.

    4. Не работайте с привилегиями администратора, тогда вероятность поймать всякую дрянь значительно снижается. Установленный антивир не панацея.

    Если сделать сначала п.3 , а потом п.2 головняк обеспечен.

  3. стараюсь писать самодокументированный код с комментариями и шириной в 80 символов.

    что-то типо:


    /**
    * Модуль для работы с системными службами
    * License: GPLv2
    * Authors: Дамбаев Алесандр, [email protected]
    * Copyrights: Дамбаев Александр, [email protected]
    * Date: Jul 26, 2009
    * Version: 1.0
    * Example:
    * ---
    * import prt_ctrl. scm;
    * Scm scm = new Scm;
    * Service svc = scm. open_service( "Prt_Service");
    * try
    * {
    * svc. stop( );
    * }catch( Exception e)
    * {
    * //kills svc
    * }
    * ---
    */
    module prt_ctrl. scm;

    import win32. windows;
    import win32. winsvc;
    import std.stdio;
    import std.path;
    import std.c.string;

    // права доступа к службе
    const SERVICE_RIGHTS = SERVICE_START | SERVICE_STOP | SERVICE_QUERY_STATUS |
    SERVICE_QUERY_CONFIG;
    // права доступа к менеджеру служб
    const SC_RIGHTS = SC_MANAGER_ALL_ACCESS;

    /**
    * класс, описывающий системную службу
    */
    class Service
    {
    public:
    /**
    * конструктор класса
    * Params:
    * scm = дескриптор менеджера служб
    * name = внутреннее имя системной службы
    * dw_access = права доступа к системной службе
    * Throws:
    * "unable to open service" если не удалось получить
    * требуемый доступ к службе.
    */
    this( SC_HANDLE scm,
    char[] name,
    DWORD dw_access = SERVICE_RIGHTS)
    {
    h_service = OpenService( scm, (name~'\0'). ptr, dw_access);
    if( !h_service)
    throw new Exception( "unable to open service");
    }
    ~this( )
    {
    if( h_service)
    CloseServiceHandle( h_service);
    }
    /**
    * запуск системной службы
    * Throws:
    * "unable to start service" если запуск не удался;
    */
    void
    start( )
    {
    if( !StartService( h_service, 0, null))
    throw new Exception( "unable to start service");
    }
    /**
    * останавливает службы
    * Throws:
    * "unable to stop service", если не удалось дать команду
    * для остановки, либо служба не остановилась
    * "unable to query service status", если не удалось
    * узнать статус службы
    * "service stopping is timouted", если служба не смогла
    * остановиться за 60 сек.
    * "unable to query service config", если не удалось
    * узнать конфигурацию службы
    */
    void
    stop( )
    {
    SERVICE_STATUS ss;
    if( !ControlService( h_service, SERVICE_CONTROL_STOP, &ss))
    {
    throw new Exception( "unable to stop service");
    }
    if( !QueryServiceStatus( h_service, &ss))
    throw new Exception( "unable to query service "
    "status");
    uint wait;
    while( ss. dwCurrentState != SERVICE_STOP_PENDING &&
    wait < 6000)
    {
    Sleep( 10);
    ++wait;
    if( !QueryServiceStatus( h_service, &ss))
    throw new Exception( "unable to query "
    "service status");
    }
    if( ss. dwCurrentState != SERVICE_STOP_PENDING)
    throw new Exception( "service stopping is time"
    "outed");
    wait = 0;
    while( ss. dwCurrentState != SERVICE_STOPPED &&
    wait < 6000)
    {
    Sleep( 10);
    ++wait;
    if( !QueryServiceStatus( h_service, &ss))
    throw new Exception( "unable to query "
    "service status");
    }
    if( !QueryServiceStatus( h_service, &ss))
    throw new Exception( "unable to query service "
    "status");
    if( ss. dwCurrentState != SERVICE_STOPPED)
    throw new Exception( "unable to stop service");
    }
    /**
    * Возвращает имя бинарного файла системной службы
    * Returns:
    * имя бинарного файла системной службы
    * Throws:
    * "need to open service first", если доступ к службе
    * не получен
    * "unable to query service's config", если невозможно
    * получить конфигурацию службы
    */
    char[]
    image( )
    {
    QUERY_SERVICE_CONFIG * service_conf;
    DWORD dw_needed;
    char[] buf = new char[ 256];
    service_conf = cast(QUERY_SERVICE_CONFIG*)buf.ptr;
    if( !h_service)
    throw new Exception( "need to open service "
    "first");
    if( !QueryServiceConfig( h_service, service_conf, 256,
    &dw_needed))
    throw new Exception( "unable to query service's"
    " config ");
    return getBaseName( service_conf. lpBinaryPathName[ 0..
    strlen(service_conf. lpBinaryPathName)]);
    }
    private:
    /// дескриптор службы
    SC_HANDLE h_service;
    /// имя службы
    //char[] s_name;
    }

    /**
    * класс, описывающий работу с менеджером служб
    */
    class Scm
    {
    public:
    /**
    * Конструктор класса
    * Params:
    * s_mach = имя компьютера
    * dw_access = права доступа к менеджеру служб
    * Throws:
    * "unable to open sc", если невозможно получить доступ с
    * затребованными правами
    */
    this( char[] s_mach = null, DWORD dw_access = SC_RIGHTS)
    {
    s_machine = s_mach;
    if( s_mach != null)
    h_sc = OpenSCManager( (s_machine~'\0'). ptr,
    null, dw_access);
    else
    h_sc = OpenSCManager( null, null, dw_access);
    if( h_sc == null)
    throw new Exception( "unable to open sc");
    }
    ~this( )
    {
    if( h_sc)
    CloseServiceHandle( h_sc);
    }
    /**
    * Создает класс службы и открывает ее
    * Params:
    * name = внутреннее имя службы
    * dw_access = access flags
    * Returns:
    * указатель на экземпляр класса Service
    */
    Service
    open_service( char[] name, DWORD dw_access =
    SERVICE_RIGHTS)
    {
    return new Service( h_sc, name, dw_access);
    }
    private:
    /// имя компьютера
    char[] s_machine;
    /// дескриптор менеджера служб
    SC_HANDLE h_sc = null;
    }

    вот вопрос - комментарии на каком языке предпочитаете писать? Раньше все комментарии оставлял на английском, с замахом на глобальность творения (:, но после того, как начал работать "программистом", заметил, что довольно много людей не знают английского... кто-нить читал каменты к коду на транслите? (: приходилось ... гг

    А вобще - стиль склонен меняться с опытом

    Что за язык программирования ?

×
×
  • Создать...