I wrote an application that stores some settings in My.Settings in order to be used within the Application_StartUp event if e.Args has some specific data.
My problem is that the software should run automatically when started by another software but it seems that it cannot access My.Settings if it is started like that.
I guess that this is some Windows Security Police ...
Does anyone have an idea how I can work around this problem?
PS: I already tried to save the information in an XML file and load it while start up. But this also did not seem to work ...
@nbk There is not much to show:
Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
Dim Folder As String = My.Settings.BaseDirectory & "\Results\"
If (My.Settings.SubDirectory.Length > 0) Then
Folder &= My.Settings.SubDirectory & "\"
End If
End Sub
If I just run my application Folder looks like "C:\BaseFolder\Results\SubFolder" but if I try to run it via another software (which I did not write) it just looks like "\Results"
I wrote this console app:
Sub Main()
Try
Dim args = My.Application.CommandLineArgs
If args.Count = 0 Then Throw New Exception("No Result given")
Dim executable As String = "C:\Path\Executable.exe"
If Not File.Exists(executable) Then Throw New Exception("Executable not found")
Dim path = IO.Path.GetDirectoryName(executable)
If Not Directory.Exists(path) Then Throw New Exception("Working directory not found")
Dim result As String = String.Join(" ", args)
Dim info As New ProcessStartInfo(executable, Chr(34) & result & Chr(34)) With {
.UseShellExecute = True,
.WorkingDirectory = path
}
Dim p = Process.Start(info)
p.WaitForExit()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
If I run it separately it works, but if I try to run it via the third party software it does not work ...