>我在互联网上搜索,但没有找到合适的答案,或者这些答案对于我的问题来说太旧了。
在我工作的公司里,有10多台PC与不同的Windows操作系统(Windows 7,Windows vista,Windows 10(。在这些机器上,我需要设置我的应用程序,该应用程序将一个 excel 文件从任何位置复制并重命名为预定义的位置。之后运行另一个(不是我的(应用程序。为了更好的工作流程,我希望当用户右键单击将被复制的文件时,仅从窗口上下文菜单运行该应用程序。为了在此过程中进行一些限制,我想限制右键单击时的上下文菜单项外观。
例如,在某个文件夹中找到文件"****标签****.xlsx"。右键单击此文件时,在上下文菜单中显示可见命令"复制和打印..."。如果文件掩码不匹配,则上下文菜单项不可见。
我的主要问题:上下文菜单项的创建和对该上下文菜单项可见性的控制。我认为可以通过更改注册表来实现,但我不知道如何进行文件掩码限制。当然,不同版本的窗口会带来一些困难。
对于任何合适的答案,我将感到非常高兴。
经过一天多的尝试,我得到了符合预期的结果。现在我意识到这种解决方案的一天花费很多。也许它可以帮助某人花更少的时间。
我还不知道它在其他Windows操作系统上的情况如何,但是Windows 10的此注册表更改有效:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT*shellyour custom app]
@="To Tags stamp"
"AppliesTo"="*tags*.xlsx"
[HKEY_CLASSES_ROOT*shellyour custom appcommand]
@="C:\My Custom App\TagsFileToTagStamp.exe "%1" "R:\Orders\CIM\tagtostamp.xlsx""
标签文件到标签邮票.exe代码:
Sub Main()
Dim Arguments() As String = Environment.GetCommandLineArgs()
If Arguments.Length >= 2 Then
Dim FilePath As String = Arguments(1)
Dim DestinationPath As String = Arguments(2)
IO.File.Delete(DestinationPath)
IO.File.Copy(FilePath, DestinationPath)
End If
End Sub