Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

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

  • 3 meses depois ...
  • Membros Pro
Postado
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

Postado

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

  • Membros Pro
Postado
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

Postado (editado)
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
  • Membros Pro
Postado
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

Postado

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.

  • Moderadores
Postado
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

 

 

  • Membros Pro
Postado
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

  • Consultores
Postado

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.
  • Consultores
Postado

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

 

 

 

 

 

 

 

  • 2 anos depois...
  • Moderadores
Postado
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_Transparent-02.png
 

 

Postado
17 minutos atrás, Juliomar Marchetti disse:

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

Qual certificadora você indica pra estar adquirindo um certificado válido pra assinar exe?

  • Este tópico foi criado há 301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.