事象
過去にtkinterdnd2を利用してドラック&ドロップが利用できるアプリを作成したけど、久しぶりに起動したら禁止マークが表示されてドロップ出来なくなってた。
原因を探っても解らず、EXE化された物は実行すると問題なくドロップ出来た。
原因
色々試してみたところ原因が判明。pyファイルを起動したcmdプロンプトが管理者権限だと禁止マークがでる。
管理者じゃない場合は正常にドロップ出来る。
あ…ありのまま、今起こったことを話すぜ…
管理者権限で起動したらドロップ機能が使えなくなるんだ...
な…何を言っているのか、わからねーと思うが。おれも何をされたのか、わからなかった…
頭がどうにかなりそうだった…
ふつう逆なんじゃ無いのか。管理者権限が問題無いなら何となく解るんだが。
推察
管理者権限のプロセスと通常のユーザー権限のプロセス間でのデータ転送がセキュリティ上の理由から制限されていることが原因なのだろうと無理やり納得する。
となるとEXE化されたプログラムも管理者権限で起動するとドロップが使えないということに。
まぁ管理者権限で起動しないからどうでもいいけど。
結論
アプリを使う際は管理者権限のないcmdプロンプトで実行する。
ドラック&ドロップが使えると操作性が段違いに向上するので多様すると思われるが使用する際の注意点。
cmdプロンプトを管理者権限で起動することが多いので再度忘れた時にハマりそうなのでメモ。


コメント