Resultados 1 a 6 de 6
  1. #1
    Developer C++ romariols's Avatar
    Data de Ingresso
    Jun 2017
    Posts
    128
    Thanks Thanks Given 
    33
    Thanks Thanks Received 
    297
    Thanked in
    36 Posts
    Mencionado
    22 Post(s)
    País
    Brazil

    Fix abrir Launcher automático ao executar o main diretamente

    Bom... Eu fiz esse código baseado na função original que vem nos Main. Naturalmente, ao executar o Main direto, um arquivo "Mu.exe" (talvez seja o Launcher de quem fez o código) deveria ser executado no lugar dele, no entanto, nada acontece, mesmo que vc renomeie seu Launcher para "Mu.exe".

    Então fiz esse código que deve ser executado no inicio desta função para corrigir isso. Não está muito bom, mas é funcional e bem simples, quem quiser pode estar melhorando a sua maneira, como por exemplo, colocar para iniciar um arquivo que faz update do cliente, ou ainda usar a função CreateProcess. Enfim.

    O que o código faz?
    Ao abrir o Main diretamente, ele iniciará o Launcher automaticamente e encerrará o processo do Main. Forçando o usuário a abrir o jogo pelo Launcher.

    Caso o Launcher não seja encontrado no diretório, ao invés de não fazer nada, ele emite um alerta avisando que o jogo não pode ser iniciado pq o Launcher está faltando.

    [Somente membros podem ver os links. ]

    É um código simples, mas bem util e bem melhor do que usar um JMP como já vi em várias sources.

    Código:
    bool ReadyLauncher()
    {
        FILE* FileCheck = NULL;
    
        if ((FileCheck = fopen("Launcher.exe", "rb")) == NULL)
        {
            MessageBoxA(NULL, "O jogo não pode iniciar por que o Launcher não foi encontrado", "Error!", MB_OK | MB_ICONSTOP);
            ExitProcess(NULL);
            return FALSE;
        }
    
        WinExec("Launcher.exe", SW_SHOW);
    
        return TRUE;
    }
    Créditos: Romário Leite
    Last edited by romariols; 03/12/2020 at 03:46 PM.

  2. The Following 4 Users Say Thank You to romariols For This Useful Post:


  3. #2
    #ChangeBrazil SmileY's Avatar



    Data de Ingresso
    Jun 2015
    Posts
    44
    Thanks Thanks Given 
    4
    Thanks Thanks Received 
    154
    Thanked in
    16 Posts
    Mencionado
    210 Post(s)
    MEU HUMOR
    Twisted
    País
    Jamaica
    Eu não tenho certeza, mas usar WinExec vai fazer alguns anti-virús dispararem.
    Vou analizar isso mas é só ajustar alguns offsets no main para ele usar essa função nativamente
    [Somente membros podem ver os links. ]


  4. #3
    Developer C++ romariols's Avatar
    Data de Ingresso
    Jun 2017
    Posts
    128
    Thanks Thanks Given 
    33
    Thanks Thanks Received 
    297
    Thanked in
    36 Posts
    Mencionado
    22 Post(s)
    País
    Brazil
    Citação Originally Posted by SmileY Ver Post
    Eu não tenho certeza, mas usar WinExec vai fazer alguns anti-virús dispararem.
    Vou analizar isso mas é só ajustar alguns offsets no main para ele usar essa função nativamente
    Sim. O ideal é usar CreateProcess, já que WinExec é uma função é obsoleta e da época dos Windows de 16 bits. Mas esta ainda funciona bem.

  5. #4
    #ChangeBrazil SmileY's Avatar



    Data de Ingresso
    Jun 2015
    Posts
    44
    Thanks Thanks Given 
    4
    Thanks Thanks Received 
    154
    Thanked in
    16 Posts
    Mencionado
    210 Post(s)
    MEU HUMOR
    Twisted
    País
    Jamaica
    Citação Originally Posted by romariols Ver Post
    Sim. O ideal é usar CreateProcess, já que WinExec é uma função é obsoleta e da época dos Windows de 16 bits. Mas esta ainda funciona bem.
    O problema mesmo é o anti-virus que detecta o uso de qualquer função que execute comandos na máquina
    [Somente membros podem ver os links. ]


  6. #5
    Developer C++ romariols's Avatar
    Data de Ingresso
    Jun 2017
    Posts
    128
    Thanks Thanks Given 
    33
    Thanks Thanks Received 
    297
    Thanked in
    36 Posts
    Mencionado
    22 Post(s)
    País
    Brazil
    Citação Originally Posted by SmileY Ver Post
    O problema mesmo é o anti-virus que detecta o uso de qualquer função que execute comandos na máquina
    Bom, pelo oq estudei, a Microsoft recomenda usar CreatProcess pq esta função inicia o novo processo e seu thread principal sem transferir nenhum parâmetro para o novo processo que entrará em execução, sendo assim, executado no contexto de segurança do processo de chamada. Logo não é normal se algum anti-virus acusar algo usando esta função.

    Já tive problemas com a WinEx com o Windows Defender, hoje uso CreatProcess conforme as recomendações da Microsoft e não tenho nenhum problema com Anti-virus no Windows.

  7. #6
    Iniciante RadeoN's Avatar
    Data de Ingresso
    Oct 2020
    Posts
    2
    Thanks Thanks Given 
    13
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts
    Mencionado
    0 Post(s)
    País
    Italy
    push to controller.cpp ?

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais