在不锁定exe的情况下发出消息

本文关键字:消息 情况下 锁定 exe | 更新日期: 2023-09-27 18:27:35

我基本上有两个程序:

  1. main.exe
  2. update.exe

Update会创建一个标志文件(Update.inprogress),以便在更新过程中无法运行main。

如果main打开并且该文件存在,它将立即退出以防止程序在使用中发生冲突。

我只有一个问题。如果更新正在进行中,当他们试图进入时,主程序会无故关闭。我需要告诉他们程序正在更新,以防止他们告诉我们世界已经结束。。。

我的问题是,如何在不占用main.exe的情况下发出更新正在进行的消息?如果我从main.exe发出它,那么它将被使用,无法更新。

我想打开记事本,在里面放一条信息,但这似乎是一种糟糕的做法

我也可以创建另一个只显示此消息的exe,但是,如果我必须更新它,它也会被使用。。有点违背了我的目标。

有人有更好的主意吗?


澄清:

这是一个对等网络。更新可以在XYZ工作站上运行,有人可以尝试进入ABC工作站的main.exe。这就是我使用标志文件的原因。我必须检查另一个工作站上运行的进程。

在不锁定exe的情况下发出消息

我假设当update.exe运行时,它不需要更新自己?如果是这种情况,如果不需要更新,则可以修改update.exe以调用main.exe。

例如,如果需要更新(您可以通过向main.exe添加版本号并检查它来完成此操作),update.exe将创建update.inprogress文件并运行更新。然后,如果运行update.exe的另一个实例,它将看到update.inprogress文件,并提醒用户更新正在进行中,并在不占用main.exe的情况下终止自身。如果update.exe在不需要更新且update.inprovision不存在的情况下运行,它将以编程方式调用main.exe。

我建议从update.exe创建一个线程,以检查main.exe进程的存在。如果它出现,请从update.exe中向用户发出一条消息。