pylnk3


Namepylnk3 JSON
Version 0.4.2 PyPI version JSON
download
home_pagehttps://github.com/strayge/pylnk
SummaryWindows LNK File Parser and Creator
upload_time2020-11-18 07:13:56
maintainer
docs_urlNone
authorstrayge
requires_python>=3.6
licenseGNU Library or Lesser General Public License (LGPL)
keywords lnk shortcut windows
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyLnk 3

[![PyPI version shields.io](https://img.shields.io/pypi/v/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)
[![PyPI download month](https://img.shields.io/pypi/dm/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)

Python library for reading and writing Windows shortcut files (.lnk).  
Converted to support python 3.

This library can parse .lnk files and extract all relevant information from
them. Parsing a .lnk file yields a LNK object which can be altered and saved
again. Moreover, .lnk file can be created from scratch be creating a LNK
object, populating it with data and then saving it to a file. As that
process requires some knowledge about the internals of .lnk files, some
convenience functions are provided.

Limitation: Windows knows lots of different types of shortcuts which all have
different formats. This library currently only supports shortcuts to files and
folders on the local machine. 

## CLI

Mainly tool has two basic commands.

#### Parse existed lnk file

```sh
pylnk3 parse [-h] filename [props [props ...]]

positional arguments:
  filename    lnk filename to read
  props       props path to read

optional arguments:
  -h, --help  show this help message and exit
```

#### Create new lnk file

```sh
usage: pylnk3 create [-h] [--arguments [ARGUMENTS]] [--description [DESCRIPTION]] [--icon [ICON]]
                     [--icon-index [ICON_INDEX]] [--workdir [WORKDIR]] [--mode [{Maximized,Normal,Minimized}]]
                     target name

positional arguments:
  target                target path
  name                  lnk filename to create

optional arguments:
  -h, --help            show this help message and exit
  --arguments [ARGUMENTS], -a [ARGUMENTS]
                        additional arguments
  --description [DESCRIPTION], -d [DESCRIPTION]
                        description
  --icon [ICON], -i [ICON]
                        icon filename
  --icon-index [ICON_INDEX], -ii [ICON_INDEX]
                        icon index
  --workdir [WORKDIR], -w [WORKDIR]
                        working directory
  --mode [{Maximized,Normal,Minimized}], -m [{Maximized,Normal,Minimized}]
                        window mode
```

#### Examples
```sh
pylnk3 p filename.lnk
pylnk3 c c:\prog.exe shortcut.lnk
pylnk3 c \\192.168.1.1\share\file.doc doc.lnk
pylnk3 create c:\1.txt text.lnk -m Minimized -d "Description"
```

## Changes

**0.4.2**  
changed logic for Lnk.path choose (in case of different paths presents at different structures)  
read links with root as GUID of KNOWN_FOLDER  
[FIX] disabled padding for writing LinkInfo.local_base_path  

**0.4.0**  
added support for network links  
reworked CLI (added more options for creating links)  
added entry point for call tool just like `pylnk3`  
[FIX] allow build links for non-existed (from this machine) paths  
[FIX] correct building links on Linux (now expect Windows-like path)  
[FIX] fixed path priority at parsing with both local & remote presents  


**0.3.0**  
added support links to UWP apps  


**0.2.1**  
released to PyPI


**0.2.0**  
converted to python 3  



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/strayge/pylnk",
    "name": "pylnk3",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "lnk,shortcut,windows",
    "author": "strayge",
    "author_email": "strayge@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d3/ad/a55396c33f1dbf3593708ad97401e4ae01a617e85fe0a5ced46871db6ee9/pylnk3-0.4.2.tar.gz",
    "platform": "",
    "description": "# PyLnk 3\n\n[![PyPI version shields.io](https://img.shields.io/pypi/v/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)\n[![PyPI download month](https://img.shields.io/pypi/dm/pylnk3.svg)](https://pypi.python.org/pypi/pylnk3/)\n\nPython library for reading and writing Windows shortcut files (.lnk).  \nConverted to support python 3.\n\nThis library can parse .lnk files and extract all relevant information from\nthem. Parsing a .lnk file yields a LNK object which can be altered and saved\nagain. Moreover, .lnk file can be created from scratch be creating a LNK\nobject, populating it with data and then saving it to a file. As that\nprocess requires some knowledge about the internals of .lnk files, some\nconvenience functions are provided.\n\nLimitation: Windows knows lots of different types of shortcuts which all have\ndifferent formats. This library currently only supports shortcuts to files and\nfolders on the local machine. \n\n## CLI\n\nMainly tool has two basic commands.\n\n#### Parse existed lnk file\n\n```sh\npylnk3 parse [-h] filename [props [props ...]]\n\npositional arguments:\n  filename    lnk filename to read\n  props       props path to read\n\noptional arguments:\n  -h, --help  show this help message and exit\n```\n\n#### Create new lnk file\n\n```sh\nusage: pylnk3 create [-h] [--arguments [ARGUMENTS]] [--description [DESCRIPTION]] [--icon [ICON]]\n                     [--icon-index [ICON_INDEX]] [--workdir [WORKDIR]] [--mode [{Maximized,Normal,Minimized}]]\n                     target name\n\npositional arguments:\n  target                target path\n  name                  lnk filename to create\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --arguments [ARGUMENTS], -a [ARGUMENTS]\n                        additional arguments\n  --description [DESCRIPTION], -d [DESCRIPTION]\n                        description\n  --icon [ICON], -i [ICON]\n                        icon filename\n  --icon-index [ICON_INDEX], -ii [ICON_INDEX]\n                        icon index\n  --workdir [WORKDIR], -w [WORKDIR]\n                        working directory\n  --mode [{Maximized,Normal,Minimized}], -m [{Maximized,Normal,Minimized}]\n                        window mode\n```\n\n#### Examples\n```sh\npylnk3 p filename.lnk\npylnk3 c c:\\prog.exe shortcut.lnk\npylnk3 c \\\\192.168.1.1\\share\\file.doc doc.lnk\npylnk3 create c:\\1.txt text.lnk -m Minimized -d \"Description\"\n```\n\n## Changes\n\n**0.4.2**  \nchanged logic for Lnk.path choose (in case of different paths presents at different structures)  \nread links with root as GUID of KNOWN_FOLDER  \n[FIX] disabled padding for writing LinkInfo.local_base_path  \n\n**0.4.0**  \nadded support for network links  \nreworked CLI (added more options for creating links)  \nadded entry point for call tool just like `pylnk3`  \n[FIX] allow build links for non-existed (from this machine) paths  \n[FIX] correct building links on Linux (now expect Windows-like path)  \n[FIX] fixed path priority at parsing with both local & remote presents  \n\n\n**0.3.0**  \nadded support links to UWP apps  \n\n\n**0.2.1**  \nreleased to PyPI\n\n\n**0.2.0**  \nconverted to python 3  \n\n\n",
    "bugtrack_url": null,
    "license": "GNU Library or Lesser General Public License (LGPL)",
    "summary": "Windows LNK File Parser and Creator",
    "version": "0.4.2",
    "split_keywords": [
        "lnk",
        "shortcut",
        "windows"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "127ad6628329152341000bbeecb61d8b",
                "sha256": "f75c80d85b2063f3549bfc4a00228474b90fa590de9f414f8df075b746b1b427"
            },
            "downloads": -1,
            "filename": "pylnk3-0.4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "127ad6628329152341000bbeecb61d8b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 21828,
            "upload_time": "2020-11-18T07:13:55",
            "upload_time_iso_8601": "2020-11-18T07:13:55.314609Z",
            "url": "https://files.pythonhosted.org/packages/4c/28/e3135bf6e3a5580330792eb398c77489f7a6fa1f750add71b4a455d3bc07/pylnk3-0.4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "480f24893704b40d5b15bcd6bf63af22",
                "sha256": "caee0136f61a8b788154dc8e7c03ac2dde57adc170f1c4786ab4721491ca6e99"
            },
            "downloads": -1,
            "filename": "pylnk3-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "480f24893704b40d5b15bcd6bf63af22",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 19350,
            "upload_time": "2020-11-18T07:13:56",
            "upload_time_iso_8601": "2020-11-18T07:13:56.359080Z",
            "url": "https://files.pythonhosted.org/packages/d3/ad/a55396c33f1dbf3593708ad97401e4ae01a617e85fe0a5ced46871db6ee9/pylnk3-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2020-11-18 07:13:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "strayge",
    "github_project": "pylnk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pylnk3"
}
        
Elapsed time: 0.01714s