亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#使用Sendkey函數將密鑰發送到另一個應用程序

C#使用Sendkey函數將密鑰發送到另一個應用程序

C#
catspeake 2019-09-24 16:43:45
我想將一個特定的密鑰(例如k)發送到另一個名為notepad的程序,下面是我使用的代碼:void sendkey (){    [DllImport ("User32.dll")]    static extern int SetForegroundWindow(IntPtr point);    Process p = Process.GetProcessesByName("notepad")[0];    IntPtr pointer = p.Handle;    SetForegroundWindow(pointer);    SendKeys.Send("k");}但是代碼不起作用,代碼怎么了?編輯:是否可以將沒有記事本的“ K”發送到記事本作為活動窗口?(例如,活動窗口=“ Google chrome”,記事本位于背景中,這意味著向后臺應用程序發送密鑰)
查看完整描述

2 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

如果記事本已經啟動,則應輸入:


// import the function in your class

[DllImport ("User32.dll")]

static extern int SetForegroundWindow(IntPtr point);


//...


Process p = Process.GetProcessesByName("notepad").FirstOrDefault();

if( p != null)

{

    IntPtr h = p.MainWindowHandle;

    SetForegroundWindow(h);

    SendKeys.SendWait("k");

}

GetProcessesByName 返回一個進程數組,因此您應該獲得第一個進程(或找到所需的進程)。


如果要啟動notepad并發送密鑰,應輸入:


Process p = Process.Start("notepad.exe");

p.WaitForInputIdle();

IntPtr h = p.MainWindowHandle;

SetForegroundWindow(h);

SendKeys.SendWait("k");

代碼可能無法正常工作的唯一情況是,當notepad以Administrator身份啟動而不是您的應用程序啟動時。


查看完整回答
反對 回復 2019-09-24
  • 2 回答
  • 0 關注
  • 832 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號