RAS 自定义脚本
开发人员可以创建驻留在 RAS 客户端计算机上的自定义脚本 DLL。 此 DLL 可以在建立连接的过程中与服务器通信。
Windows NT:自定义脚本不可用。
设置 DLL
若要设置 DLL,请在以下注册表项下创建名为 CustomScriptDllPath 的值:
HKEY_LOCAL_MACHINE
System
CurrentControlSet
Services
Rasman
Parameters
此值的类型应为 REG_EXPAND_SZ。 值应包含自定义脚本 DLL 的路径。 每台 RAS 客户端计算机仅支持一个自定义脚本 DLL。
服务器、RAS 和Custom-Scripting DLL 之间的交互
自定义脚本 DLL 应导出单个入口点: RasCustomScriptExecute。 RAS 在连接过程的RASCS_Interactive状态期间调用此函数。 RASCS_Interactive状态是暂停状态,允许用户与自定义脚本 DLL 提供的用户界面进行交互。 有关连接状态的详细信息,请参阅 RASCONNSTATE 。
RAS 将作为参数传递给 RasCustomScriptExecute 函数:
- 客户端计算机上用于连接的端口的句柄。
- 标识连接的电话簿和条目的字符串。
- RAS 还会将句柄传递到窗口,使 DLL 能够显示用户界面。
- DLL 可用于与服务器通信的一组函数指针。
有关这些参数的详细信息 ,请参阅 RasCustomScriptExecute 。
RAS 将指向 RASCUSTOMSCRIPTEXTENSIONS 结构的指针作为最后一个参数传递给 RasCustomScriptExecute。 此结构包含指向 类型为 PFNRASSETCOMMSETTINGS 的函数的指针。 自定义脚本 DLL 调用此函数以修改连接所使用的端口上的通信设置。
RAS 调解服务器与自定义脚本 DLL 之间的交互。 通常,服务器会启动对话。 例如,服务器可能会请求用户的用户名和密码。
使用自定义脚本建立连接时,服务器无需运行 Windows NT 4.0 或 Windows 2000。
自定义脚本用户界面必须支持 IDCANCEL
如果自定义拨号器显示用户界面,则用户界面必须支持 LOWORD (wParam) 等于 IDCANCEL 的WM_COMMAND消息。
配置连接
RasCustomScriptExecute 入口点可以从 RasDialDlg 调用,也可以在 Windows XP 上从 RasDial 调用。
若要从 RasDialDlg 调用 RasCustomScriptExecute,请在连接的电话簿条目中设置RASEO_CustomScript选项。 有关电话簿输入选项的说明,请参阅 RASENTRY 的 dwfOptions 成员。 使用 RasGetEntryProperties 和 RasSetEntryProperties 函数以编程方式设置此选项。
Windowsxp:若要从 RasDial 调用 RasCustomScriptExecute,对 RasDial 的调用必须指定 RASDIALEXTENSIONS 结构,并且此结构必须指定 RDEOPT_UseCustomScripting 标志。 此外,连接的电话簿条目必须指定RASEO_CustomScript选项,如上一段落中所述。
调用自定义脚本 DLL
如果用户为设置了RASEO_CustomScript的电话簿条目激活连接,RAS 将调用自定义脚本 DLL。 在此方案中,RAS 从 RasDialDlg 调用自定义脚本 DLL。
若要以编程方式调用自定义脚本 DLL,请使用 RasDialDlg 函数建立连接。 在 Windows XP 上, RasDial 函数还会调用自定义脚本 DLL。