1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-14 22:03:27 +01:00

allow only 1 instance per game folder

This commit is contained in:
FunkyFr3sh 2023-08-15 15:38:50 +02:00
parent d329495b1c
commit 614febabf6
3 changed files with 27 additions and 1 deletions

View File

@ -8,6 +8,7 @@
#include <IOUtils.hpp>
#include <SysUtils.hpp>
#include <Registry.hpp>
#include <System.Hash.hpp>
#include "ConfigFormUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
@ -28,6 +29,15 @@ __fastcall TConfigForm::TConfigForm(TComponent* Owner)
{
}
void __fastcall TConfigForm::CreateParams(TCreateParams & Params)
{
TForm::CreateParams(Params);
StrCopy(
Params.WinClassName,
THashSHA1::GetHashString(Application->ExeName).w_str());
}
void __fastcall TConfigForm::LanguageImgClick(TObject *Sender)
{
auto *ini = new TIniFile(".\\ddraw.ini");

View File

@ -115,6 +115,7 @@ __published: // Von der IDE verwaltete Komponenten
private: // Benutzer-Deklarationen
virtual void __fastcall CreateParams(TCreateParams & Params);
void SaveSettings();
bool GetBool(TIniFile *ini, System::UnicodeString key, bool defValue);
void ApplyTranslation(TIniFile *ini);

View File

@ -1,8 +1,9 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#include <IniFiles.hpp>
#pragma hdrstop
#include <IniFiles.hpp>
#include <System.Hash.hpp>
#include <tchar.h>
//---------------------------------------------------------------------------
#include <Vcl.Styles.hpp>
@ -16,6 +17,20 @@ int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
Application->Initialize();
Application->MainFormOnTaskBar = true;
HWND hwnd =
FindWindow(
THashSHA1::GetHashString(Application->ExeName).w_str(), NULL);
if (hwnd) {
if (IsIconic(hwnd)) {
ShowWindow(hwnd, SW_RESTORE);
}
SetForegroundWindow(hwnd);
return 0;
}
auto *ini = new TIniFile(".\\ddraw.ini");
auto theme = ini->ReadString("ddraw", "configtheme", "Windows10");