DEFININDO UM CAMINHO PADRAO NO SISTEMA
Pessoal, bom dia....
Estou com o seguinte problema.....
Uso uma dll para compactação via API onde acontece o seguinte problema:
Qando eu abro o aplicativo a 1º. vez ele pde para configurar o arquivo INI, então abre o commomdialog e selecia-se um diretório, então fica armazenado este diretório que selecinei na memoria, até ai tudo bem.
Quando eu fecho o aplicativo e reabro em seguida, ele perde esta referencia e indica como path o diretório onde está o executavel do VB (C:\Arquivos de programas\Microsoft Visual Studio\VB98).
Obs.: Para voltar na condição inicial eu tenho que abrir o form de configuração, abrir o commomdialog e selefcionar a pasta.
Pergunta:
Tem como e como eu faço para sempre quando o aplicativo iniciar, forçar que o path padrão seja aquele qe indiquiei na configuração do arquivo ini???
Estou com o seguinte problema.....
Uso uma dll para compactação via API onde acontece o seguinte problema:
Qando eu abro o aplicativo a 1º. vez ele pde para configurar o arquivo INI, então abre o commomdialog e selecia-se um diretório, então fica armazenado este diretório que selecinei na memoria, até ai tudo bem.
Quando eu fecho o aplicativo e reabro em seguida, ele perde esta referencia e indica como path o diretório onde está o executavel do VB (C:\Arquivos de programas\Microsoft Visual Studio\VB98).
Obs.: Para voltar na condição inicial eu tenho que abrir o form de configuração, abrir o commomdialog e selefcionar a pasta.
Pergunta:
Tem como e como eu faço para sempre quando o aplicativo iniciar, forçar que o path padrão seja aquele qe indiquiei na configuração do arquivo ini???
CommonDialog1.InitDir = [Ô]C:\Temp[Ô]
CommonDialog1.ShowOpen
Pra ficar simples pra vc meu caro
Jogue isso na pasta path da aplicação
Será sempre a mesma pra vc
Citação::
CommonDialog1.InitDir = [Ô]C:Temp[Ô]
CommonDialog1.ShowOpen
Tecla boa tarde.
Na verdade este código não funciona da forma que preciso, porque: Qando eu uso o Open do CommandDialog o aplicativo armazena o path confirmado e salvo no arquivo INI, mais quando eu fecho o aplicativo o path se perde e o sistema passa a usar o path do Kernel do VB6 (C:\Arquivos de programas\Microsoft Visual Studio\VB98). Isto ocasiona um erro na aplicação. Para refazer o path corretamente tenho q abrir o configurador do arquivo INI clicar no botão de localizar pasta, e salvar o arquivo.
Citação::
Pra ficar simples pra vc meu caro
Jogue isso na pasta path da aplicação
Será sempre a mesma pra vc
Sinkertec, não entendi, colocar o que na pasta path da aplicação????
Obrigado pelas respostas....
Colega Vamos resolver seu problema, não use esta dlll, faça o seguinte
em um módulo cole:
agora no form principal de sua aplicação faça o seguinte no evento Load do Form.
como funciona, o programa irá buscar o arquivo config.ini na pasta do seu programa, se nà o achar ele vai gravar este arquivo, como o caminho do banco
e pronto
em um módulo cole:
[ô]
[ô] funções para escrever e ler arquivos ini
[ô]
Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias _
[Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName _
As String) As Long
[ô]
Declare Function GetPrivateProfileString Lib [Ô]kernel32[Ô] Alias _
[Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
[ô]
Public Ret As String
[ô]
[ô] sub função para gravar um arquivo ini
[ô]
Public Sub WriteINI(FileName As String, Section As String, Key As String, Text As String)
WritePrivateProfileString Section, Key, Text, FileName
End Sub
[ô]
[ô] Função para ler um arquivo ini
[ô]
Public Function ReadINI(FileName As String, Section As String, Key As String)
Ret = Space$(255)
retLen = GetPrivateProfileString(Section, Key, [Ô][Ô], Ret, Len(Ret), FileName)
Ret = Left$(Ret, retLen)
ReadINI = Ret
End Function
agora no form principal de sua aplicação faça o seguinte no evento Load do Form.
Private Sub Form_Load()
Dim Caminho As String
Caminho = App.Path & [Ô]\config.ini[Ô]
If Dir(Caminho)=[Ô][Ô] Then
CommonDialog1.DialogTitle = [Ô]Procura origem...[Ô]
CommonDialog1.ShowOpen
WriteINI Caminho, [Ô]programa[Ô], [Ô]caminho[Ô], CommonDialog1..FileName
Else
AbrirADO
[txt-color=#007100][ô]ou
[ô]AbriDAO[/txt-color]
End If
End Sub
[ô] usando o DAO
Sub AbrirDAO()
Dim DB As DAO.Database
Dim caminho As String
caminho = ReadINI([Ô]c:\caminho.ini[Ô], [Ô]programa[Ô], [Ô]caminho[Ô])
Set DB = DBEngine.OpenDatabase(caminho, False, False)
DB.Close
End Sub
[ô] usando o ADO
Sub AbrirADO()
Dim CNN As New ADODB.Connection
caminho = ReadINI([Ô]c:\caminho.ini[Ô], [Ô]programa[Ô], [Ô]caminho[Ô])
CNN.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & caminho & [Ô];[Ô]
CNN.Close
End Sub
como funciona, o programa irá buscar o arquivo config.ini na pasta do seu programa, se nà o achar ele vai gravar este arquivo, como o caminho do banco
e pronto
MARCELO-TREZE, boa noite.
Na verdade você também não entendeu minha dúvida. A dll que estou usando não faz ref. aonarquivo INI, para ler e escrever no arquino INI uso a mesma API que você está me indicando.
Agora a pouco percebi uma coisa curiosa. Minha dúvida foi gerada usando o Kernel do VBN6 via RunTime e não via executável, por isso gerei o executavel e coloquei em uma pasta no desktop, após executar o aplicativo normalmente este erro não acontece então o sistema funciona perfeitamente, conforme programado.
A DLL que citei é ad AZIP32.dll e a AUNZIP32.dll, para compactação e descompactação de arquivos.
Na verdade você também não entendeu minha dúvida. A dll que estou usando não faz ref. aonarquivo INI, para ler e escrever no arquino INI uso a mesma API que você está me indicando.
Agora a pouco percebi uma coisa curiosa. Minha dúvida foi gerada usando o Kernel do VBN6 via RunTime e não via executável, por isso gerei o executavel e coloquei em uma pasta no desktop, após executar o aplicativo normalmente este erro não acontece então o sistema funciona perfeitamente, conforme programado.
A DLL que citei é ad AZIP32.dll e a AUNZIP32.dll, para compactação e descompactação de arquivos.
Citação:Obs.: Vou deixar o tópico aberto por mais dois dias para ver se alguem sabe, ja viu ou conhrce alguem que ja passou por um problema semelhante e conseguiu achar uma resposta positiva e satisfatória....
Tópico encerrado , respostas não são mais permitidas