多重起動防止のための処理追加
This commit is contained in:
parent
b5285c0f21
commit
8e8c052b0c
1 changed files with 35 additions and 14 deletions
|
@ -39,6 +39,14 @@ elif os.path.isfile(client_config_path):
|
|||
client_config = json.load(r)
|
||||
|
||||
def init(**kwargs):
|
||||
sp_startupinfo = subprocess.STARTUPINFO()
|
||||
sp_startupinfo.dwFlags = subprocess.STARTF_USESHOWWINDOW
|
||||
sp_startupinfo.wShowWindow = subprocess.SW_HIDE
|
||||
task_exist = subprocess.run('tasklist /fi "IMAGENAME eq dislocker_client.exe"', startupinfo=sp_startupinfo, stdout=subprocess.PIPE, text=True)
|
||||
if 'dislocker_client.exe' in task_exist.stdout == True:
|
||||
return 1
|
||||
else:
|
||||
if client_config["initial"] == 1:
|
||||
master_password = master_password_gen()
|
||||
msgbox = tkinter.messagebox.showinfo(title=f"{app_name} | 初回起動を検出", message=f"初回起動のようです。\nマスターパスワードを記録しておいてください。\nこれ以降二度と表示されることはないでしょう。\n\n{master_password["password"]}\n\nまた、認証先サーバーの接続先を指定してください。ロックを解除できなくなります。")
|
||||
client_config["master_password_hash"] = master_password["password_hash"]
|
||||
|
@ -49,6 +57,10 @@ def init(**kwargs):
|
|||
client_config["pc_number"] = 1
|
||||
with open(client_config_path, "w") as w:
|
||||
json.dump(client_config, w, indent=4)
|
||||
return 0
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
class App(customtkinter.CTk):
|
||||
|
@ -371,15 +383,24 @@ if __name__ == '__main__':
|
|||
args = sys.argv
|
||||
if len(args) >= 2:
|
||||
if args[1] == "stop":
|
||||
init_result = init()
|
||||
if init_result == 1:
|
||||
warning_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | 多重起動エラー", message=f"もう終了処理を行っています。\nPCがシャットダウンするまで、もう少しお待ちください。")
|
||||
else:
|
||||
monitor = Monitor()
|
||||
monitor.signal_handler()
|
||||
elif args[1] == "setup":
|
||||
init(pc_number=args[2])
|
||||
init_result = init(pc_number=args[2])
|
||||
if init_result == 1:
|
||||
warning_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | 多重起動エラー", message=f"すでに {app_name} は実行されています。\n正常に起動しない場合は、既に起動しているプロセスを終了してから、もう一度起動してみてください。")
|
||||
else:
|
||||
pass
|
||||
else:
|
||||
print("引数エラー。")
|
||||
else:
|
||||
if client_config["initial"] == 1:
|
||||
init()
|
||||
init_result = init()
|
||||
if init_result == 1:
|
||||
warning_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | 多重起動エラー", message=f"すでに {app_name} は実行されています。\n正常に起動しない場合は、既に起動しているプロセスを終了してから、もう一度起動してみてください。")
|
||||
else:
|
||||
app = App()
|
||||
app.protocol("WM_DELETE_WINDOW", app.handler_close)
|
||||
|
|
Loading…
Reference in a new issue