Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

管理者としてコマンドプロンプトを開くメニュー項目を追加 #618

Merged

Conversation

m-tmatma
Copy link
Member

#608: 管理者としてコマンドプロンプトを開くメニュー項目を追加
#603 の続き

@m-tmatma m-tmatma added the enhancement ■機能追加 label Nov 16, 2018
@m-tmatma m-tmatma added this to the next release milestone Nov 16, 2018
@m-tmatma
Copy link
Member Author

気になる点としては
64bit OS で 32bit 版のサクラエディタで実行すると 32bit版のコマンドプロンプトが
管理者権限で起動されることです。

@k-takata
Copy link
Member

試してませんが、それは管理者権限じゃない方も同じではないでしょうか?
C:\Windows\Sysnative\cmd.exe を使えば、64bit版を起動できるはずです。

@m-tmatma
Copy link
Member Author

管理者じゃない方は、64bit 版が起動していると思います。
ウィンドウタイトルで判断しました。

@k-takata
Copy link
Member

echo %PROCESSOR_ARCHITECTURE%AMD64 になっていますか?

@m-tmatma
Copy link
Member Author

echo %PROCESSOR_ARCHITECTURE%AMD64 になっていますか?

通常のコマンドプロンプトではなっていますが、
管理者権限のコマンドプロンプトは x86 になっています。

@m-tmatma
Copy link
Member Author

C:\Windows\Sysnative\cmd.exe を使えば、64bit版を起動できるはずです。

open だと成功しますが、runas だと FILE_NOT_FOUND になりました。

@m-tmatma
Copy link
Member Author

美しくないけど、以下のようにしたら 64bit のコマンドプロンプトが管理者権限で起動されました。

PVOID OldValue = NULL;
Wow64DisableWow64FsRedirection(&OldValue);
auto hInstance = ::ShellExecuteW(NULL, pVerb, szCmdExePathBuf, pszcmdExeParam, strFolder.c_str(), SW_SHOWNORMAL);
Wow64RevertWow64FsRedirection(OldValue);

@m-tmatma
Copy link
Member Author

↑ 以下サイトに載ってた。
https://autohotkey.com/boards/viewtopic.php?t=31269

@berryzplus
Copy link
Contributor

#618 (comment)

これ、RAIIクラスで独自実装できませんかね?
設定戻し忘れのリスクを軽減できる気がします。

64bit 版が起動するように一時的に File system redirection を無効にする
@m-tmatma
Copy link
Member Author

美しくないけど、以下のようにしたら 64bit のコマンドプロンプトが管理者権限で起動されました。

これ、RAIIクラスで独自実装できませんかね?

実装しました。動いているようです。

sakura_core/util/os.cpp Outdated Show resolved Hide resolved
sakura_core/util/os.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

「RAIIクラスを実装して欲しい」に対する実装ありがとうございます。

うまくいかなさそうなとこにコメント入れましたので対応をお願いしたいです。

@m-tmatma
Copy link
Member Author

修正しました。

Copy link
Contributor

@beru beru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

右クリックのメニュー項目が増えていっているので人によっては使わない項目が表示されていて、「使いづらいな、でもカスタマイズが面倒だな」と思うかもしれないと思いました。ただデフォルトで入っていないと「何で入っていないんだ!」と怒る人がいるかもしれないので対応が難しそうですね。。

管理者として実行というのはコマンドプロンプトに限らないかもしれないと思いました。メニュー項目に任意のプログラムを場合によっては管理者として実行できると汎用的で良いですね。例えは Git Bash とか、PowerShell とか。

berryzplus
berryzplus previously approved these changes Nov 17, 2018
Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

対応ありがとうございます。

追加2点コメント入れましたが、入れてしまってよい状態になったと思います。

sakura_core/util/os.cpp Outdated Show resolved Hide resolved
sakura_core/util/os.h Show resolved Hide resolved
Copy link
Contributor

@beru beru left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

動作確認しました。問題無く動いていると思います。
UACプロンプトが出た後に はい を選択したら管理者のコマンドプロンプトが出ました。
ディレクトリも文書の場所になっています。

Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Clear(OKの語源)というやつで。

@m-tmatma m-tmatma merged commit 08957b1 into sakura-editor:master Nov 17, 2018
@m-tmatma m-tmatma deleted the feature/open-command-prompt-as-admin branch November 17, 2018 10:03
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
…nd-prompt-as-admin

管理者としてコマンドプロンプトを開くメニュー項目を追加
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ■機能追加
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants