簡體   English   中英

git,Windows上的SSH_ASKPASS

[英]git, SSH_ASKPASS on windows

我正在為基於MSEide + MSEgui的 Linux和Windows (MSEgit)編寫圖形git前端。 MSEgit有一個內部控制台窗口,通過管道與git通信。 在Linux上,它使用PTY,因此SSH要求在PTY上輸入密鑰解鎖密碼。
在Windows上,我編寫了一個小密碼輸入應用程序,並相應地設置了SSH_ASKPASS環境變量。
如果使用CreateProcess()啟動git,則調用密碼應用程序dwCreationFlags設置了DETACHED_PROCESS,但密碼輸入窗口不會被聚焦,其任務欄圖標會閃爍。
如果調用FreeConsole()以確保沒有連接到MSEgit的控制台並且沒有DETACHED_PROCESS但是CREATE_NO_WINDOW啟動了git,則SSH不會運行密碼應用程序。
我假設應該調用Windows等效的POSIX setsid()。
如何在沒有DETACHED_PROCESS標志的情況下強制SSH使用SSH_ASKPASS?
如果無法做到這一點,我該如何確保密碼輸入窗口是重點?

在Windows上,除非得到權限,否則不允許子進程將焦點從父進程中移開。 父級應該調用AllowSetForegroundWindow來提供該權限。 然后,子進程可以成為前台並適當地設置其焦點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM