VBscript总是在后台运行快捷方式为什么?

时间:2014-03-29 09:47:41

标签: vbscript ms-word

当我通过CMD.EXE运行以下脚本时,Word的显示正常,即最大化。

Set oWord = CreateObject("Word.Application")
oWord.Visible = True
oWord.Documents.open(sTempWordFile)
oWord.Run WScript.Arguments.item(0)
oWord.Activate

当我在快捷方式.LNK文件中调用与Target相同的脚本时,显示始终最小化!

.LNK文件目标是:"%OWNERS_CORP_ROOT%\ cmd \ RunWord.vbs"备忘录

使用Windows 8.1,Office 2013.快捷方式.LNK文件设置为运行'最大化'。

如何制作最大化的'使用快捷方式时显示?

1 个答案:

答案 0 :(得分:-1)

SetForegroundWindow函数


SetForegroundWindow函数将创建指定窗口的线程放入前台并激活窗口。键盘输入被定向到窗口,并且为用户改变各种视觉提示。系统为创建前台窗口的线程分配的优先级略高于其他线程的优先级。

语法

BOOL SetForegroundWindow(HWND hWnd ); 参数

的hWnd [in]处理应激活并带到前台的窗口。 返回值

如果窗口被带到前台,则返回值为非零值。 如果窗口未被带到前台,则返回值为零。

说明

Windows 98 / Me:系统限制哪些进程可以设置前台窗口。仅当满足下列条件之一时,进程才能设置前台窗口:

该过程是前台进程。 该过程由前台进程启动。 该过程收到了最后一个输入事件。 没有前台进程。 正在调试前台进程。 前景未锁定(请参阅LockSetForegroundWindow)。 前台锁定超时已到期(请参阅SystemParametersInfo中的SPI_GETFOREGROUNDLOCKTIMEOUT)。 Windows 2000 / XP:没有菜单处于活动状态。

通过此更改,当用户使用其他窗口时,应用程序无法强制窗口进入前台。相反,Foreground和Background Windows将激活窗口(请参阅SetActiveWindow)并调用该函数以通知用户。但是,在Microsoft Windows 98和Windows Millennium Edition(Windows Me)上,如果非后台线程调用SetForegroundWindow并传递未由调用线程创建的窗口的句柄,则窗口不会在任务栏上闪烁。要使SetForegroundWindow的行为与在Windows 95和Microsoft Windows NT 4.0上的行为相同,请在安装应用程序时更改前台锁定超时值。这可以通过以下函数调用从安装或安装应用程序完成:

SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);

此方法允许Windows 98 / Windows Me和Windows 2000 / Windows XP上的SetForegroundWindow分别与所有应用程序的Windows 95和Windows NT 4.0相同。设置应用程序应该警告用户这样做,以便用户不会对改变的行为感到惊讶。在Windows Windows 2000和Windows XP上,除非调用线程可以更改前台窗口,否则调用将失败,因此必须从安装程序或修补程序应用程序调用此方法。有关更多信息,请参阅前台和后台Windows。

可以设置前台窗口的进程可以通过调用AllowSetForegroundWindow函数启用另一个进程来设置前台窗口。 dwProcessId指定的进程失去了下次用户生成输入时设置前台窗口的能力,除非输入是针对该进程的,或者下次进程调用AllowSetForegroundWindow,除非指定了该进程。

前台进程可以通过调用LockSetForegroundWindow函数来禁用对SetForegroundWindow的调用。

功能信息

最小DLL版本user32.dll 在Winuser.h中声明的头文件,包括Windows.h 导入库User32.lib 最低操作系统Windows 95,Windows NT 3.1 Unicode实现为Unicode版本。

另见

Windows Overview,AllowSetForegroundWindow,FlashWindowEx,GetForegroundWindow,LockSetForegroundWindow,SetActiveWindow