Stav 23.06.2026
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
import pythoncom
|
||||
import win32api
|
||||
from win32com.shell import shell, shellcon
|
||||
|
||||
temp_dir = win32api.GetTempPath()
|
||||
linkname = win32api.GetTempFileName(temp_dir, "cmd")[0]
|
||||
os.remove(linkname)
|
||||
linkname += ".lnk"
|
||||
print("Link name:", linkname)
|
||||
ish = pythoncom.CoCreateInstance(
|
||||
shell.CLSID_ShellLink, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink
|
||||
)
|
||||
ish.SetPath(os.environ["cOMSPEC"])
|
||||
ish.SetWorkingDirectory(os.path.split(sys.executable)[0])
|
||||
ish.SetDescription("shortcut made by python")
|
||||
|
||||
console_props = {
|
||||
"Signature": shellcon.NT_CONSOLE_PROPS_SIG,
|
||||
"InsertMode": True,
|
||||
"FullScreen": False, ## True looks like "DOS Mode" from win98!
|
||||
"FontFamily": 54,
|
||||
"CursorSize": 75, ## pct of character size
|
||||
"ScreenBufferSize": (152, 256),
|
||||
"AutoPosition": False,
|
||||
"FontSize": (4, 5),
|
||||
"FaceName": "",
|
||||
"HistoryBufferSize": 32,
|
||||
"InputBufferSize": 0,
|
||||
"QuickEdit": True,
|
||||
"Font": 0, ## 0 should always be present, use win32console.GetNumberOfConsoleFonts() to find how many available
|
||||
"FillAttribute": 7,
|
||||
"PopupFillAttribute": 245,
|
||||
"WindowSize": (128, 32),
|
||||
"WindowOrigin": (0, 0),
|
||||
"FontWeight": 400,
|
||||
"HistoryNoDup": False,
|
||||
"NumberOfHistoryBuffers": 32,
|
||||
## ColorTable copied from a 'normal' console shortcut, with some obvious changes
|
||||
## These do not appear to be documented. From experimentation, [0] is background, [7] is foreground text
|
||||
"ColorTable": (
|
||||
255,
|
||||
8388608,
|
||||
32768,
|
||||
8421376,
|
||||
128,
|
||||
8388736,
|
||||
32896,
|
||||
12582912,
|
||||
8421504,
|
||||
16711680,
|
||||
65280,
|
||||
16776960,
|
||||
255,
|
||||
16711935,
|
||||
65535,
|
||||
16777215,
|
||||
),
|
||||
}
|
||||
|
||||
ishdl = ish.QueryInterface(shell.IID_IShellLinkDataList)
|
||||
ishdl.AddDataBlock(console_props)
|
||||
ipf = ish.QueryInterface(pythoncom.IID_IPersistFile)
|
||||
ipf.Save(linkname, 1)
|
||||
os.startfile(linkname)
|
||||
Reference in New Issue
Block a user