2013-09-02 1 views
0

저는 SendKeys를 사용하여 항목 사이를 탐색 할 수있는 응용 프로그램을 만들고 있습니다. 모든 항목은 응용 프로그램 키 (상황에 맞는 메뉴)를 보내서 선택한 항목을 마우스 오른쪽 단추로 클릭 할 때를 제외하고는 꽤 잘 작동합니다.
내가 사용 SendKeys.Send를 통해 응용 프로그램 키를 보내십시오.

SendKeys.Send("{APPSKEY}"); 

내가 말하는 오류를 얻을 수있는 '키워드'APPSKEY는 "유효하지 않습니다. '

나는 그것을 봤이 웹 사이트에 그것을 발견 :
http://www.autohotkey.com/docs/commands/Send.htm
하지만 난 그 C#을 작동하지 않습니다 같은데요.

다른 방법으로 선택한 항목을 마우스 오른쪽 버튼으로 클릭 할 수 있습니까?
거기에 마우스를 움직이고 마우스 오른쪽 버튼을 클릭하여 앱이 어디에 있는지 알 수있는 방법이 있습니까? 마우스 클릭을 보낼 수 있습니다

내 프로그램 :

public partial class Form1 : Form 
{ 
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = 
CallingConvention.StdCall)] 
    public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint 
    cButtons, uint dwExtraInfo); 
    private const int MOUSEEVENTF_LEFTDOWN = 0x02; 
    private const int MOUSEEVENTF_LEFTUP = 0x04; 
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08; 
    private const int MOUSEEVENTF_RIGHTUP = 0x10; 

    private void MoveCursor(Point loc) 
    { 
     this.Cursor = new Cursor(Cursor.Current.Handle); 
     Cursor.Position = loc; 
     Cursor.Clip = new Rectangle(0, 0, 0, 0); 
    } 

    private void DoMouseClick(bool isLeft) 
    { 
     int X = Cursor.Position.X; 
     int Y = Cursor.Position.Y; 
     if (isLeft) mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)X, (uint)Y, 0, 0); 
     else mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)X, (uint)Y, 0, 0); 
    } 
} 

그러나 응용 프로그램은이 위치를 알고있다 그 항목에 마우스 오른쪽 버튼을 클릭을 시뮬레이션하기 위해

.

+0

을보십시오. – rene

+1

SendKeys 클래스는 VB6 응용 프로그램을 포트하는 데 도움을주기위한 것입니다. 15 년 전에 키보드에는 아직이 열쇠가 없었습니다. Windows 키도 awol입니다. SendInput()을 pinvoke해야합니다. –

+0

첫 번째 단계는 ** 양식에서 초점을 맞춘/선택한 항목 **을 찾는 것 같습니다. –

답변

1

태그가있는 곳 즉, 우리가 제목에 태그를 추가하지 않습니다 일반적으로

SendKeys.Send("+{F10}"); 

감사합니다,

관련 문제