Hugao Posted August 27, 2012 at 10:35 PM Report Share #473729 Posted August 27, 2012 at 10:35 PM Boas. Eu tenho uma dúvida e agradecia se alguém ma podia tirar. Eu numa pequena aplicação tentei fazer um novo processo do explorador do Windows usando o código System.Diagnostics.Process.Start("explorer.exe"); mas apenas consegui abrir a janela das bibliotecas. Resumindo fiquei com a janela das bibliotecas e o fundo do ambiente de trabalho. Eu cria que ele fizesse como criamos um novo processo no gestor de tarefas. Nota que o explorador não está a correr Desde já o meu obrigado. Cumprimentos, Hugo PS:Desculpem não meter o código com BBCode mas não consegui :O Link to comment Share on other sites More sharing options...
anolsi Posted August 28, 2012 at 11:21 AM Report Share #473777 Posted August 28, 2012 at 11:21 AM Para que queres duplicar o explorer.exe? Por norma o explorer.exe está sempre a correr (o teu ambiente de trabalho é uma pasta, sabias?). Aliás se experimentares terminar esse processo, vais ver que vais ficar muito limitado no que o o pc pode fazer via UI. Depois o que acontece é que o processo está optimizado para ser sempre o mesmo, simplesmente vai lidando com o teu pedido de abertura de janelas e assim (penso eu que para melhorar a interoperabilidade). Por isso dificilmente conseguirás duplicar o explorer.exe do Windows (pelo menos sem andares a tentar alterar o executável seja em memória seja antes do carregamento) "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
Hugao Posted August 28, 2012 at 12:15 PM Author Report Share #473791 Posted August 28, 2012 at 12:15 PM anolsi a ideia não é duplicar o processo mas sim inicia-lo. É como tu disses-te com o processo terminado o uso do windows fica limitado mas a ideia é abrir um novo processo do explorer.exe sem ele estar a correr. Eu quero isto para a minha PAP pois a ideia é depois de um utilizador iniciar sessão no Windows (através de um servidor AD) ter de iniciar sessão na aplicação para contar o tempo que está ligado. No servidor está configurado para o explorer.exe não arrancar no inicio para o utilizador ser obrigado a fazer o login na app e depois sim pode usar o Windows porque o explorer.exe é iniciado. Link to comment Share on other sites More sharing options...
anolsi Posted August 28, 2012 at 01:26 PM Report Share #473798 Posted August 28, 2012 at 01:26 PM Ah. Ok tu não queres duplicar, queres simplesmente arrancar o processo. Experimenta este código: If OskProcess Is Nothing Then OskProcess = New Process() OskProcess.StartInfo.UseShellExecute = True OskProcess.StartInfo.CreateNoWindow = True OskProcess.StartInfo.FileName = "C:\Windows\explorer.exe" OskProcess.StartInfo.WorkingDirectory = Application.StartupPath OskProcess.Start() End If Está em vb só tens que adaptar para C#. Creio que não é muito difícil de adaptar. "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
Hugao Posted August 28, 2012 at 07:54 PM Author Report Share #473883 Posted August 28, 2012 at 07:54 PM (edited) Boas. Consegui fazer de uma maneira que também dá System.Diagnostics.Process.Start(Environment.GetEnvironmentVariable("systemroot")+"\\explorer.exe"); já experimentei e funciona. Obrigado na mesma anolsi Edited August 28, 2012 at 07:56 PM by Hugao Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now