Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Программа

  1. Как сделать, чтобы программа не запускалась второй раз (Вариант 1)
  2. Как сделать, чтобы программа не запускалась второй раз (Вариант 2)
  3. Как узнать каталог, где находится запускаемая программа
  4. Как убрать иконку приложения с TaskBar-а
  5. Как сделать, чтобы программа на C++Builder не требовала .bpl, .dll
  6. Как поменять ICON у моей программы
  7. [+] Как назначить программе другой приоритет
  1. Как сделать, чтобы программа не запускалась второй раз

    // Для чтобы программа не запускалась второй раз надо модифицировать проектный файл (в данном примере это Project1.cpp):
    #include <vcl.h>
    #pragma hdrstop
    USERES("Project1.res");
    USEFORM("Unit1.cpp", Form1);
    const char *NamedMutex= "OneOnly";
    HANDLE CheckInstance(const char *Name)
    {
    HANDLE Mutex = CreateMutex(NULL, true,Name);
    int er = GetLastError();
    if (er) return 0;
    return Mutex;
    }
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
    HANDLE Mutex = CheckInstance(NamedMutex);
    if (!Mutex)
    {
    ShowMessage("Уже работает");
    ReleaseMutex(Mutex);
    return 1;
    }
    try
    {
    Application->Initialize();
    Application->CreateForm(__classid(TForm1), &Form1);
    Application->Run();
    }
    catch (Exception &exception)
    {
    Application->ShowException(&exception);
    }
    return 0;
    }

  2. Как сделать, чтобы программа не запускалась второй раз (Вариант 2)

    // Для чтобы программа не запускалась второй раз напишите следующий код:
    BOOL WeAreAlone(LPSTR szName)
    {
    HANDLE hMutex=CreateMutex(NULL,TRUE,szName);
    if (GetLastError()==ERROR_ALREADY_EXISTS)
      {
      CloseHandle(hMutex);
      return false;
      }
    return true;
    }

    //В CreatForm пишишь проверку:
    if (WeAreAlone("Some_Unique_Name_Or_Other"));
      else
      {
      ShowMessage("Такая программа уже работает!");
      exit(0);
      }
    Автор: ant47

  3. Как узнать каталог, где находится запускаемая программа

    // Чтобы узнать каталог напишите следющий код:
    void __fastcall TForm1::Button4Click(TObject *Sender)
    {
    Label1->Caption = Application->ExeName;
    Label2->Caption = ParamStr(0);
    Label3->Caption = GetCurrentDir();// текущая папка (может измениться!)
    char ExeName[MAX_PATH];
    GetModuleFileName(HInstance, ExeName, sizeof(ExeName));
    Label4->Caption=ExeName;
    }

  4. Как убрать иконку приложения с TaskBar-a

    // Напишите следющий код:
    ShowWindow(Application->Handle, SW_HIDE);//Скрыть
    ShowWindow(Application->Handle, SW_SHOW);//Показать

  5. Как сделать, чтобы программа на C++Builder не требовала .bpl, .dll

    Для начала надо зайти Project->Options затем: На вкладке Compiler нажать "Release", на вкладке Packages снять галку с "Build with runtime packages" и на вкладке Linker снять галку с "Use dynamic RTL"

  6. Как поменять ICON у моей программы

    Project->Options->Load Icon

  7. Как назначить программе другой приоритет

    // Напишите следющий код:
    HANDLE ProcessHandle, ThreadHandle;
    DWORD ProcessID = GetCurrentProcessId();
    ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS,false,ProcessID);
    SetPriorityClass(ProcessHandle,HIGH_PRIORITY_CLASS);
    ThreadHandle = GetCurrentThread();
    SetThreadPriority(ThreadHandle,THREAD_PRIORITY_TIME_CRITICAL);



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS