a3deluxe Posted August 7, 2013 at 04:43 PM Report #521115 Posted August 7, 2013 at 04:43 PM 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
nelsonr Posted August 7, 2013 at 04:56 PM Report #521117 Posted August 7, 2013 at 04:56 PM (edited) O erro é por causa das aspas na string Tenta assim: Shell("c:\Program Files\Gizmo\gizmo.exe /Unmount:" & Chr(34) & "J" & Chr(34) ) Edited August 7, 2013 at 05:01 PM by nelsonr
a3deluxe Posted August 7, 2013 at 05:11 PM Author Report #521120 Posted August 7, 2013 at 05:11 PM 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?
nelsonr Posted August 7, 2013 at 05:21 PM Report #521122 Posted August 7, 2013 at 05:21 PM Tens de chamar essa função dentro do evento _FormClosing do form. http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx
a3deluxe Posted August 7, 2013 at 06:46 PM Author Report #521134 Posted August 7, 2013 at 06:46 PM 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
thoga31 Posted August 8, 2013 at 01:00 AM Report #521173 Posted August 8, 2013 at 01:00 AM 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... 😄 Knowledge is free!
a3deluxe Posted August 8, 2013 at 04:46 AM Author Report #521177 Posted August 8, 2013 at 04:46 AM O que podiamos usar em "Chr(34)" ?
nelsonr Posted August 8, 2013 at 07:28 AM Report #521180 Posted August 8, 2013 at 07:28 AM 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
thoga31 Posted August 8, 2013 at 02:45 PM Report #521229 Posted August 8, 2013 at 02:45 PM 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!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now