Как ограничить количество открытых приложений одним в delphi

У меня возникла дилемма с моим DCEF3 (с использованием Delphi XE3). Давайте просто возьмем cefclient.exe из демонстрационного пакета, поскольку он не использует формы, и я действительно не нашел слишком много документации в Google, как я могу проверить, есть ли какой-либо процесс, чтобы он мог сфокусировать текущий открытый вместо открытия нового .

Это то, что я использую в демонстрации guiclient, где я использую модуль Forms.

begin
  Hwnd := FindWindow ('TLoginForm', nil);
  if Hwnd = 0 then
  begin
    Application.Initialize;
    Application.Title := 'Tribul.Net - Game Overview';
    Application.CreateForm(TLoginForm, LoginForm);
    Application.CreateForm(TBrowserForm, BrowserForm);
    Application.Run;
  end else
    SetForegroundWindow(Hwnd);
end.

Есть идеи, как это сделать в этом образце кода?

// multi process
  CefSingleProcess := False;
  if not CefLoadLibDefault then Exit;

  try
    wndClass.style         := CS_HREDRAW or CS_VREDRAW;
    wndClass.lpfnWndProc   := @CefWndProc;
    wndClass.cbClsExtra    := 0;
    wndClass.cbWndExtra    := 0;
    wndClass.hInstance     := hInstance;
    wndClass.hIcon         := LoadIcon(0, IDI_APPLICATION);
    wndClass.hCursor       := LoadCursor(0, IDC_ARROW);
    wndClass.hbrBackground := 0;
    wndClass.lpszMenuName  := nil;
    wndClass.lpszClassName := 'tribul';

    RegisterClass(wndClass);

    Window := CreateWindow(
      'tribul',             // window class name
      'Tribul.net - Gods of War',     // window caption
      WS_OVERLAPPEDWINDOW or WS_CLIPCHILDREN,    // window style
      Integer(CW_USEDEFAULT), // initial x position
      Integer(CW_USEDEFAULT), // initial y position
      Integer(CW_USEDEFAULT), // initial x size
      Integer(CW_USEDEFAULT), // initial y size
      0,                      // parent window handle
      0,                      // window menu handle
      hInstance,              // program instance handle
      nil);                   // creation parameters

    ShowWindow(Window, SW_SHOW);
    UpdateWindow(Window);

person Eduard    schedule 08.11.2013    source источник
comment
Думаю, я даже однажды спросил об этом раньше, скорее всего, удалил, хотя понял, что его уже спрашивали много раз раньше.   -  person Jerry Dodge    schedule 09.11.2013