日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
VB.NETSendKeys方法與鍵入值

VB.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB.NET SendKeys方法,包括介紹控制過(guò)程輸入輸出等方面。

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),旬陽(yáng)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:旬陽(yáng)等地區(qū)。旬陽(yáng)做網(wǎng)站價(jià)格咨詢:18980820575

有時(shí)候,你可能不僅僅想使用簡(jiǎn)單的命令行,而是想把更復(fù)雜的輸入信息直接發(fā)送到啟動(dòng)的過(guò)程中。前面例子中的把輸出導(dǎo)入到文件中的方法,并不總是最好的選擇。在許多情況下,把輸出直接導(dǎo)回你的應(yīng)用程序可能更有效。對(duì)于使用StdIn、StdOut和StdErr的程序,比如控制臺(tái)應(yīng)用程序,你可以覆蓋默認(rèn)方法,提供一個(gè)StreamWriter來(lái)輸入,并提供一個(gè)StreamReaders來(lái)讀取StdOut和StdErr輸出值。當(dāng)你啟動(dòng)過(guò)程的時(shí)候,你需要設(shè)置ProcessStartInfo對(duì)象的RedirectStandardInput、RedirectStandardOutput和 RedirectStandardError屬性為True。然后,在啟動(dòng)過(guò)程之后,使用Process對(duì)象的StandardInput、StandardOutput和StandardError屬性來(lái)把輸入輸出流分配到StreamReader和StreamWriter對(duì)象。

警告:默認(rèn)情況下,框架使用Win32 ShellExecute函數(shù),在內(nèi)部啟動(dòng)過(guò)程;但是當(dāng)你想再分配輸入輸出流的時(shí)候,你必須在啟動(dòng)過(guò)程之前設(shè)置 ProcessStartInfo.UseShellExecute屬性為False。注意當(dāng)你那么做的時(shí)候,你必須要么指定到文件的完全路徑,要么文件位置必須在環(huán)境路徑中。例如,下面的代碼創(chuàng)建一個(gè)不可見的窗口,取得系統(tǒng)目錄中.com文件的目錄列表,然后在一個(gè)消息框中顯示結(jié)果。

 
 
 
  1. Dim myProcess As Process = New Process()  
  2. Dim s As String  
  3. myProcess.StartInfo.FileName = "cmd.exe" 
  4. myProcess.StartInfo.UseShellExecute = False 
  5. myProcess.StartInfo.CreateNoWindow = True 
  6. myProcess.StartInfo.RedirectStandardInput = True 
  7. myProcess.StartInfo.RedirectStandardOutput = True 
  8. myProcess.StartInfo.RedirectStandardError = True 
  9. myProcess.Start()  
  10. Dim sIn As StreamWriter = myProcess.StandardInput  
  11. sIn.AutoFlush = True 
  12.  
  13. Dim sOut As StreamReader = myProcess.StandardOutput  
  14. Dim sErr As StreamReader = myProcess.StandardError  
  15. sIn.Write("dir c:\Windows\system32\*.com" & _  
  16. System.Environment.NewLine)  
  17. sIn.Write("exit" & System.Environment.NewLine)  
  18. s = sOut.ReadToEnd()  
  19. If Not myProcess.HasExited Then  
  20. myProcess.Kill()  
  21. End If  
  22.  
  23. MessageBox.Show("The 'dir' command window was " & _  
    closed at: " & myProcess.ExitTime & "." & _  
    System.Environment.NewLine & "Exit Code: " & _  myProcess.ExitCode)  
  24.  
  25. sIn.Close()  
  26. sOut.Close()  
  27. sErr.Close()  
  28. myProcess.Close()  
  29. MessageBox.Show(s) 

對(duì)于不使用StdIn的程序,你可以使用VB.NET SendKeys方法來(lái)輸入按鍵事件。例如,下面這些代碼啟動(dòng)記事本并輸入一些文本。

 
 
 
  1. Dim myProcess As Process = New Process()  
  2. myProcess.StartInfo.FileName = "notepad" 
  3. myProcess.StartInfo.WindowStyle = _ 
  4. ProcessWindowStyle.Normal  
  5. myProcess.EnableRaisingEvents = True 
  6. AddHandler myProcess.Exited, _  
  7. AddressOf Me.SendKeysTestExited  
  8. myProcess.Start()  
  9.  
  10. myProcess.WaitForInputIdle(1000)  
  11. If myProcess.Responding Then  
  12. System.Windows.Forms.SendKeys.SendWait( _  
  13. "This text was entered using the " & _  
  14. "System.Windows.Forms.SendKeys method.")  
  15. Else  
  16. myProcess.Kill()  
  17. End If  

你可以使用VB.NET SendKeys方法發(fā)送任何鍵入值,包括Alt、Ctrl和Shift鍵;所以,你可以使用它來(lái)保存或載入文件、退出或者執(zhí)行其他菜單驅(qū)動(dòng)的命令。然而、VB.NET SendKeys方法只發(fā)送鍵入值到活動(dòng)窗口(就是有焦點(diǎn)的那個(gè)窗口),所以如果一個(gè)應(yīng)用程序在這個(gè)過(guò)程中失去焦點(diǎn),那么可能會(huì)出現(xiàn)問題。

【編輯推薦】

  1. 簡(jiǎn)單講述VB.NET表間拖放
  2. 五分鐘學(xué)會(huì)VB.NET實(shí)現(xiàn)拖放
  3. 講述強(qiáng)大的VB.NET Web Forms,使用起來(lái)卻如此簡(jiǎn)單
  4. 分析VB QuickSort應(yīng)用程序
  5. 兩步就可以掌握VB使用ArrayList類

當(dāng)前名稱:VB.NETSendKeys方法與鍵入值
當(dāng)前URL:http://www.dlmjj.cn/article/djceoed.html