Como pegar atalho

Discussão em 'Progress 4GL' iniciado por jonata, Abril 7, 2010.

  1. jonata

    jonata Sem Pontuação

    Boa Tarde a Todos!

    Gostaria de saber como fazer para eu conseguir pegar o destino de um atalho.

    Exemplo:

    Tenho um atalho no Desktop, e esse atalho o destino dele é o c:\, ou seja quando clicar no atalho ele vai para o c:\ da minha maquina.

    como via progress eu consigo pegar o c:\ que no caso é o destino do atalho??



    Obrigado.
  2. mcarril

    mcarril Membro Participativo

    Ajuda Urgente!!!!!

    Resposta "errada"
  3. jonata

    jonata Sem Pontuação

    Bom Dia

    Axo que voc~e não entendeu eu preciso saber qual é o caminho que o atalho está apontando , eu não sei e presciso descobrir.

    Entendeu??

    Pq ali aquele comando silent ele pega uma string dentro dele, mas eu já presciso saber qual a string, e eu não sei.


    se possível coloque um exemplo aqui. ;)


    Obrigado.
  4. kirchner

    kirchner Membro Participativo Moderador

    jonata,

    Eu não posso ajudar, mas posso piorar as coisas :(

    Uma vez eu precisei fazer isso, não era em Progress, era em C#.
    A única forma confiável foi instanciar e usar classes do Shell. E isso foi muito trabalhoso. Eu não tenho mais o fonte, senão te enviava aqui.

    Tem um artigo que pode dar uma luz:
    http://www.saunalahti.fi/janij/blog/2006-12.html (procura por C# tip: reading a shortcut's target na página)

    Os exemplos são em C#, mas usam a shell32.dll, que é uma DLL COM. Você pode instanciar no Progress com COM-HANDLE e a vida continua :)
  5. jonata

    jonata Sem Pontuação

    Hummmm.


    Bom vou tentar fazer isso dali, o ruim é que eu tenho uma lista que está em excel, onde a coluna A é o caminho onde está o atalho e a coluna B é o nome do atalho.

    Ai oque o programa deveria fazer
    ai fazia uma busca a cada linha que passava ele juntava as duas partes ia la, pegava o atalho lia para onde ele tava apontado e colocava em um txt o caminho né, que estava no excel e para onde ele aponta, como se fosse um relatório.

    Então em progress não tem como fazer isso???
  6. kirchner

    kirchner Membro Participativo Moderador

    jonata,

    Em 4GL puro eu desconheço. Na verdade, qualquer coisa que não seja acesso a dados não dá pra fazer em 4GL direito.
    Mas como você pode acessar um componente externo via COM ou EXTERNAL, dá pra fazer tudo, só que algumas coisas dá mais trabalho :)

    Então, se você conseguir instanciar o componente COM do Shell, pode ler todos os atalhos que precisar.... Essa é a parte mais fácil da história.
    O mais difícil vai ser fazer esses caras todos funcionarem corretamente.

Compartilhe esta Página