我正在自己編寫一個GUI實用程序,用於在CMD窗口中在文件夾之間導航,而不是DOS舊版Norton Change Directory實用程序的樣式。在CMD窗口中使用編寫Delphi GUI實用程序
運行時,應用程序彈出一個文件夾樹,以允許用戶選擇一個文件夾, 導航到該文件夾,然後關閉並返回到CMD提示符。目前, 的工作方式是它作爲「主」批處理文件中的第一個命令運行。它在AppData下我的應用程序文件夾中寫入第二批 文件,其中包含將驅動器和 目錄更改爲用戶所選文件夾的命令,然後主批處理文件使用CALL調用此第二批處理文件 。
它工作正常,但實際上改變的是CMD窗口的當前目錄 這種方式給我的印象不雅無論從需要從一個批處理文件 運行的點(使用戶的選擇可以被作用在我的應用程序關閉後)以及 需要輔助批處理文件來執行實際導航。
所以,我的問題是,我的應用程序如何將指令發送到CMD 的實例,該實例擁有運行應用程序的窗口到用戶選擇的文件夾?我試着做的ShellExecute的 「CMD/K ......」但儘管這確實導航到 選擇的文件夾,它在一個新的CMD窗口這樣做,不是一個我的應用程序在運行。該 概念差距我是如何得到目前的CMD到我的應用程序已終止後,我的應用程序的說明 行事。
Fwiw,我想將用戶的文件夾選擇寫入CMD窗口環境中的CMD處理器的環境變量中,以便從那裏開始執行 ,但這似乎要求通過「Run作爲管理員「,我絕對不想要。因爲他們是獨立的過程
我不明白你的意思是「在我的應用程序終止後,如何讓當前的CMD在我的應用程序的指示**上執行。它應該如何行動? – fantaghirocco
當你的應用程序關閉時,爲什麼不直接輸出到cmd'WriteLn(Format('cd'%s'',[the_selected_directory]))'? ' – fantaghirocco
好吧,如果我嘗試在我的應用程序中更改當前目錄,則在我的應用程序終止後,它似乎對CMD窗口的當前目錄沒有任何影響 - 就好像CMD窗口中的「當前目錄」恢復到我的應用運行之前的狀態。所以在我看來,我需要獲得CMD實例,它是「託管」窗口,以改變目錄 – MartynA