Модуль в настоящее время предназначен для локальной компиляции, также предоставляется скомпилированный файл (можно использовать без среды компиляции).
npm install easywin
//or
yarn add easywin
//Пример использования QQ дескриптора
let {winuser}=require('easywin')
let hQQ = winuser._findWindowFuzzy("QQ");
//Пример получения дерева процессов
let {process} = require('easywin')
let tree = process._processTree();
//Структура отображения
{
ExeFile: '[System Process]',
Id: 0,
children: {
'4': { ExeFile: 'System', ParentId: 0, Id: 4, children: [Object] },
'564': { ExeFile: 'csrss.exe', ParentId: 544, Id: 564 },
'648': {
ExeFile: 'wininit.exe',
ParentId: 544,
Id: 648,
children: [Object]
},
'3824': {
ExeFile: 'winlogon.exe',
ParentId: 10952,
Id: 3824,
children: [Object]
},
'6360': { ExeFile: 'csrss.exe', ParentId: 10952, Id: 6360 },
'10584': { ExeFile: 'jusched.exe', ParentId: 6764, Id: 10584 },
'10856': {
ExeFile: 'explorer.exe',
ParentId: 9148,
Id: 10856,
children: [Object]
}
}
}
*/
Методы модуля с заглавной буквы предназначены для прямого вызова, а методы с префиксом '_' представляют собой улучшенные функции.
В случае возникновения неоднозначности при вызове C++, например, при заполнении null, необходимо выполнить операцию присвоения значения 0 числовому параметру и "" строковому параметру в JS.
## Введение
Предоставляет API для работы с окнами и процессами в среде node на Windows.
>winuser включает в себя часто используемые API из User32.
>process предоставляет список процессов, дерево процессов (из-за зависимости от прав доступа к операциям с процессами), операции с процессами могут использовать командные инструменты Windows, такие как tasklist или wmic или ps.
>draw предоставляет методы, связанные с GDI. В основном для реализации spy++.
>file предоставляет методы, связанные с файлами.
## Использование в Electron
Пока недоступно.
## Обзор методов
```javascript
{
winuser: {
GetDpiForWindow
GetDpiForSystem
FindWindowA
FindWindowExA
GetClientRect
GetWindowRect
UpdateWindow
GetAncestor
ClipCursor
GetClipCursor
GetCursorInfo
ShowCursor
SetWindowLongPtrA
GetWindowLongPtrA
SetLayeredWindowAttributes
SetWindowPos
GetLayeredWindowAttributes
ShowWindow
PostMessageA
SendMessageA
GetWindowText
SetForegroundWindow
WindowFromPoint
IsWindow
GetWindowInfo
EnumWindows
GetDesktopWindow
GetLastError
GetForegroundWindow
EnumDesktopWindows
GetWindowThreadProcessId
IsWindowEnabled
IsWindowVisible
IsWindowUnicode
IsZoomed
GetClassName
GetClassLongPtrA
SetClassLongPtrA
GetWindowHicon
GetWindow
EnableWindow
EnumChildWindows
_modifyStyle//修改样式
_modifyStyleEx//修改扩展样式
_findWindowFuzzy//模糊寻找窗口
_setWindowTransparency//设置窗口透明度
_cancelWindowTransparency//取消��конной прозрачности
_getWindowTransparency//获取窗口透明度
_setWindowTopmost//помещает окно наверх
_windowFromCursorPoint//получает окно по текущей позиции курсора
_isTopMost//является ли окно верхним
_isTransparency//является ли окно прозрачным
},
file: { OpenFolderAndSelect//открывает и выбирает файл в диспетчере ресурсов
draw: {
drawBorder//рисует рамку окна
hIconSave//сохраняет дескриптор значка
hIconToBuffer//получает дескриптор значка из буфера
},
process: {
QueryFullProcessImageName
DriveToDosDevice
GetDrives
ProcessSnapshot
ProcessSnapshot_cb//обратный вызов для быстрого снимка списка процессов
EnumProcesses
GetCurrentProcessId
_filePathFromProcessId//получение пути выполнения по идентификатору процесса
_processTree//создание дерева процессов
},
util: {
buildArrTree//создает дерево массивов, см. buildObjTree ниже
buildObjTree//создает дерево объектов, используется в easywin.process._processTree
/*
buildObjTree
before [
{ name: 'a', id: 0, PId: 0 },
{ name: 'b', id: 1, PId: 0 },
{ name: 'c', id: 2, PId: 1 }
]
after {
'0': { name: 'a', id: 0, PId: 0 },
'1': { name: 'b', id: 1, PId: 0, children: { '2': [Object] } }
}
*/
}
}
Я не знаком с C/C++, и обновления функций происходят в соответствии с моими предпочтениями. Некоторые функции занимали у меня два дня.
Однако я многому научился. Все функции были протестированы, и тестовая платформа — WIN10 20H2. Часть новых API недоступна на платформах ниже WIN8.
Самый быстрый способ сообщить об ошибках — через личный кабинет Bilibili: https://space.bilibili.com/7234113.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )