在Windows 10中,如果右键单击图像,则会找到一个名为“共享”的选项。
单击此按钮将打开一个对话框,您可以在其中通过电子邮件共享图像,例如一个便笺。
有人知道我怎么能从CMD或PowerShell调用它吗?因为我想将此功能添加到我的应用中。
我已经到了这一步,但是出现了无效的窗口句柄错误:
$Target = "C:\Users\igweo\OneDrive\Pictures\wallpapers\luca-zanon-26595-unsplash.jpg"
$KeyPath1 = "HKCU:\SOFTWARE\Classes"
$KeyPath2 = "*"
$KeyPath3 = "shell"
$KeyPath4 = "{:}"
$ValueName = "ExplorerCommandHandler"
$ValueData = (Get-ItemProperty("HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\" +
"Explorer\CommandStore\shell\Windows.ModernShare")).ExplorerCommandHandler
$Key2 = (Get-Item $KeyPath1).OpenSubKey($KeyPath2, $true)
$Key3 = $Key2.CreateSubKey($KeyPath3, $true)
$Key4 = $Key3.CreateSubKey($KeyPath4, $true)
$Key4.SetValue($ValueName, $ValueData)
$Shell = New-Object -ComObject "Shell.Application"
$Folder = $Shell.Namespace((Get-Item $Target).DirectoryName)
$Item = $Folder.ParseName((Get-Item $Target).Name)
$Item.InvokeVerb("{:}")
$Key3.DeleteSubKey($KeyPath4)
if ($Key3.SubKeyCount -eq 0 -and $Key3.ValueCount -eq 0) {
$Key2.DeleteSubKey($KeyPath3)
}
此外,使用RUNDLL也不起作用:
RUNDLL32.EXE NTSHRUI.DLL,ShowShareFolderUI C:\Users\igweo\OneDrive\Pictures\wallpapers\luca-zanon-26595-unsplash.jpg
答案 0 :(得分:2)
感谢@Simon Mourier向我指出了答案。 该解决方案可以在https://github.com/daibatzu/electron-sharing
上找到使用Visual Studio可以构建一个exe文件,我在readme.txt中包含了说明
生成的exe是WindowsFormsApp2.exe 然后,您可以使用以下方式共享文件:
WindowsFormsApp2.exe“ C:\ Projects \ Javascript \ photos \ celeste.png”“ C:\ Projects \ Javascript \ photos \ Silvercoins.jpg”
您可以通过打开cmd提示符,导航到包含WindowsFormsApp2.exe的文件夹并传递文件名作为参数来进行测试。
在共享对话框之外单击将关闭WindowsFormsApp2.exe 不幸的是,您将需要使用Visual Studio更改此应用程序的图标
为了防止您不了解Visual Studio或C#,我提供了一个发行版。您需要7-zip(免费下载)将其解压缩。
再次感谢西蒙。 这花了比我想象的更长的时间。
编辑
github有问题,因此zip文件在这里:https://drive.google.com/file/d/1jyBqO6jmGo5dSxw32LXa5lej1J3ElD34/view?usp=sharing