Ниже приведены специфические типы и
функции которые могут использоваться во
всех видах скриптов. Кроме этого модно
пользоватся стандартными типами и
функциями паскаля для работы со строками,
например такими как функции Copy, Delete и тип
TStringList. Так же можно использовать функции из
внешних .dll библиотек. Для этого такую
функцию надо объявится в начале программы примерно
следующим образом:
function FindWindow(C1, C2: PChar): Longint; external 'FindWindowA@user32.dll stdcall';
- type TDateTime
- function EncodeDate(Year, Month, Day: Word): TDateTime;
- function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
- function TryEncodeDate(Year, Month, Day: Word; var Date: TDateTime):
Boolean;
- function TryEncodeTime(Hour, Min, Sec, MSec: Word; var Time: TDateTime):
Boolean;
- procedure DecodeDate(const DateTime: TDateTime; var Year, Month, Day:
Word);
- procedure DecodeTime(const DateTime: TDateTime; var Hour, Min, Sec,
MSec: Word);
- function DayOfWeek(const DateTime: TDateTime): Word;
- function Date: TDateTime;
- function Time: TDateTime;
- function Now: TDateTime;
- function DateTimeToUnix(D: TDateTime): Int64;
- function UnixToDateTime(U: Int64): TDateTime;
- function DateToStr(D: TDateTime): string;
- function StrToDate(const s: string): TDateTime;
- function FormatDateTime(const fmt: string; D: TDateTime): string;
Работа с файлами, приложениями и
настройками
Управление NetView
Объекты интерфейса с NetView
Работа с файлами и
приложениями
Type TSearchRec=record
Time:integer;
Size:integer;
SizeHigh:integer;
Attr:integer;
Name:string;
FindHandle:integer;
end;
function FindFirst(Path:string; var F:
TSearchRec):integer;
Начинает поиск файлов\каталогов в
заданном пути по заданной маске.
Path - Путь\маска имени. Например 'C:\WinNT\*.exe'.
Если путь начинается не на имя диска и не
на \\ то он за начало пути считается каталог
\NetView\Scripts.
F - структура в которой хранится
информация о найденном файле и состояние
процесса поиска
Возвращает 0 если не произошло ошибки
иначе возвращает код ошибки
function FindNext(var F: TSearchRec):integer;
Продолжает начатый по FindFirst поиск.
Возвращает 0 если не произошло ошибки
иначе возвращает код ошибки.
procedure FindClose(F: TSearchRec);
Закрывает структуру F для освобождения
занятых ресурсов.
function CopyFile(source:string;target:string;failifexists:boolean):
integer;
Копирует файл из source в target.
Возвращает 0 если не произошло ошибки иначе
возвращает код ошибки. Если путь начинается
не на имя диска и не на \\ то он за начало пути
считается каталог \NetView\Scripts.
function MoveFile(source:string;target:string):
integer;
Перемещает файл из source в target.
Возвращает 0 если не произошло ошибки иначе
возвращает код ошибки. Если путь начинается
не на имя диска и не на \\ то он за начало пути
считается каталог \NetView\Scripts.
function CreateDirectory(s:string):
integer;
Создает директорию с путем s.
Возвращает 0 если не произошло ошибки
иначе возвращает код ошибки. Если путь
начинается не на имя диска и не на \\ то
он за начало пути считается каталог
\NetView\Scripts.
function RemoveDirectory(s:string):
integer;
Удаляет директорию с путем s.
Возвращает 0 если не произошло ошибки
иначе возвращает код ошибки. Если путь
начинается не на имя диска и не на \\ то
он за начало пути считается каталог
\NetView\Scripts.
function DeleteFile(s:string):
integer;
Удаляет файл с путем\именем s.
Возвращает 0 если не произошло ошибки
иначе возвращает код ошибки. Если путь
начинается не на имя диска и не на \\ то
он за начало пути считается каталог
\NetView\Scripts.
function Exec(f:string;s:string;i:integer): Longint;
Запускает приложение\документ
f: путь\имя приложения или документа для
запуска
s: строка параметров, для документов
обязательно пустая
Флаги в i:
Код Windows |
Значение |
Что означает |
SW_HIDE |
0 |
запустить спрятанным
|
SW_SHOWNORMAL |
1 |
запустить нормально
|
SW_SHOWMINIMIZED |
2 |
запустить минимизированным
|
SW_SHOWMAXIMIZED |
3 |
запустить максимизированным
|
SW_SHOWNOACTIVATE |
4 |
не активировать
|
SW_SHOW |
5 |
запустить показав окно
|
SW_MINIMIZE |
6 |
запустить минимизированным
|
SW_SHOWMINNOACTIVE |
7 |
запустить минимизированным не активируя
|
SW_SHOWNA |
8 |
запустить не активным
|
SW_RESTORE |
9 |
запустить не развернутым и не свернутым
|
SW_SHOWDEFAULT |
10 |
запустить так как был запущен NetView
|
Битовый флаг |
128 |
ожидать
пока приложение завершит выполнение,
вернуть код завершения
|
function GetFileSize(f:Longint;var sizeh:Longint):
Longint;
Возвращает размер файла. В sizeh
записывается старшие 32 бита размера
function CloseFile(f:Longint): Longint;
закрывает файл
function OpenFile(s:string; mode:Longint): Longint;
открывает файл в каталоге SCRIPTS.
Если путь
S начинается
не на имя диска и не на \\ то он за начало пути
считается каталог \NetView\Scripts.
Возвращает идентификатор файла или 0
Флаги могут принимать комбинацию
следующих значений:
1: открытие файла для чтения
2: открытие файла для записи
4: файл будет создан если не существует
8: файл будет перезаписан
function ReadFile(f:Longint;n:Longint;var s:String):
Longint;
Читает строку длиной n из файла.
Возвращает количество прочитанных
симолов
function SetFilePointer(f:Longint;pl:Longint;ph:Longint;mode:Longint):
Longint;
Устанавливает указатель файла. pl,
ph - нижний и старший 32bits смещения. mode:
0 :с начала файла
1 :с текущей позиции
2 :от конца файла
function WriteFile(f:Longint;s:String): Longint;
Пишет в файл строку. Возвращает
количество записанных символов
procedure WriteIni(section:string;varname:string;vardata:string);
Записывает
произвольную строку в ini файл настроек NetView.
Затем эту настройку можно прочитать с
помощью ReadIni
section -имя секции куда записать
строку
varname -название
ключа
vardata -строка-значение ключа
function ReadIni(section:string;varname:string;defaultdata:string):string;
Читает строковое значение ключа ini файла
настроек NetView.
section -имя секции где находится строка
varname -название ключа
defaultdata -строка-значение ключа по умолчанию
(если ключ отсутствует в ini файле)
Возвращает значение ключа или defaultdata
если ключа нету
Управление NetView
function Action(wparam:integer;lparam:integer):integer;
- Многофункциональная процедура. Коды
действий в wparam:
- NVACTION_RECHECK - перепроверить хост или
хосты из списка. Если (wparam and NVACTION_LIST)<>0
то перепроверять список. В lparam -идентификатор
списка или 0.(wparam and NVACTION_LIST) - то
перепроверять хост. Функция
возвращается сразу, не ожидая
окончания проверки.
- NVACTION_RETRACE -перетрассирует хост или
список аналогично NVACTION_RECHECK
- NVACTION_OPEN - открывает хост с
идентификатором в lparam
- NVACTION_EDIT - открывает окно
редактирования хоста с
идентификатором в lparam. Возвращает 0
если редактирование отменено.
- NVACTION_IMGEXPORT - инициирует экспорт
визуальной карты с идентификатором
списка в lparam
- NVACTION_SETSTATE - выполняет обновление
состояния хоста в списке согласно всем
метапеременным. Быстрее чем метод SETHOST
класса TNVHOST т.к. не инициирует процедуру
перепроверки и не перезаписывает
внутренние структуры. В lparam надо
засунуть идентификатор хоста.
procedure SaveHostlist(fname:string);
- Сохраняет текущий хостлист в файл
- fname -путь\имя файла куда сохранить
хостлист
procedure LoadHostlist(fname:string);
- Загружает данные из файла в хостлист
- fname -путь\имя файла для загрузки
function GetShareList(host:string):string;
- Получает список расшаренных по NETBIOS
ресурсов с хоста
- host -имя или адрес хоста
- Возвращает строку - список ресурсов
разделенных символом chr(13). В случае
ошибки возвращает строку из одного
символа chr(1)
Объекты интерфейса с NetView
type TNVHOST=class
(TOBJECT)
private
ID,NEXTID:integer;
COLOR:integer;
hname,hip:string;
public
procedure GETBYTEXT(txt:string;flags:integer);
procedure GETHOST(xid:integer;flags:integer);
procedure SETHOST;
procedure DELHOST;
function GETMETAVAR(varname:string):string;
procedure SETMETAVAR(varname:string;vardata:string);
published
constructor CREATE;
desructor FREE;
end;
- ID -идентификатор хоста. Вручную
менять не надо.
- NEXTID - идентификатор следующего в
списке хоста. Используется дл
прохождения всего списка
- COLOR -цвет хоста в списке. Менять можно,
но бестолку. Нетвью сам им управляет
- hname - имя хоста
- hip -IP адрес хоста
- GETBYTEXT(txt:string;flags:integer);
- txt -имя или IP адрес по которому надо
получить ID и прочую инфу.
- flags:
- 0 -ищет хост в списке, если не находит
устанавливает ID в 0 и возвращается
- NVOBJ_FORCENEW -ищет хост в списке, если не
находит пытается определить его имя
или txt - IP или наоборот. Если не
получается - устанавливает ID в 0 и
возвращается.
- NVOBJ_FORCENEW or NVOBJ_HOSTNOIP - ищет хост в
списке если не находит - добавляет
считая что txt - это имя, а IP оставляет
пустым
- GETHOST(xid:integer;flags:integer);
- Получает данные хоста с
идентификатором xid. Если xid=0 то работает
в зависимости от flags:
- 0 - получает первый хост в списке.
- NVOBJ_SELECTED - получает первый
выделенный хост в списке
- SETHOST - Вносит все изменения в хост.
Пока не вызвать SETHOST при изменении полей
TNVHOST объекта реально хост не меняется.
- DELHOST - удалить хост из списка
- GETMETAVAR(varname:string):string;
- Возвращает значение метапеременной с
именем varname
- SETMETAVAR(varname:string;vardata:string)
- Присваивает метапеременной с именем
varname значение vardata.
- Список основных
метапеременных можно найти здесь
type
TNVMENUITEM=class (TOBJECT)
private
public
ID,PARENTID:integer;
FLAGS:integer;
MSG:integer;
TXT:string;
procedure REFRESH;
procedure DELETE;
procedure
SPLIT;
published
constructor create;
destructor free;
end;
- ID -идентификатор менюшки.
- PARENTID -идентификатор родительской
менюшки (для иерархических меню)
- FLAGS - флаги
- NVMENUFLAG_MAIN - менюшка будет создана в
подменю Plug-ins
- NVMENUFLAG_CONTEXT - менюшка будет создана
в контекстном меню хоста
- NVMENUFLAG_TRAY - менюшка будет в
контекстном треевском меню нетвью
- NVMENUFLAG_DISABLED - менюшка будет
недоступная
- NVMENUFLAG_CHECKED - слева менюшка будет
чекбокс означающий что она включена
- NVMENUFLAG_SORTED - менюшка может быть
отстортирована при вызове метода SORT
родительской менюшки (только для
дочерних менюшек - parentid<>0)
- MSG -код сообщения которое будет
приходить плагину при клике на менюшку.
Использовать значения от $850 до $A00
- TXT -текст менюшки
- REFRESH -добавляет или обновляет
менюшку. Для созданию меню необходимо
вручную установить все ее поля, ID
установить в 0 и вызвать REFRESH. Затем не
меняя ID можно менять менюшку путем
вызова REFRESH
- DELETE -удаляет менюшку из списка
менюшек и устанавливает ее ID в 0
- SPLIT -разбивает все дочерние
подменюшки данной менюшки так чтобы они
поместились на экране. Актуально когда
их много (больше 20 штук
type TNVLIST=class (TOBJECT)
private
ID,NEXTID:integer;
lname,ltheme:string;
public
procedure GETBYTEXT(txt:string;flags:integer);
procedure GETLIST(xid:integer;flags:integer);
procedure SETLIST;
procedure DELLIST;
published
constructor CREATE;
end;
type TNVLINE=class (TOBJECT)
private
INDEX,COUNT:integer;
nodes,color,flags,width:integer;
ltype,llength,lspeed,lnote,lmap:string;
x,y:array[1..32]of integer;
public
procedure GETLINE(xindex:integer);
procedure SETLINE;
procedure DELLINE;
published
constructor CREATE;
end;
С последними двумя разберетесь по
аналогии с TNVHOST ;). Советую глянуть хелп по
плагинам NetView для ознакомления с тем откуда
это все взялось и как работает.
|