簡體   English   中英

如何在 SaveFileDialog 中模擬按下保存/輸入

[英]How to simulate pressing save/enter in SaveFileDialog

我正在創建一個應用程序來自動化一些流程。 其中之一是從 dotx 模板創建 docx 文件。

步驟非常簡單:應用程序打開帶有 test.dotx 文件的 MS Word 並將其另存為 c:\temp 作為 test.docx。 它應該盡可能接近用戶的操作。 當文件打開時(從 dotx 所以它已經是 docx),我只需要打開 SaveAs 對話框並按下“save”(或者只是“enter”,因為焦點設置在“save”按鈕上)。

問題是如何“點擊”保存/輸入。 我嘗試了 SendKeys,但我在 ShowDialog() 中,它正在等待結果,目前無法執行 SendKeys。 當然,如果我從鍵盤按回車鍵或單擊“保存”,一切正常,但我想從代碼中完成這一“按”。 你能指點我如何解決這個問題(如果可能的話)? 謝謝你。

這是我正在努力的代碼的一部分:

        SaveFileDialog saveFileDialog1 = new SaveFileDialog
        {
            InitialDirectory = @"C:\Temp\",
            DefaultExt = "docx",
            FileName = "test"
        };

        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            object FileName = saveFileDialog1.FileName;
            doc.SaveAs(ref FileName);
        }

如果點擊保存/輸入是您的要求,建議使用Spy++ (此工具可由 Visual Studio 安裝程序安裝)來捕獲:“帶有保存按鈕的對話框”和“保存按鈕”別名/類; 然后,使用 C# PInvoke 編程(例如,使用FindWindowFindWindowEx )發送/發布消息以模擬此“保存”按鈕。

暫無
暫無

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

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