多重起動防止のための処理追加
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)
|
client_config = json.load(r)
|
||||||
|
|
||||||
def init(**kwargs):
|
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()
|
master_password = master_password_gen()
|
||||||
msgbox = tkinter.messagebox.showinfo(title=f"{app_name} | 初回起動を検出", message=f"初回起動のようです。\nマスターパスワードを記録しておいてください。\nこれ以降二度と表示されることはないでしょう。\n\n{master_password["password"]}\n\nまた、認証先サーバーの接続先を指定してください。ロックを解除できなくなります。")
|
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"]
|
client_config["master_password_hash"] = master_password["password_hash"]
|
||||||
|
@ -49,6 +57,10 @@ def init(**kwargs):
|
||||||
client_config["pc_number"] = 1
|
client_config["pc_number"] = 1
|
||||||
with open(client_config_path, "w") as w:
|
with open(client_config_path, "w") as w:
|
||||||
json.dump(client_config, w, indent=4)
|
json.dump(client_config, w, indent=4)
|
||||||
|
return 0
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class App(customtkinter.CTk):
|
class App(customtkinter.CTk):
|
||||||
|
@ -371,15 +383,24 @@ if __name__ == '__main__':
|
||||||
args = sys.argv
|
args = sys.argv
|
||||||
if len(args) >= 2:
|
if len(args) >= 2:
|
||||||
if args[1] == "stop":
|
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 = Monitor()
|
||||||
monitor.signal_handler()
|
monitor.signal_handler()
|
||||||
elif args[1] == "setup":
|
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:
|
else:
|
||||||
print("引数エラー。")
|
print("引数エラー。")
|
||||||
else:
|
else:
|
||||||
if client_config["initial"] == 1:
|
init_result = init()
|
||||||
init()
|
if init_result == 1:
|
||||||
|
warning_msgbox = tkinter.messagebox.showwarning(title=f"{app_name} | 多重起動エラー", message=f"すでに {app_name} は実行されています。\n正常に起動しない場合は、既に起動しているプロセスを終了してから、もう一度起動してみてください。")
|
||||||
else:
|
else:
|
||||||
app = App()
|
app = App()
|
||||||
app.protocol("WM_DELETE_WINDOW", app.handler_close)
|
app.protocol("WM_DELETE_WINDOW", app.handler_close)
|
||||||
|
|
Loading…
Reference in a new issue