Win32 ShellExecute 和 UNC 路径

Posted

技术标签:

【中文标题】Win32 ShellExecute 和 UNC 路径【英文标题】:Win32 ShellExecute and a UNC Path 【发布时间】:2010-09-10 09:33:49 【问题描述】:

我想在 Powerpoint 2007 中启动一个 Flash 演示文稿。我正在调用 Win32 ShellExecute() 例程。当我从路径为 UNC 路径 (\myserver\myfolder\sample.ppt) 的位置运行它时,它不起作用。

ShellExecute 例程需要 6 个参数,其中之一是运行它的路径。我尝试将此参数设置为 C:\ 以及使用 ActivePresentation.Path (这是一个 UNC 路径)。两者都不起作用。

【问题讨论】:

您能否将 ShellExecute() 函数调用显示为您现在如何使用它? 【参考方案1】:

我最初尝试了这种方法,但发现它会导致问题:

在未连接到网络的笔记本电脑上使用演示文稿时。 如果用户无权访问 UNC。 如果 Flash 文件被重命名、移动或删除。

我发现更好的方法是将文件嵌入到 Powerpoint 文件中。

使用Office XP、Powerpoint可以如下完成

'查看'菜单中选择'工具栏'并勾选'控制工具箱'

“控件工具箱”工具栏上点击“更多控件”图标

将显示控件列表。向下滚动直到找到'Shockwave Flash Object',然后点击它。

这应该会将您的光标更改为十字准线。移动到幻灯片上要插入 'Shockwave Flash Object' 的区域。 左键单击,按住并拖动以创建所需大小的框。

接下来右键单击刚刚插入的控件并选择'Properties'

设置以下属性

* Autoload = True
* EmbedMovie = True
* Enabled = True
* Loop = True
* Playing = True
* Visible = True
* Movie = c:\flash.swf (Change this to the location of your .swf file)

关闭“属性”控件

保存文件。

关闭文件。

重新打开文件。

当您在幻灯片放映期间到达幻灯片时,.swf 文件应该会自动开始播放。

我发现在 .swf 文件中包含控件(暂停/播放、时间线)很有用

【讨论】:

几年前我尝试过这样的事情。我发现 PowerPoint 和 Flash 之间的交互存在一些问题。有时闪光灯只是无法播放。有时会。这是我无法始终如一地重现它的那种错误。也许它现在可以工作了。【参考方案2】:

UNC 路径以 反斜杠开头。您是这样做的,还是只是问题中的一个错字?

【讨论】:

【参考方案3】:

我已将驱动器映射到 UNC 路径。

命令行看起来像

subst A:“\\ServerName\SomeDirectory”

【讨论】:

这似乎是一个合理的解决方法。我唯一担心的是,我认为某些系统用户不允许映射网络驱动器。不过,我要检查一下,它似乎应该可以工作。【参考方案4】:

好吧,现在它似乎与 unc 路径一起工作得很好。

【讨论】:

以上是关于Win32 ShellExecute 和 UNC 路径的主要内容,如果未能解决你的问题,请参考以下文章

用Python 打开程序的两中方法

ShellExecute无法打开文件夹

Python学习:启动和关闭exe

ShellExecute 不适用于其他计算机

win32两个应用程序窗口之间进行进程通信要怎么写

Win32 WNet API 和 NFS 路径的问题