Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2016 17:10:32

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Понадобилось мне с помощью питона 3 создавать, а лучше просто редактировать ярлыки. Допустим, есть у меня игра World of Warcraft. Моя задача создать ярлык этой игры. Гугл молчит, выдаёт всякую хрень, хотя я нашел 1 способ, но он для ветки 2.4+

Выкладывайте, если кто что знает, буду весьма благодарен

Офлайн

#2 Июль 13, 2016 18:05:07

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Как то гугл молчит? Вторая ссылка ведет сюда



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 13, 2016 18:13:57

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Это тот самый pywin32, который я не смог поставить на 3 питон.

Офлайн

#4 Июль 13, 2016 18:31:07

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Нашел там же:

import ctypes
kdll = ctypes.windll.LoadLibrary("kernel32.dll")
kdll.CreateSymbolicLinkA("d:\\test.txt", "d:\\test_link.txt", 0)
Пытаюсь разобраться. Линк вроде делается, но кривой почему то.

Офлайн

#5 Июль 13, 2016 19:44:09

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Там симлинк файловой системы, а не lnk.
Посмотрите на это:
http://winshell.readthedocs.io/en/latest/shortcuts.html
https://pypi.python.org/pypi?%3Aaction=search&term=windows+shell&submit=search

Офлайн

#6 Июль 13, 2016 20:09:36

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

После установки winshell он требует модуль win32con, который в своё время находится в pywin32, который как было выше написано, на 3 питон не ставится. Вот же веселуха

Офлайн

#7 Июль 13, 2016 20:23:13

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Проблема с pywin32 решилась, почему устанавливаться через pip и whl он не хочет я беспонятия. Пришлось качать exe файл и устанавливать вручную - отсюдова. Теперь думаю разберусь.

Офлайн

#8 Июль 14, 2016 09:46:21

Apxumekmop
Зарегистрирован: 2016-03-30
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Ну что же, проблема решена. Если кому интересно решение:
Использовалась библиотека pywin23 - взять можно тут, если вдруг не получается установить через pip или whl.
Сам пример создания ярлыка:

import os, winshell
from win32com.client import Dispatch
# Получаем путь до рабочего стола.
desktop = winshell.desktop()
# Соединяем пути, с учётом разных операционок.
path = os.path.join(desktop, "Fox.lnk")
# Задаём путь к файлу, к которому делаем ярлык.
target = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
# Назначаем путь к рабочей папке.
wDir = r"C:\Program Files (x86)\Mozilla Firefox"
# Путь к нужной нам иконке.
icon = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
# С помощью метода Dispatch, обьявляем работу с Wscript (работа с ярлыками, реестром и прочей системной информацией в windows)
shell = Dispatch('WScript.Shell')
# Создаём ярлык.
shortcut = shell.CreateShortCut(path)
# Путь к файлу, к которому делаем ярлык.
shortcut.Targetpath = target
# Путь к рабочей папке.
shortcut.WorkingDirectory = wDir
# Тырим иконку.
shortcut.IconLocation = icon
# Обязательное действо, сохраняем ярлык.
shortcut.save()

Офлайн

#9 Авг. 31, 2020 11:01:54

foton-pc
Зарегистрирован: 2020-08-31
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как посредством python создать ярлык? (.lnk)

Есть модуль easy_shorcuhttps://python.su/forum/topic/30402/?page=1t

import easy_shortcut as es # pip install easy_shortcut
es.shortcut(r“C:\Users\User\Video\my.lnk”,r“C:\Users\User\Desktop\my.exe”,r“C:\Users\User\Desktop”,r“C:\Users\User\Images\Icon.ico”)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version