Jump to content
Sign in to follow this  
a3deluxe

Shell erro

Recommended Posts

a3deluxe

Boas,

Queria desmontar uma drive utilizando um programa chamado Gizmo.

Testei no cmd do dos, a instrução: c:\Program Files\Gizmo\gizmo.exe /Unmount:"J"

e funcionou.

Agora queria coloca-la em vb.

tentei assim:

//Shell("c:\Program Files\Gizmo\gizmo.exe /Unmount:"J") 

e dá me este erro, na letra J:

(Error 1 Comma, ')', or a valid expression continuation expected. C:\project\Form1.vb 74 65 project1.

J, que corresponde a letra da drive a desmontar.

aqui fica o link onde encontrei os command line

:http://arainia.com/support/forums/viewtopic.php?t=211&sid=dc23cffb49164be88c348a03c07c29dd

obrigado

Share this post


Link to post
Share on other sites
nelsonr

O erro é por causa das aspas na string

Tenta assim:

Shell("c:\Program Files\Gizmo\gizmo.exe /Unmount:" & Chr(34) & "J" & Chr(34) )

Edited by nelsonr

Share this post


Link to post
Share on other sites
a3deluxe

Obrigado, nelsonr

já esta resolvido.

era isso mesmo.

Agora queria tambem adicionar este código ao fechar a janela do form no X

porque estou a utilizar num botão.

como posso fazer?

Share this post


Link to post
Share on other sites
a3deluxe

mais uma vez Obrigado,

Resolvi assim:

// Private Sub FormClosing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

	If MessageBox.Show("Are you sure to exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
		e.Cancel = False
	Else
		e.Cancel = True
	End If

End Sub  

Share this post


Link to post
Share on other sites
thoga31

Tenta assim:

Shell("c:\Program Files\Gizmo\gizmo.exe /Unmount:" & Chr(34) & "J" & Chr(34) )

Não usem "Chr(34)", o VB.NET tem uma forma de assumir uma aspa:

Shell("c:\Program Files\Gizmo\gizmo.exe /Unmount:""J""")

Ou seja, duas aspas seguidas serão consideradas uma aspa na String. Se fôssemos a usar Chr(34) para isto estávamos perdidos... :D


Knowledge is free!

Share this post


Link to post
Share on other sites
nelsonr

As aspas são caracteres delimitadores de strings.

Quando pretendes usar aspas literalmente dentro de uma string, dá erro porque o vb.net não sabe se é para terminar uma string ou se fazem parte da string.

o que o thoga31 quer dizer, é que em vez de somares à string o caracter das aspas usando o chr(34), usares aspas duplas dentro da string.

A meu ver tanto faz de uma maneira ou de outra (até porque programo em C# e uso \").

No entanto acho que o uso do " & chr(34) &" facilita visualmente em relação às aspas duplas

Share this post


Link to post
Share on other sites
thoga31

Facilita visualmente num aspecto, sim, mas a meu ver polui imenso a visualização da String que estamos a criar, principalmente quando temos de concatenar mais coisas.

Além disso, estou bastante habituado a usar este método de aspa dupla pois em Pascal é utilizado o mesmo método da plica dupla - mas aí o editor de texto que uso é mais inteligente que o Visual Studio - coloca as plicas duplas a uma cor diferente.


Knowledge is free!

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.