File not found terwijl het wel degelijk bestaat

Status
Niet open voor verdere reacties.

computerproblem

Gebruiker
Lid geworden
14 aug 2007
Berichten
21
Hallo allemaal,

Ik ben vorige week begonnen om een simpel programma te maken met Visual Basic 2008 Express Edition.

Nu wil ik het voor elkaar krijgen dat gebruikers het programma, Gedeelde Mappen, kunnen starten.
Dit programma is te vinden op onderstaande locatie:
C:\windows\system32\fsmgmt.msc

Maar het lukt mij niet om dit programma via VB te starten. De volgende code's heb ik al geprobeerd:
Code:
Shell("C:\windows\system32\fsmgmt.msc")
Code:
Shell("fsmgmt")
Code:
Shell("fsmgmt.msc")
Code:
Shell("system32\fsmgmt.msc")
Code:
Shell"(system32\fsmgmt.msc")

Alle andere programma's werken wel. Behalve fsmgmt.msc.

Kan iemand mij vertellen wat ik fout doe en hoe ik dit moet oplossen.

Mijn volledige van de button:
Code:
Private Sub fsmgmt_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        Shell("fsmgmt.msc")
    End Sub

De foutmelding is de volgende:
FileNotFoundException was unhandled
Bestand niet gevonden
System.IO.FileNotFoundException was unhandled
Message="Bestand niet gevonden."
Source="Microsoft.VisualBasic"
StackTrace:
bij Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout)
bij Windows_Tools.Verborgen_Windows_Tools.fsmgmt_button_Click(Object sender, EventArgs e) in C:\Documents and Settings\Joey\Mijn documenten\Visual Studio 2008\Projects\WindowsApplication1\WindowsApplication1\Form1.vb:regel 16
bij System.Windows.Forms.Control.OnClick(EventArgs e)
bij System.Windows.Forms.Button.OnClick(EventArgs e)
bij System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bij System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bij System.Windows.Forms.Control.WndProc(Message& m)
bij System.Windows.Forms.ButtonBase.WndProc(Message& m)
bij System.Windows.Forms.Button.WndProc(Message& m)
bij System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bij System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bij System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bij System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bij System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bij System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bij System.Windows.Forms.Application.Run(ApplicationContext context)
bij Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bij Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bij Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bij Windows_Tools.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:regel 81
bij System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bij System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
bij System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
bij System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
bij System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
bij System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
bij System.Activator.CreateInstance(ActivationContext activationContext)
bij Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
bij System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bij System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bij System.Threading.ThreadHelper.ThreadStart()
InnerException:

Groetjes,
Computerproblem
 
Lijkt mij eigenlijk niet.
Want als ik bij start --> uitvoeren en dan fsmgmt.msc invul start het programma wel op. Ik heb het nu tijdelijk opgelost met:
Code:
Private Sub fsmgmt_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        Dim sCommand As String
        sCommand = "start fsmgmt.msc"
        Shell("cmd.exe /c" & sCommand)
    End Sub

Nu werkt het ook. Dus als ik het niet krijg opgelost dan kan ik altijd dit nog laten staan.
 
Dit komt omdat je met het shell commando een applicatie opstart, en fsmgmt.msc geen applicatie is, maar een management console extensie. Je zult dus de mmc moeten opstarten, of windows vertellen om het programma behorende bij de .msc extensie op te laten starten. Dit zou je bv zo kunnen doen:
Code:
Private Sub fsmgmt_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        System.Diagnostics.Process.Start("C:\windows\system32\fsmgmt.msc")
End Sub
 
Dit komt omdat je met het shell commando een applicatie opstart, en fsmgmt.msc geen applicatie is, maar een management console extensie. Je zult dus de mmc moeten opstarten, of windows vertellen om het programma behorende bij de .msc extensie op te laten starten. Dit zou je bv zo kunnen doen:
Code:
Private Sub fsmgmt_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        System.Diagnostics.Process.Start("C:\windows\system32\fsmgmt.msc")
End Sub

Bedankt het werkt met deze oplossing:
Heb nu de volgende code gebruikt:
Code:
Private Sub fsmgmt_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        System.Diagnostics.Process.Start("fsmgmt.msc")
    End Sub
 
Is het nu ook nog mogelijk dat als iemand dit bestand niet op zijn computer heeft staan. Er dan niks gebeurt. Ook geen foutmelding maar dat het programma gewoon verder gaat.

Of dat ik hier zelf een foutmelding voor kan instellen?
 
Laatst bewerkt:
Yep, je vangt dan de fout af met een try/catch en je kunt dan gewoon verder gaan zonder foutmelding. Ik laat hieronder een msgbox zien, maar je natuurlijk ook gewoon geen foutmelding tonen of de applicatie laten beëindigen of wat je dan ook maar wilt
Code:
Private Sub fsmgmt_button_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles fsmgmt_button.Click
        Try
            System.Diagnostics.Process.Start("fsmgmt.msc")
        Catch ex As System.ComponentModel.Win32Exception
            MsgBox("Component not found", MsgBoxStyle.Critical)
        End Try
End Sub
 
Bedankt.
Werkt deze functie ook voor een Shell.
Wanneer ik dit probeer werkt het namelijk niet:
Code:
Private Sub dde_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dde_button.Click
        Try
            Shell("ddeshare2.exe", AppWinStyle.NormalFocus)
        Catch ex As System.ComponentModel.Win32Exception
            MsgBox("Component not found", MsgBoxStyle.Critical)
        End Try
    End Sub

Groetjes,
Computerproblem

-----

Ik heb het opgelost met het volgende:
Code:
Private Sub dde_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dde_button.Click
        Try
            Shell("ddeshare2.exe", AppWinStyle.NormalFocus)
        Catch ex As Exception
            MsgBox("Dit programma is niet op uw computer aanwezig", MsgBoxStyle.Information)
        End Try
    End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan