Fethi Polat 1
Fethi Polat
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
xranzei 1
xranzei
Hikaye Ekle

[C++] Clientlerin (.exe) Üst Üste Binmesini Engellemek

  • Konuyu başlatan Konuyu başlatan MT2Dev
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 4
  • Görüntüleme Görüntüleme 884
  • Etiketler Etiketler
    c++ fix mt2dev
5.00 yıldız(lar) 1 Değerlendirme Değerlendirenler

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

GİRİŞ & PROBLEM

Merhaba, bir üyenin ricası ile clientlerin (.exe) görev çubuğunda üst üste binmesini engelleyip, tüm clientlerin ayrı ayrı açılmasıyla alakalı bir düzenleme yaptım, belki ihtiyacı olan vardır diye paylaşıyorum.

NELERİ DEĞİŞTİRDİK ?

Açılan her .exe için farklı bir ID oluşturarak işletim sisteminin bunları aynı uygulama olarak görmemesini sağlayacağız, bu benzersiz oluşturulan ID'ler sayesinde her .exe farklı olacak ve üst üste binmeyecek.

NASIL YAPILIR ?

Sadece tek bir dosyada değişiklik yapacağız, Client src/UserInterface içinden "UserInterface.cpp" dosyası açılır.


C++:
// In cludeların en sonuna eklenir;

// UNIQUE_CLIENT_ID
#include <shobjidl.h>
#include <sstream>
// END_OF_UNIQUE_CLIENT_ID

C++:
// BULUNUR;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


// ÜSTÜNE EKLENİR; (Dikkat, fonksiyonun dışına!)

// UNIQUE_CLIENT_ID
std::wstring GenerateAppUserModelID()
{
    std::wstringstream ss;
    ss << L"Metin2_" << GetCurrentProcessId();
    return ss.str();
}
// END_OF_UNIQUE_CLIENT_ID


// BULUNUR;

#ifdef _DEBUG
    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF );
#endif


// ALTINA EKLENİR;

    // UNIQUE_CLIENT_ID
    std::wstring appUserModelID = GenerateAppUserModelID();
    SetCurrentProcessExplicitAppUserModelID (appUserModelID.c_str());
    // END_OF_UNIQUE_CLIENT_ID
 
GİRİŞ & PROBLEM

Merhaba, bir üyenin ricası ile clientlerin (.exe) görev çubuğunda üst üste binmesini engelleyip, tüm clientlerin ayrı ayrı açılmasıyla alakalı bir düzenleme yaptım, belki ihtiyacı olan vardır diye paylaşıyorum.

NELERİ DEĞİŞTİRDİK ?

Açılan her .exe için farklı bir ID oluşturarak işletim sisteminin bunları aynı uygulama olarak görmemesini sağlayacağız, bu benzersiz oluşturulan ID'ler sayesinde her .exe farklı olacak ve üst üste binmeyecek.

NASIL YAPILIR ?

Sadece tek bir dosyada değişiklik yapacağız, Client src/UserInterface içinden "UserInterface.cpp" dosyası açılır.


C++:
// In cludeların en sonuna eklenir;

// UNIQUE_CLIENT_ID
#include <shobjidl.h>
#include <sstream>
// END_OF_UNIQUE_CLIENT_ID

C++:
// BULUNUR;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


// ÜSTÜNE EKLENİR; (Dikkat, fonksiyonun dışına!)

// UNIQUE_CLIENT_ID
std::wstring GenerateAppUserModelID()
{
    std::wstringstream ss;
    ss << L"Metin2_" << GetCurrentProcessId();
    return ss.str();
}
// END_OF_UNIQUE_CLIENT_ID


// BULUNUR;

#ifdef _DEBUG
    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF );
#endif


// ALTINA EKLENİR;

    // UNIQUE_CLIENT_ID
    std::wstring appUserModelID = GenerateAppUserModelID();
    SetCurrentProcessExplicitAppUserModelID (appUserModelID.c_str());
    // END_OF_UNIQUE_CLIENT_ID
Paylaşım için teşekkürler.
 
GİRİŞ & PROBLEM

Merhaba, bir üyenin ricası ile clientlerin (.exe) görev çubuğunda üst üste binmesini engelleyip, tüm clientlerin ayrı ayrı açılmasıyla alakalı bir düzenleme yaptım, belki ihtiyacı olan vardır diye paylaşıyorum.

NELERİ DEĞİŞTİRDİK ?

Açılan her .exe için farklı bir ID oluşturarak işletim sisteminin bunları aynı uygulama olarak görmemesini sağlayacağız, bu benzersiz oluşturulan ID'ler sayesinde her .exe farklı olacak ve üst üste binmeyecek.

NASIL YAPILIR ?

Sadece tek bir dosyada değişiklik yapacağız, Client src/UserInterface içinden "UserInterface.cpp" dosyası açılır.


C++:
// In cludeların en sonuna eklenir;

// UNIQUE_CLIENT_ID
#include <shobjidl.h>
#include <sstream>
// END_OF_UNIQUE_CLIENT_ID

C++:
// BULUNUR;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)


// ÜSTÜNE EKLENİR; (Dikkat, fonksiyonun dışına!)

// UNIQUE_CLIENT_ID
std::wstring GenerateAppUserModelID()
{
    std::wstringstream ss;
    ss << L"Metin2_" << GetCurrentProcessId();
    return ss.str();
}
// END_OF_UNIQUE_CLIENT_ID


// BULUNUR;

#ifdef _DEBUG
    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF );
#endif


// ALTINA EKLENİR;

    // UNIQUE_CLIENT_ID
    std::wstring appUserModelID = GenerateAppUserModelID();
    SetCurrentProcessExplicitAppUserModelID (appUserModelID.c_str());
    // END_OF_UNIQUE_CLIENT_ID
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst