我有 2 个应用程序,一个需要以管理员身份运行,一个不需要。
以管理员身份运行的是我的主应用程序,它需要管理员权限才能更改注册表。
以用户身份运行的是辅助应用程序,可以将资源管理器中的文件拖放到它上面。此拖放功能禁止在 Explorer 未提升时拖放到提升的应用程序,因此这就是为什么我的辅助应用程序需要在没有管理员提升的情况下运行。
问题在于尝试使用SendMessage在两个应用程序之间进行通信。无法从我的辅助应用程序向我的主应用程序发送消息,出于同样的原因,我假设来自非提升资源管理器的文件不能被拖放到提升的应用程序。
当辅助应用程序发生更改时,我正在使用 SendMessage 将一些属性发送到主应用程序。我需要主应用程序知道这些属性何时更改。
有没有办法解决这个问题,还是我必须考虑改变我的处理方式?我可以将这些属性保存到文件中并使用FileSystemWatcher检查更改,但这似乎很尴尬,因为不能保证更改是由辅助应用程序进行的。