1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Guohear-easyWin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 14:24 9d223e8

easyWin

Установка и использование

Модуль в настоящее время предназначен для локальной компиляции, также предоставляется скомпилированный файл (можно использовать без среды компиляции).

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Guohear-easyWin.git
git@api.gitlife.ru:oschina-mirror/Guohear-easyWin.git
oschina-mirror
Guohear-easyWin
Guohear-easyWin
master