Студия web-дизайна Хостмэйк
Наши работыКонтактыО компанииОтзывыГлоссарийСтатьи

FAQ по работе с Программой

Статьи Программирование на С/С++


  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);
      }
    Автор:


  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

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


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


По материаллам сайта: www.realcoding.net

16.02.2006

Телефон

+7 8636 237-836

Поиск

VSESMI.ru — новости в СМИ.
Один из больших по объему информации проектов, работающих под управлением HostCMS.

Tur-Hotel.ru — отзывы об отелях
На сайте представлено описание отелей, рейтинг отелей с отзывами туристов.