1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[VB6] Directório de ficheiro

Discussão em 'Programação' iniciada por WinAce_Boy, 3 de Maio de 2007. (Respostas: 8; Visualizações: 1145)

  1. WinAce_Boy

    WinAce_Boy Power Member

    Boas,
    Eu estou a desenvolver um programa que tem como objectivo abrir um outro que está dentro da mesma pasta do meu.
    Gostava de saber se existe algum truque de directório para fazer isso..

    Módulo:

    Código:
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
                                                                         ByVal lpOperation As String, _
                                                                         ByVal lpFile As String, _
                                                                         ByVal lpParameters As String, _
                                                                         ByVal lpDirectory As String, _
                                                                         ByVal nShowCmd As Long) As Long
    Command1 do meu programa:

    Código:
    ShellExecute Me.hwnd, "open", "E:\Visual Basic\Projectos em construcao\GIP\olateste\outroprograma.exe", vbNullString, vbNullString, 0
    Como o directório vai variar de pc para pc devido ao nome da drive gostaria de saber se dá para fazer o que eu disse e como se faz..

    Obrigado pela atençao ;)
    Abraços:D
     
  2. tuning_mundo

    tuning_mundo Power Member

    mete so o C:\ ou D:\... VisualBasic



    pra ver s funciona​
     
  3. HecKel

    HecKel The WORM

    Mete path relativa.

    Por exemplo, tens o programa a corrrer na pasta: C:\xpto\aaa\bbb\ccc\programateste.exe e queres correr o programa que está na pasta C:\xpto\aaa\bbb\ddd\outroprograma.exe fazes isto:

    ../ddd/outroprograma.exe

    os dois pontos significa que estás a andar uma directoria para trás.

    Claro que isto não vai resolver absolutamente nada, esta pasta também pode variar. Se foi um programa que possibilite a interactividade com o utilizador, recomendaria a que abrisses uma janela (daquelas de abrir documentos que o visualbasic tem) a perguntar qual a localização do ficheiro, guardavas esse caminho numa variável e usavas essa mesma variável em vez do caminho completo.

    Desta forma ficarias com o programa apto para qualquer computador.

    abraços, HecKel
     
  4. WinAce_Boy

    WinAce_Boy Power Member

    e se estiver na mesma pasta?
     
  5. WinAce_Boy

    WinAce_Boy Power Member

    lol, cheguei a descobrir sozinho: se para "retroceder" uma directoria era dois pontos para a mesma teria apenas de ter 1 ponto.. certo?
     
  6. RPortela

    RPortela Power Member

    para qualquer acção em que precises da pasta do teu programa, basta: app.path

    ele dá-te a pasta onde está o teu aplicativo (executável)
     
  7. HecKel

    HecKel The WORM

    Yep :P

    O ponto e os dois pontos são duas pastas virtuais que cada pasta tem, podes chamar a pasta . que não te dá erro :P
    Pode dar conflito em alguns sistemas, apesar de nunca ter visto isso :P Eu uso sempre o ./ para evitar problemas :P

    abraços, HecKel
     
  8. WinAce_Boy

    WinAce_Boy Power Member

    Ok, obrigadao people!! abraços;)
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Um pequeno pormenor: nos atalhos, podes fazer com que a pasta "actual" seja outra. Isto é, podes alterar o ".\" de cada programa. Acho que é no "Iniciar Em", nas propriedades do atalho. Para retornar a pasta do programa actual, deve-se usar mesmo o App.Path . Isto é especialmente importante se por exemplo se estiver à procura de um ficheiro de configurações do programa. Ir buscá-lo ao ".\" é mais arriscado do que ir buscá-lo ao App.Path.

    Btw, uma curiosidade: se se for a uma pasta como esta: C:\WINDOWS\SYSTEM\.\..\CONFIG\..\SYSTEM32\.\DirectX, ele ao percorrer este caminho cheio de "lixo", vai para C:\Windows\system32\DirectX :P isso mostra que o uso do "." e do ".." não traz mesmo quaisquer problemas. No entanto, não é bonito.

    Cumprimentos
    angelofwisdom
     

Partilhar esta Página