- 1
- 2
- 3
- 4
- 5
- 6
import ctypes, sys
if ctypes.windll.shell32.IsUserAnAdmin():
if __name__ == "__main__":
main()
else:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
import ctypes, sys
if ctypes.windll.shell32.IsUserAnAdmin():
if __name__ == "__main__":
main()
else:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
Ав тозапуск с пра вами адми нис тра тора
Для авто запус ка мы будем исполь зовать сле дующий код:
Те перь при попыт ке запус тить скрипт вызов будет передан на UAC (если акти‐
вен) и откро ется новое окно тер минала, где наш код выпол нится от име ни
адми нис тра тора.
Ес ли такой вари ант не устра ивает, то всег да мож но вос поль зовать ся
готовы ми решени ями.
--------------
Ксакеп. if __name__ == "__main__" не там стоит, автор не понял что это такое.
Ну хоть в правильном порядке расставил.
Зато если эту херню зацепить как модуль, то права тоже повысятся.
Правда запустит оно не тот скрипт.
Я бы е щё у да лял сло ва DROP, ALTER, UPDATE, REPLACE, INSERT, а так же точ ку с за пя той и а пос троф.
Я безумный петух. sys.executable уже содержит готовый путь к интерпретатору.
Постскрипт, сгенерированный некоторыми текстовыми процессорами, содержит массив кусков текста с координатами привязки левого нижнего угла, чтобы можно было точно управлять кернингом и шириной пробелов. На «JSON» (просто для наглядности) это выглядело бы примерно так:
Понять, что «автозапуск» пишется слитно, а «с» от него отделено пробелами, можно только померив координаты x и сравнив шаг сетки с суммой ширин букв текущего шрифта. Заметив, что между «пуск» и «с» необычно большой интервал, поймём, что между ними должен быть пробел.
Ещё не факт, что эти буквы вообще имеют отношение друг к другу... Вдруг это сноска какая-нибудь внизу листа. Или так сильно прыгать нельзя?
Давно не ковырял эти форматы, придётся уточнять. Можно посмотреть исходники «XPDF» (в комплекте есть программа pdftotext). Вот именно там, если ничего не путаю, я и увидел попытку смоделировать сетку текста: сначала эти фрагменты текста сортируются по координатам, потом квантуется вертикальная координата, чтобы разбить текст на строки (у надстрочных и подстрочных индексов получаются дробные координаты), потом исследуется горизонтальная координата в пределах каждой строки, чтобы выделить слова.
В общем, нужна сегментация текста, почти как в OCR.
А если серьёзно, «.cc» –— это просто одно из расширений имени файла для «C++» наряду с «.cpp», «.c++», «.cxx», «.C» (да, в некоторых unix-подобных системах заглавная буква «C» означает «C++», а строчная означает сишку, из-за чего случается какой багор при попытке передать такие файлы на носителе с «FAT» или с ещё какой-нибудь регистронезависимой файловой системой).
Именно поэтому я против файловых систем. В S" Forth" файлы не обязательны, можно хранить данные на диске в пронумерованных 1-кидобайтных блоках, гдк нет никаких имен и расгирений. Именно поэтрму я за S" Forth".
На слух искали свободное место и включали запись?
К слову, у MS есть программа Publisher (в некоторые версии MS Office её включали, а в некоторых нужно ставить отдельно). Так вот Publisher –— противоположность Ворда в том смысле, что ему важны координаты фрагментов текста (как и PDF).
А почему возникли ассоциации с GDIP?