我有一个VB.NET程序。在proerties / Application中,我选中了Make a single Instance Application。但它仍然允许某人在已经打开的同时打开该程序。我怎么能阻止这个?
答案 0 :(得分:1)
当您选择Make Single Instance Application时,启动程序的新副本将自动切换到现有副本。
您可以在Application类中自定义此行为。
答案 1 :(得分:1)
简短的回答是你不能。 VB在幕后做了一些技巧来帮助你实现这个目标,因为这是一个常见的业务需求。但是,您创建的实际上独占的任何内容都会让您遭到恶意创建/保留该资源并拒绝该资源的其他人的拒绝服务攻击。
常见的方法是创建一个众所周知的互斥/信号量/命名管道/类似的东西,如果它已经存在,退出刚刚启动的实例。没有一种安全的方式可以做你想做的事。
答案 2 :(得分:1)