Jump to content
Sign in to follow this  
psiico

[VB6]duvidas de code

Recommended Posts

psiico

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

Share this post


Link to post
Share on other sites
vbmaster

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

Share this post


Link to post
Share on other sites
psiico

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

Share this post


Link to post
Share on other sites
pebat

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

Share this post


Link to post
Share on other sites
vbmaster

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. ;)

Share this post


Link to post
Share on other sites
vbmaster

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...

Share this post


Link to post
Share on other sites
psiico

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...

Share this post


Link to post
Share on other sites
vbmaster

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 

Share this post


Link to post
Share on other sites
psiico

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", "")

Share this post


Link to post
Share on other sites
vbmaster

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....

Share this post


Link to post
Share on other sites
vbmaster

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

Adicionaste o module que te disse?

Share this post


Link to post
Share on other sites
vbmaster

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!

Share this post


Link to post
Share on other sites
vbmaster

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 ;)

Share this post


Link to post
Share on other sites
psiico

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?

Share this post


Link to post
Share on other sites
vbmaster

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

Share this post


Link to post
Share on other sites
psiico

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.