Dr_LuPa 0 Denunciar post Postado Maio 20, 2005 Olá! Eu estou aprendendo Delphi e sempre estou de olho aqui no forum. Eu nunca tinha coragem de me registrar e perguntar sobre minhas duvidas. Agora estou encorajado pq vejo que tem muitas pessoas aprendendo tb como eu. Meu problema é o seguinte. Fiz um projeto de um autorum pra gravar em um DVD com alguns programas, coloquei tb neste projeto um botão que sera daquele tipo Browse CD, como tem em vários programas por ai. Só que eu não estou conseguindo fazer esse botão funcionar.. pq nem sempre a unidade de CD será D: E: ou F: Então, pesquisando, eu descobri um comando que retorna em qual diretorio meu programa esta. o comando é este: ExtractFilePath(Application.ExeName) Eu teria que fazer de alguma forma com que o resultado deste comando fosse jogado sobre o Explorer.exe. Só que eu não estou conseguindo. Alguem pode me ajudar com isso.. será que esta logica esta correta ou tem uma outra maneira mais eficaz de fazer este Browse CD ? Muito obrigado a todos.. espero que eu consiga solucionar este problema. Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
proteus 0 Denunciar post Postado Maio 20, 2005 ?! nossa... deixa ver se entendi.. você quer abrir o windows explorer no diretório onde está o seu programa? ... se for.. acho q isso... winExec(pChar(ExtractFilePath(Application.ExeName)),0); Compartilhar este post Link para o post Compartilhar em outros sites
Dr_LuPa 0 Denunciar post Postado Maio 20, 2005 É exatamente isso que eu quero fazer um botão Browse CD (Visualizar CD)... utilizei o seu codigo e não funcionou... não aconteceu nada..mas valeu a ajuda.. se alguem mais souber alguma coisa ou tiver uma dica, será muito bem aceita.! Compartilhar este post Link para o post Compartilhar em outros sites
proteus 0 Denunciar post Postado Maio 21, 2005 ops... winExec('explore.exe ' + pChar(ExtractFilePath(Application.ExeName)),0); Compartilhar este post Link para o post Compartilhar em outros sites
Dr_LuPa 0 Denunciar post Postado Maio 21, 2005 OPa! valeu a ajuda! eu finalmente consegui... usei este seu codigo e não deu certo não.. estava dando erro.. eu fiz da serguinte maneira (Usei dicas de um Help) function ExecExplorer(OpenAtPath: string; OpenWithExplorer, OpenAsRoot: Boolean): boolean;vars: string;beginif OpenWithExplorer then begin if OpenAsRoot then s := ' /e,/root,"' + OpenAtPath + '"' else s := ' /e,"' + OpenAtPath + '"'; end else s := '"' + OpenAtPath + '"'; result := ShellExecute(Application.Handle,PChar('open'),PChar('explorer.exe'), PChar(s),nil,SW_NORMAL) > 32; end; Para o botão que abre o Explorer. var DirDVDCD : string;begin DirDVDCD := ExtractFilePath(Application.ExeName); ExecExplorer(DirDVDCD, True, True);end; Agora se alguem pedir pra eu esplicar este codigo hahahaha eu não vou saber... Porem, se alguem souber explicar.. vai ser muito bom!!! Compartilhar este post Link para o post Compartilhar em outros sites
proteus 0 Denunciar post Postado Maio 21, 2005 velho.. faz a mesma coisa que o comando winExec(pChar('explorer.exe ' + ExtractFilePath(Application.ExeName)),1); que eu digitei errado duas vezes.. só que ele usa um comando diferente do shellapi... consiste em chamar o explorer.exe passando o caminho da aplicação como parametro... Compartilhar este post Link para o post Compartilhar em outros sites
Dr_LuPa 0 Denunciar post Postado Maio 22, 2005 Sensacional! Sensacional! Sensacional!Nossa! este comando é muito, mas muito bom mesmo! Sem contar que poupa muita digitação.. como no exemplo do Codigo que eu utilizei primeiramente.Esse codigo que você me passou vai direto ao ponto! simplesmente abre o explorer no diretorio onde se encontra o exe..O Codigo que eu encontrei abre o exemplo no modo de visualização de pastas que tb é muito bom!Valeu pela ajuda!!! Compartilhar este post Link para o post Compartilhar em outros sites