Re: [問題] 請問sendkeys在指定檔案中使用

看板C_Sharp (C#)作者 (靖)時間9年前 (2015/08/27 22:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《dedicationsh (ddd)》之銘言: : 我開了一個記事本 : 我有辦法設一個click botton然後我點一下 : 他就讓個記事本多一個訊息嗎 : 一直用不出來 附上程式碼 : private void button1_Click_1(object sender, EventArgs e) : { : Process notePad = new Process(); : // FileName 是要執行的檔案 : notePad.StartInfo.FileName = @"C:\Users\JA\Desktop\test.txt"; : notePad.Start(); : } : private void button3_Click(object sender, EventArgs e) : { : SendKeys.Send("-----123\t-----\n"); : } : 我是想要我點button3就出現那段訊息 不知怎麼設定 msdn.microsoft.com/zh-tw/library/system.windows.forms.sendkeys.send.aspx MSDN與推文裡都有人說了 你需要先把目標視窗帶到前台 再發送按鍵 不過這事情需要直接呼叫Win32 API 實作上可能比較麻煩點 HandleRef wndHandle; private void button1_Click(object sender, EventArgs e) { var notePad = new Process(); notePad.StartInfo.FileName = "test.txt"; notePad.Start(); while (notePad.MainWindowHandle == default(IntPtr)) { } wndHandle = new HandleRef(notePad, notePad.MainWindowHandle); } [DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool SetForegroundWindow(HandleRef hWnd); private void button2_Click(object sender, EventArgs e) { SetForegroundWindow(wndHandle); SendKeys.Send("123"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.143.123 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1440686755.A.99F.html

08/28 14:38, , 1F
感謝大大熱心地指導^^
08/28 14:38, 1F
文章代碼(AID): #1LtoAZcV (C_Sharp)
文章代碼(AID): #1LtoAZcV (C_Sharp)