• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

psiico

[VB6]duvidas de code

19 mensagens neste tópico

boas pessoal! bem eu andei a fazer um programita, que pretendo colocar aqui para download para voçes verem, mas falta-m uma parte do programa,que nao consigo arranjar soluçao..ou melhor eu sei a soluçao,nao sei é "coda-la".

é assim,eu fiz 1 programa que chama outros programas atraves da sintax: shell("path") e pronto, ta tudo direitinho.. mas como é normal de PC para  PC as dirs mudam, ou pk temos partiçoes ou kk coisa do genero e altera o destino dos programas ou da dir dos programas...e eu keria fazer um painel de definiçoes, onde reconhecia os destinos correntes das sintaxes shell, e caso eu alterasse algum destino, ele alterava tambem para ficar operacional.. o k eu pensei foi, gravar os destinos, num ficheiro, .txt, .ini ou entao criar entradas no registo.

e eu peço a vossa ajuda, que nao m desinrasco.. qualquer falta de informaçao, peço desculpa, e peçam a info que quiserem.. trnho VB 6, nao VB 6 net

ty pela help

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não é díficil, e eu estou mais habituado a mexer em chaves de registo.

mas antes de te dizer como fazeres, pergunto-te isto: é suposto ser depois o utilizador a definir essas propriedades right?

Ou seja, é ele que no programa vai definir, caso a sua drive principal não seja a C:\, a outra letra correspondente, não é?

btw, não existe vb6.net, é só vb.net ou vb7/7.1/8 correspondente a vb.net 2002/2003/2005

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim, eu tenho um destino default, tipo C:/programas/emule/emule.exe mas o user tem na partiçao ou no disco E:/ e tem k mudar...

sim, o utilizador, muda as propriedades

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sabes o nome do escutavel.. entao pk e k nao fazes um if, que veja se o path e valido se for executa senao procurar o exe que keres executar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, primeiro que tudo vais ter que fazer com que, quando o programa correr pela primeira vez, crie as variavéis default no editor de registo, e que ao mesmo tempo não faça nada quando elas já existirem.

Depois na janela de definições é onde essas variáveis serão alteradas.

E como raio acedes tu ao registo, e o alteras?

Bem, eu tenho para isso um module de 6 página que foi o que eu sempre usei e é bastante eficiente.

Vou ao windows e já posto aqui. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sabes o nome do escutavel.. entao pk e k nao fazes um if, que veja se o path e valido se for executa senao procurar o exe que keres executar

Err.... bem visto.....

Mas dentro de um for é que isso rulava...

O programa nunca teria uma path default, corria sempre que escolhias executar programa todas as paths desde A:;\ a Z:\

è uma hipótese

se ainda quiseres ir poelo registo diz...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol! ty vb master...

pebat, axo k esse metodo, é 1 cado complicado..pk akilo é soposto ser tipo atalhos rapidos,nao procurar sempre, demorava sempre 1 cado.. mas obrigado pela dica.

vb master,sim posta o ficheiro sff do reg...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, já podes usar.... ;)

Bem, aqui está o module: ftp://ftp.ua.pt/incoming/module/module.rtf

Depois só tens de fazer isto:

Private Sub Form_Load()
Dim Message As String
Message = modRegistry.ReadRegKey(HKEY_CURRENT_USER, "Software\Aplicação1", "test", "")
If Message = "default" Then
Else
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Aplicação1", "test", "default"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Aplicação1", "emule", "C:\Programas\Emule\emule.exe"
'ETC, etc etc
End If
End Sub


Private Sub Command1_Click()
'Alterar uma definição com base na drive dada na Textbox
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Aplicação1", "emule", "" & Text1.Text & "Programas\Emule\emule.exe"
End Sub

' esse modulo permite fazer muito mais, atenção 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmm, da erro VB master...

dá:

runtime error '424':

object required, faço debug e vai-m para a linha:

Message = modRegistry.ReadRegKey(HKEY_CURRENT_USER, "Software\Aplicação1", "test", "")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem... esse foi o métoido que eu inventei para ele saber se a chave re registo já existe e se não houver cria-a (o que só acontece supostamente na primeira vez que o programa é executado).

É provavel que se a chave não existir ele dê erro a lê-la pois obviamente não existe...

Já vou ver isso em windows....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, já testei e a mim não me dá erro nenhum..... :\

Adicionaste o module que te disse?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu adicionei o codigo que postast em cima, nakela, alterei-o e tal, mas dpois do ficheiro rtf, nao ligei pk n percebi :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu adicionei o codigo que postast em cima, nakela, alterei-o e tal, mas dpois do ficheiro rtf, nao ligei pk n percebi :S

:wallbash:

Na tua SolutionExplorer Window (já nem sei o nome disso em vb6), mas é a janela que te mostra as forms que tens no projecto etc, faz (em cima do projecto) add-> new item -> module e copias para lá o texto do rtf.

E pronto!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ahhh, ja m tou a lembrar! eskeçi-m dos modules..é o k da tar sem contacto c a linguagem..soz ai o grau d noodiçe

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ahhh, ja m tou a lembrar! eskeçi-m dos modules..é o k da tar sem contacto c a linguagem..soz ai o grau d noodiçe

no problem... depois quero ver esse programa já feito ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol ok, vou tentar.. so mais uma coisa.. eu altero as coisas sim tudo bem,mas ao correr o commando shell ele vai correr na mesma pelo default do source-code.. mesmo k no registo esteja: "E:\programas\emule\emule.exe" no commando shell vai tar "C:\programas\emule\emule.exe" que é o k esta definido.. cm mudo a sintax do commando shell mediante a entrada no registo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol ok, vou tentar.. so mais uma coisa.. eu altero as coisas sim tudo bem,mas ao correr o commando shell ele vai correr na mesma pelo default do source-code.. mesmo k no registo esteja: "E:\programas\emule\emule.exe" no commando shell vai tar "C:\programas\emule\emule.exe" que é o k esta definido.. cm mudo a sintax do commando shell mediante a entrada no registo?

' ao carregar no icon do emule
Shell ( "" & ModRegistry.ReadRegKey (HKEY_CURRENT_USER, "Software\Aplicação1", emule & "")), vbNormalFocus

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja adicionei ao projecto, o modulo, e tenho este code no private sub form_load():

Dim Message As String
Message = modRegistry.ReadRegKey(HKEY_CURRENT_USER, "Software\Ferramentas", "test", "")
If Message = "default" Then
Else
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "test", "default"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "adware", "C:\Programas\Lavasoft\Ad-Aware SE Personal\ad-aware.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "MAS", "C:\Programas\Microsoft AntiSpyware\GIANTAntiSpywareMain.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "CS", "C:\programas\valve\steam\steam.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "firefox", "C:\programas\mozilla firefox\firefox.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "IE", "C:\programas\internet explorer\iexplore.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "nn", "C:\programas\no name script\mirc.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "mirc", "c:\program files\mirc\mirc.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "norton", "C:\Programas\Norton SystemWorks\Norton AntiVirus\navw32.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "scanN", "C:\Programas\Norton SystemWorks\Norton AntiVirus\CCIMSCAN.EXE"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "PS", "C:\programas\adobe\photoshop cs\photoshop.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "PS2", "C:\programas\adobe\photoshop cs2\photoshop.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "SP", "C:\C:\Programas\Spybot - Search & Destroy\SpyBotSD.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "word", "C:\Programas\Microsoft Office\Office11\winword.exe"
modRegistry.WriteRegKey REG_SZ, HKEY_CURRENT_USER, "Software\Ferramentas", "wow", "C:\programas\world of warcraft\wow.exe"
End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora