Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida Visual Basic 6


omegahackers

Pergunta

Ae galera to desenvolvendo um launcher e queria saber qual é o código e como eu faço pra um documento .ini, .txt, etc... Puxar uma configuração do projeto tipo...

Crio um documento .ini e coloco esses seguintes dados nele

[Configurações]

Pagina do launcher = http://seusite.....

IP = 127.0.0.1

Executavel = main.exe

Ai queria que quando a pessoa mudasse alguma coisa desse documento .ini mudasse no projeto ou no launcher sei la

Vou colocar a form aqui pra vocês

Dim IP, Site As String

Dim Porta() As String

Private Sub Image1_Click()

On Error GoTo ERRO

Call Shell(App.Path & "\main.exe connect /u" & IP & " /p" & Porta(0), vbNormalFocus)

ERRO:

If Err.Number = 53 Then

MsgBox "Erro main.exe não encontrado!", vbCritical, "Erro"

End If

Unload Me

End Sub

Private Sub Image2_Click()

frmOpções.Show

End Sub

Private Sub Form_Load()

Site = "http://xxxxxxx"

IP = "127.0.0.1"

Porta() = Split("44405;55901", ";")

Call Winsock1.connect(IP, Porta(1))

WebBrowser1.Navigate2 (Site)

End Sub

Private Sub Image4_Click()

MsgBox "xxxxxxx", vbOKOnly, "Info"

End Sub

Private Sub Image5_Click()

Me.WindowState = 1

End Sub

Private Sub Image6_Click()

End

End Sub

Private Sub Winsock1_Connect()

Label2.Caption = "Online!"

Label2.ForeColor = &HFF00&

Winsock1.Close

End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

Label2.Caption = "Offline!"

Label2.ForeColor = &HFF&

Winsock1.Close

End Sub

Private Sub Image3_Click()

Unload Me

End Sub

Essas partes em negrito é a que quero que mude no documento .ini

Quando a pessoa mudar o IP = 127.0.0.1 no documento .ini irá mudar lá na form em IP = 127.0.0.1

Obrigado

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0

ta vendo os codigos do macoratti?? primeiro você declara as funcoes. aquelas duas linhas onde ele passa Declare Function e mais as duas funcoes Public Function ReadINI() e Public Sub WriteINI() você poe tudo la em cima na janela de codigos do seu formulario.

depois pra ler o arquivo você chama a funcao ReadINI() passando como parametros a secao (no seu caso "Configurações"), o nome do campo (no seu caso, "IP") e o endereco do arquivo.

o macoratti te da os exemplos certinhos, olha la.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado novamente kuroi, mais é nessa parte que faz uma bagunça na minha cabeça :S

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

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

Public Function ReadINI(Secao As String, Entrada As String, Arquivo As String)

'Arquivo=config tá certo?

'Secao=IP tá certo?

'Entrada=oque coloco aqui ? =/

Dim retlen As String

Dim Ret As String

Ret = String$(255, 0)

retlen = GetPrivateProfileString(Secao, Entrada, "", Ret, Len(Ret), Arquivo)

Ret = Left$(Ret, retlen)

ReadINI = Ret

End Function

Public Sub WriteINI(Secao As String, Entrada As String, Texto As String, Arquivo As String)

'Arquivo=config tá certo?

'Secao=IP tá certo?

'Entrada=oque coloco aqui ? =/

'texto= oque coloco aqui ? =/

WritePrivateProfileString Secao, Entrada, Texto, Arquivo

End Sub

No meu documento .ini irá ter

Site = http://scriptbrasil.com.br/forum/ (exemplo)

IP = localhost:8090 (exemplo)

Executavel = main.exe (exemplo)

Link para o comentário
Compartilhar em outros sites

  • 0

omega, essa parte em negrito foram so comentarios q o macoratti adicionou como explicacao. não faz a minima diferenca o q você escrever ai, inclusive você pode apagar q vai continuar o mesmo.

aquilo la são so as descricoes dos parametros. na hora de chamar a funcao, você faria assim:

IP = ReadINI("Configurações", "IP", "arquivo.ini")

no lugar de "arquivo.ini" você poe o verdadeiro nome no seu arquivo ini no caminho certo.

quando você precisar escrever, você chama a funcao WriteINI() do mesmo jeito, mas passa o novo valor q você quer q seja escrito no parametro Texto.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

aaaaaa sim entendi aahuahuahauha

mais quando eu tento rodar o projeto da erro nas duas linhas (Compile error: Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members os object modules

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

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

=/

Editado por omegahackers
Link para o comentário
Compartilhar em outros sites

  • 0

acho q você deve ter apagado a declaracao do array Porta() la em cima:

Dim Porta() As String

ou você pos em algum otro lugar q ele não ta enxergando no form load.

se você pusesse sem parenteses na linha do erro, deve funcionar, mas ele entenderia Porta() como variavel local (so ia valer dentro do form load). se você precisa q ele identifique Porta em outros lugares, você tem q arrumar a declaracao la em cima.

Link para o comentário
Compartilhar em outros sites

  • 0

ele não aponta nenhuma linha??

esse erro é porque você escreveu algum codigo fora das subs. assim:

Private Sub x()
    - codigo aqui, pode -
End Sub
- codigo aqui não pode -
Public Function y()
    - codigo aqui, pode -
End Function
- codigo aqui não pode -[/code]

no caso de declaracoes, você pode por la em cima de tudo, antes de abrir a primeira sub ou function, mas depois não pode mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Só essa parte serve?

Dim Porta() As String

Private 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

Private 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

Public Function ReadINI(Secao As String, Entrada As String, Arquivo As String)

'Arquivo=nome do arquivo ini

'Secao=O que esta entre []'Entrada=nome do que se encontra antes do sinal de igual

Dim retlen As String

Dim Ret As String

Ret = String$(255, 0)

retlen = GetPrivateProfileString(Secao, Entrada, "", Ret, Len(Ret), Arquivo)

Ret = Left$(Ret, retlen)

ReadINI = Ret

End Function

Public Sub WriteINI(Secao As String, Entrada As String, Texto As String, Arquivo As String)

'Arquivo=nome do arquivo ini

'Secao=O que esta entre []

'Entrada=nome do que se encontra antes do sinal de igual

'texto= valor que vem depois do igual

WritePrivateProfileString Secao, Entrada, Texto, Arquivo

End Sub

IP = ReadINI("Configurações", "IP", "arquivo.ini")

Site = ReadINI("Configurações", "Site", "arquivo.ini")

Dim IP, Site As String

Dim Porta() As String

Link para o comentário
Compartilhar em outros sites

  • 0

omega, essa parte aqui:

IP = ReadINI("Configurações", "IP", "arquivo.ini")
Site = ReadINI("Configurações", "Site", "arquivo.ini")[/code] não pode estar jogada ai, era pra estar no form load. no lugar disso aqui q você passou no primero post:
[code]Site = "http://xxxxxxx"
IP = "127.0.0.1"

fora isso, você ta declarando o Porta() duas vezes. uma vez na primera linha e outra na ultima dessa parte do codigo q você passou. dexe so uma delas.

Link para o comentário
Compartilhar em outros sites

  • 0

isso, testa ai e veja se funciona.

so uma coisa, não sei muito sobre a sintaxe de arquivos .ini, mas em todos exemplos q olhei, não tem espacos do lado dos sinais de = (e no exemplo q você postou tem), então fica de olho, não sei se ele entendera o arquivo com os espacos.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...