Bitte um Hilfe



  • Ich habe ein programm geschrieben mit denen ich mittels tasten 1-5 mausklicks generieren kann. jede taste holt sich von einer variablen die position.

    siehe:

    BOOL CLosDososZielwasserDlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	m_nIDHotKey1 = GlobalAddAtom("1");
    	m_nIDHotKey2 = GlobalAddAtom("2");
    	m_nIDHotKey3 = GlobalAddAtom("3");
    	m_nIDHotKey4 = GlobalAddAtom("4");
    	m_nIDHotKey5 = GlobalAddAtom("5");
    	RegisterHotKey(m_hWnd, m_nIDHotKey1, 0, '1');
    	RegisterHotKey(m_hWnd, m_nIDHotKey2, 0, '2');
    	RegisterHotKey(m_hWnd, m_nIDHotKey3, 0, '3');
    	RegisterHotKey(m_hWnd, m_nIDHotKey4, 0, '4');
    	RegisterHotKey(m_hWnd, m_nIDHotKey5, 0, '5');
    
    	return TRUE;
    }
    
    LRESULT CLosDososZielwasserDlg::OnHotKey(WPARAM wp, LPARAM lp)
    {
    	TRACE(_T("OnHotKey\n"));
    	if (wp == m_nIDHotKey1)
    	{
    		::SetCursorPos(m_pos1h, m_pos1v);
    		Sleep(30); 
    		TRACE(_T("Key1\n"));
    	}
    	else if (wp == m_nIDHotKey2)
    	{
    		::SetCursorPos(m_pos2h, m_pos2v);
    		Sleep(30); 
    		TRACE(_T("Key2\n"));
    	}
    	else if (wp == m_nIDHotKey3)
    	{
    		::SetCursorPos(m_pos3h, m_pos3v);
    		Sleep(30); 
    		TRACE(_T("Key3\n"));
    	}
    	else if (wp == m_nIDHotKey4)
    	{
    		::SetCursorPos(m_pos4h, m_pos4v);
    		Sleep(30); 
    		TRACE(_T("Key4\n"));
    	}
    	else if (wp == m_nIDHotKey5)
    	{
    		::SetCursorPos(m_pos5h, m_pos5v);
    		Sleep(30); 
    		TRACE(_T("Key5\n"));
    	}
    	::mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, NULL);
    	::mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, NULL);
    	return 0;
    }
    

    ich möchte nun aber noch nach jedem mausklick einen druck auf die
    leertaste generiert haben. weiss aber nicht wie ich das anstellen soll.

    bitte helft mir. danke



  • Hi,

    also ein Tastendruck resultiert ja letztendlich immer in eine WM_KEYDOWN Message. Und Windows-Nachrichten kannst du mit CWnd::SendMessage auch selber verschicken.

    in etwa so:

    CWND::SendMessage(WM_KEYDOWN,VK_SPACE, Options);
    

Anmelden zum Antworten