由另一个应用程序启动的应用程序退出

时间:2017-09-23 10:49:36

标签: vb.net

我有一个安装我的应用程序的设置(我的应用程序只是一个隐藏的应用程序,用于将数据从我的服务器同步到用户)...

当设置启动我的应用程序时,应用程序在完成后退出! (完成后不应该退出,因为Timer会一次又一次地重启函数......)

我使用的安装程序创建者是InstallForge,我认为问题出在InstallForge上,所以我创建了另一个执行Process.Start("MyApp.exe")的应用程序,但同样的问题也出现了!

手动打开应用程序exe很好,当我手动打开它时不会出现问题。

编辑:我的应用程序没有与应用程序关闭相关的任何内容。

以下是我隐藏应用程序的方法:

Form_Load事件

Me.ShowInTaskbar = False
Me.Opacity = 0.0

Form_Shown事件

Me.Visible = False

任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

根据您的一个问题 - > Disable exception errors ( .NET error messages / dialog ) and resume the code

如果您隐藏了异常错误,请删除隐藏它们的代码,然后您会看到“Invaild路径”错误。

  

Application1:应用程序是否正在尝试打开您的应用程序。

     

申请2:是你的申请。

如果你的应用程序(Application2)有任何一行尝试启动另一个exe文件,该文件位于你的应用程序的同一个文件夹中(Application2)......它将抛出错误,因此应用程序将退出。

因此,假设Application1位于“C:\ app1”中,而Application2位于“C:\ app1 \ myapp”中。

当Application1执行Process.Start("myapp\app.exe")时,它将正确启动Application2 ...但是Application2启动另一个exe文件已经太迟了,该文件位于它的同一个文件夹中!你知道为什么?那是因为Application1已经将工作目录设置为“C:\ app1”,而Application2必须从“C:\ app1 \ myapp”运行它想要的东西。

因此,解决方案就是在Application2 上执行此操作:

添加:

Dim strPath As String = System.IO.Path.GetDirectoryName( _
    System.Reflection.Assembly.GetExecutingAssembly().CodeBase)

现在,您可以通过以下方式执行Application2中的任何内容:Process.Start(strPath + "\startthis.exe")

来源:https://stackoverflow.com/a/2593490/6486232

您必须将Application2的文件放在Application1文件的同一文件夹中。

希望它有所帮助! :)