Ir para conteúdo
  • Cadastre-se

dev botao

Iniciar .exe delphi no windows 10


Recommended Posts

Boa tarde. Eu preciso inicializar um .exe criado em delphi Rio no windows 10...

Eu já criei a parte usando a  TRegistry


		reg := TRegIniFile.Create('');

		if Pos('Windows 10', F_Verifica_Versao_Windows) > 0 then
		begin
			reg.RootKey := HKEY_CURRENT_USER;
		end
		else
		begin
			reg.RootKey := HKEY_LOCAL_MACHINE;
		end;

		reg.WriteString('SOFTWARE\Microsoft\Windows\CurrentVersion\Run' + #0, l_titulo_programa, l_caminho_executavel);
		reg.Free;

Também executei estes procedimentos :

Citar

Passo 1

Abra o CMD, como administrador.
Execute o comando

Ative a conta Administrador:
NET USER Administrador /active:yes
NET USER Administrador * >>> Será solicitado uma senha e confirmação.

Faça Logoff, e log com administrador siga

Marque

Permitir que o conteudo ativo dos CDs seja executado no meu computador
Permitir que o conteudo ativo em arquivos seja executado no meu computador
Permitir que o softeare seja executado ou instalado mesmo que assinatura seja invalida

Desmarque
Verificar se há assinaturas em programas baixados


Passo 2

Copiar um atalho do exe

C:\Users\<nome do usuário do windows>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

E não consegui fazer o exe inicializar com o Windows. Alguém sabe de alguma solução fora estas opções acima, que realmente funcione ?

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
Em 06/06/2021 at 23:32, Juliomar Marchetti disse:

acho que só precisa elevar ele como administrador

@Juliomar Marchetti obrigado por responder... Quando você diz elevar ele como administrador seria mudar nas propriedades do arquivo .exe e mercar a opção de executar como administrador ?

Se for isso eu já havia feito e não surtiu resultado, simplesmente o exe não executa.... E isso só acontece com o Windows 10, no Windows 7 funciona normal...

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, datilas disse:

tenta assim:

ShellExecute(handle,'open',PChar('schtasks'), '/create /tn "Titulo do se app" /tr "c:\caminhodoseuapp.exe" /sc onstart','',SW_SHOWHIDE);

ele vai criar uma tarefa agendada no windows

Opa @datilas, muito obrigado por responder... Eu tentei também com tarefa agendada também, mas ocorre o mesmo problema, o processo fica registrado no gerenciador do windows, mas o exe não sobe...

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

function RunAsAdmin(hWnd: HWND; const filename, param: string): Boolean;
var
  sei: TShellExecuteInfo;
  ExitCode: DWORD;
begin
  ZeroMemory(@sei, SizeOf(sei));
  sei.cbSize       := SizeOf(TShellExecuteInfo);
  sei.Wnd          := hwnd;
  sei.fMask        := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI or SEE_MASK_NOCLOSEPROCESS;
  sei.lpVerb       := PWideChar('runas');
  sei.lpFile       := PWideChar(Filename);
  sei.lpParameters := PWideChar(param);
  sei.nShow        := SW_HIDE;

  if ShellExecuteEx(@sei) then
   Result := True;  
end;

///******
Usa assim:
RunAsAdmin(handle, 'schtasks', '/create /tn "Titulo do se app" /tr "c:\caminhodoseuapp.exe" /sc onstart');

eu uso assim e esta funcionando.

Editado por datilas
Link para o comentário
Compartilhar em outros sites

28 minutos atrás, datilas disse:
function RunAsAdmin(hWnd: HWND; const filename, param: string): Boolean;
var
  sei: TShellExecuteInfo;
  ExitCode: DWORD;
begin
  ZeroMemory(@sei, SizeOf(sei));
  sei.cbSize       := SizeOf(TShellExecuteInfo);
  sei.Wnd          := hwnd;
  sei.fMask        := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI or SEE_MASK_NOCLOSEPROCESS;
  sei.lpVerb       := PWideChar('runas');
  sei.lpFile       := PWideChar(Filename);
  sei.lpParameters := PWideChar(param);
  sei.nShow        := SW_HIDE;

  if ShellExecuteEx(@sei) then
   Result := True;  
end;

///******
Usa assim:
RunAsAdmin(handle, 'schtasks', '/create /tn "Titulo do se app" /tr "c:\caminhodoseuapp.exe" /sc onstart');

eu uso assim e esta funcionando.

Eu testei e seu código registra a tarefa no windows certinho, mas ao inicializar o PC não sobe o exe....

Creio que eu estou fazendo algo errado no exe.... O problema é que não sei o que pode ser...

Arquivos com assintura digital no Windows tem privilégios de administrador correto ?

Será que uma assintura digital não resolve ?

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

  • Moderadores
30 minutos atrás, Edevair Viesa Junior disse:

Eu testei e seu código registra a tarefa no windows certinho, mas ao inicializar o PC não sobe o exe....

Acho que pra iniciar sem logon do usuário, você precisa criar o app como serviço.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

3 horas atrás, datilas disse:

o fato de ter certificado não tem haver com privilegio,

mas o certificado ajuda muito, principalmente para antivírus e plugins de banco,

talvez seja seja falta de permissão em antivírus, firewall, etc.

Sim, foi o que imaginei, porém não tenho anti virus instalado na máquina e o firewall está desabilitado....

3 horas atrás, BigWings disse:

Acho que pra iniciar sem logon do usuário, você precisa criar o app como serviço.

Mas ai neste caso não consigo fazer o exe ser utilizado, o exe abre e fica no tray icon e se o usuário precisar interagir ele tem a opção de abrir o painel, se fizer como serviço não tenho o handle da janela pra conseguir abrir....

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link para o comentário
Compartilhar em outros sites

  • Consultores

Chegou a verificar o log de eventos do WIndows? Geralmente tem alguma mensagem lá sobre problemas na inicialização.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Essa opção serve para você? Se sim, deve ser o mais simples de resolver.

Citar

Passo 2

Copiar um atalho do exe

C:\Users\<nome do usuário do windows>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Qual o caminho do seu app?

Se estiver na rede com unidade mapeada:

  • Pode estar sendo executado antes de mapear as unidades ou ela pode não estar ativa (com x vermelho, não sei o termo técnico), só ativando após clicar nela
  • O mapeamento é do usuário logado, tem que executar sem ser como administrador. Se executar como administrador, o mapeamento não existe.
  • Tenta por caminho UNC

Para validar se está colocando o atalho no lugar certo:

  • Cria um arquivo de lote para teste
  • Começa com um pause
  • Coloca no caminho do startup do usuário e confirma se abre ao iniciar, se não abrir, tem erro no caminho
  • Se funcionar, coloca a chamada do seu exe pelo arquivo de lote e veja se funciona

 

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • Moderadores
6 horas atrás, Idea Sistemas - Valter disse:

Bom dia, 

Usando essa fução de inserir no registro, muitos antivirus estão acusando falso positivo.. se o EXE não for assinado.. 

 Esse atalho nessa pasta precisa ser inserida manualmente? Existe algum metodo pra criar esse .ink via delphi?

 

não. e tem sim que ser assinado tu vai estar tentando iniciar algo e o windows precisa saber que é algo confiável

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.