C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Программа / Borland C++ FAQ / Borland C++

Программа

  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);

Наверх