Вы можете создать простой точечный сетевой компонент , который предоставляет COM-интерфейс , так что вы можете использовать его в VBScript (или любом COM / Технология ActiveX ).
- (1) Создайте проект типа библиотеки точек сети, предоставьте классы, которые вы хотите, чтобы COM-совместимость (добавив ComVisible и ClassInterface ). Атрибут ClassInterface должен быть установлен на AutoDual , чтобы вы могли создавать экземпляры с помощью позднего связывания .
- (2) установите флажок для взаимодействия COM на вкладке сборки в диалоговом окне свойств проекта.
- (3) создайте проект, чтобы компонент мог быть надлежащим образом зарегистрирован (у вас есть возможность создать проект установки для вашего компонента, чтобы его можно было легко развернуть).
...
namespace WinUtility
{
[ComVisible(true), Guid("32284FD3-417E-45fc-A4A0-9344C489053B"),
ClassInterface(ClassInterfaceType.AutoDual)]
public class WinDialog
{
public string ShowOpenFileDialog()
{
string result = string.Empty;
OpenFileDialog d = new OpenFileDialog();
if (d.ShowDialog() == DialogResult.OK) { result = d.FileName; }
return result;
}
}
}
Как только ваш компонент зарегистрирован, вы можете создать его экземпляр из VBScript:
dim wnd_helper, file_name
Set wnd_helper = CreateObject("WinUtility.WinDialog")
file_name = wnd_helper.ShowOpenFileDialog()
if trim(file_name) <> "" then
msgbox "file: " + file_name
else
msgbox "No file selected."
end if