{"id":13727315,"url":"https://github.com/waitingsong/node-win32-api","last_synced_at":"2025-05-14T20:10:59.747Z","repository":{"id":37412512,"uuid":"107410306","full_name":"waitingsong/node-win32-api","owner":"waitingsong","description":"win32 api","archived":false,"fork":false,"pushed_at":"2025-02-26T09:19:06.000Z","size":2749,"stargazers_count":463,"open_issues_count":11,"forks_count":57,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-11T15:38:12.542Z","etag":null,"topics":["comctl32","electron","esm","ffi","ffi-napi","kernel32","koffi","typescript","user32","win32"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waitingsong.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-18T13:14:10.000Z","updated_at":"2025-04-16T04:29:00.000Z","dependencies_parsed_at":"2024-01-06T07:58:23.377Z","dependency_job_id":"8299ce4e-6522-424a-834c-865db7dfa0a0","html_url":"https://github.com/waitingsong/node-win32-api","commit_stats":{"total_commits":1965,"total_committers":11,"mean_commits":"178.63636363636363","dds":0.05954198473282446,"last_synced_commit":"b37fbe7ee437f62f2271b73618984add8725d6f9"},"previous_names":[],"tags_count":164,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fnode-win32-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fnode-win32-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fnode-win32-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitingsong%2Fnode-win32-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waitingsong","download_url":"https://codeload.github.com/waitingsong/node-win32-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254219374,"owners_count":22034397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comctl32","electron","esm","ffi","ffi-napi","kernel32","koffi","typescript","user32","win32"],"created_at":"2024-08-03T01:03:49.432Z","updated_at":"2025-05-14T20:10:54.738Z","avatar_url":"https://github.com/waitingsong.png","language":"TypeScript","readme":"# win32-api\n\nFFI Definitions of Windows win32 api for [koffi]\n\n[![GitHub tag](https://img.shields.io/github/tag/waitingsong/node-win32-api.svg)]()\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n![](https://img.shields.io/badge/lang-TypeScript-blue.svg)\n![Available platform](https://img.shields.io/badge/platform-win32-blue.svg)\n[![ci](https://github.com/waitingsong/node-win32-api/actions/workflows/nodejs-win.yml/badge.svg\n)](https://github.com/waitingsong/node-win32-api/actions)\n[![codecov](https://codecov.io/gh/waitingsong/node-win32-api/branch/main/graph/badge.svg?token=WXbZvnAaYO)](https://codecov.io/gh/waitingsong/node-win32-api)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)\n\n\n## Significant [Changes.V22]\n\nCompile successfully with\n- Node.js v18\n- Node.js v20\n- Node.js v22\n\n## Migrate to v13\n\nSee [migrate13]\n\n\n## Packages\n\n| Package       | Version                |\n| ------------- | ---------------------- |\n| [`win32-api`] | [![main-svg]][main-ch] |\n| [`win32-def`] | [![def-svg]][def-ch]   |\n\n\n## What can I do with this?\nCalling win32 native functions come from user32.dll, kernel32.dll, comctl32.dll by Node.js via [node-ffi-napi]\n\n\n## Installing\n```sh\nnpm install win32-api\n```\n\n\n## Usage\n\n### DLL Wrapper\n \n- [User32](./src/util/user32/index.user32.ts)\n- [Winspool](./src/util/winspool/index.winspool.ts)\n\n```ts\nimport { \n  FindWindow, \n  GetDefaultPrinter,\n} from 'win32-api/util'\n\n// Retrieves the printer name of the default printer for the current user on the local computer\nconst printerName = await GetDefaultPrinter()\n\nconst child = spawn('notepad.exe')\nconst hWnd = await FindWindowEx(0, 0, 'Notepad', null)\n```\n\n\n## Demo\n- [Demos](https://github.com/waitingsong/node-win32-api/blob/main/packages/win32-api/demo)\n- [Tests](https://github.com/waitingsong/node-win32-api/blob/main/packages/win32-api/test)\n\n\n\n## Relevant\n- [Windows Api documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ff468919%28v=vs.85%29.aspx)\n- [Windows Data Types](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751#DWORD)\n- [System Error Codes](https://msdn.microsoft.com/en-us/library/windows/desktop/ms681381%28v=vs.85%29.aspx)\n- [FFI doc](https://github.com/node-ffi/node-ffi/wiki/Node-FFI-Tutorial)\n\n\n## License\n[MIT](LICENSE)\n\n\n### Languages\n- [English](README.md)\n- [中文](README.zh-CN.md)\n\n\n[node-gyp]: https://github.com/nodejs/node-gyp\n[windows-build-tools]: https://github.com/felixrieseberg/windows-build-tools\n[node-gyp-on-windows]: https://github.com/nodejs/node-gyp#on-windows\n[node-ffi-napi]: https://github.com/node-ffi-napi/node-ffi-napi\n[node-ffi]: https://github.com/node-ffi/node-ffi\n\n[`win32-api`]: https://github.com/waitingsong/node-win32-api/tree/main/packages/win32-api\n[main-svg]: https://img.shields.io/npm/v/win32-api.svg?maxAge=86400\n[main-ch]: https://github.com/waitingsong/node-win32-api/tree/main/packages/win32-api/CHANGELOG.md\n[main-d-svg]: https://david-dm.org/waitingsong/node-win32-api.svg?path=packages/win32-api\n[main-d-link]: https://david-dm.org/waitingsong/node-win32-api.svg?path=packages/win32-api\n[main-dd-svg]: https://david-dm.org/waitingsong/node-win32-api/dev-status.svg?path=packages/win32-api\n[main-dd-link]: https://david-dm.org/waitingsong/node-win32-api?path=packages/win32-api#info=devDependencies\n\n[`win32-def`]: https://github.com/waitingsong/node-win32-api/tree/main/packages/win32-def\n[def-svg]: https://img.shields.io/npm/v/win32-def.svg?maxAge=86400\n[def-ch]: https://github.com/waitingsong/node-win32-api/tree/main/packages/win32-def/CHANGELOG.md\n[def-d-svg]: https://david-dm.org/waitingsong/node-win32-api.svg?path=packages/win32-def\n[def-d-link]: https://david-dm.org/waitingsong/node-win32-api.svg?path=packages/win32-def\n[def-dd-svg]: https://david-dm.org/waitingsong/node-win32-api/dev-status.svg?path=packages/win32-def\n[def-dd-link]: https://david-dm.org/waitingsong/node-win32-api?path=packages/win32-def#info=devDependencies\n\n\n[koffi]: https://github.com/node-ffi-napi/node-ffi-napi/issues/269\n[migrate13]: ./migrate13.md\n[Changes.V22]: https://github.com/waitingsong/node-win32-api/CHANGES.v22.md\n\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitingsong%2Fnode-win32-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaitingsong%2Fnode-win32-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitingsong%2Fnode-win32-api/lists"}