Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Mouse_event | SetCursor außerhalb des Fensters

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.03.2007, 01:11 Uhr
supersass1



Hallo,

mein Programm macht folgendes im Groben


C++:
GetCursorPos(&mPos);
// das ganze merfhach von verschiedenen Positionen

SetCursorPos(&mPos.x,&mPos.y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

// das nun auch merfach, mit pausen dazwischen




Mein Problem ist, das Programm nimmt die Koordinanten nur innerhalb des FEnsters des Programms auf (in diesem Fall die ganz normale Konsole), wie erweiter ich das auf den Desktop?
Geht das überhaupt, oder muss ich dann quasi ein Programm im Vollbildmodus schreiben, wie mach ich das?

mit freundlichen Grüßen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.03.2007, 08:05 Uhr
Kest
saint


Hi!

Bei >SetCursorPos< müssen die Parameter nicht als Zeiger übergeben werden.
Sollste also >SetCursorPos(mPos.x,mPos.y);< schreiben
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.03.2007, 10:43 Uhr
supersass1



es geht vielmehr um
GetCursorPos();
und zwar funktioniert das nur innerhalb des FEnsters, warum?
Kann ich das nicht quasi auf den ganzen Bildschirm erweitern?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.03.2007, 14:07 Uhr
Kest
saint


Also, ich weiß nicht. Bei mir funktioniert das.
Was für einen Compiler benutzst du? usw...
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.03.2007, 14:25 Uhr
supersass1



also, ich benutz das ja im Zusammenhang mit einem Klicken, d.h. wenn wer klickt, soll er CursorPos festlegen...

das ganze mach ich mit

C++:
while( GetAsyncKeyState(VK_LBUTTON) == GetAsyncKeyState(VK_LBUTTON) // wenn linke maustaste gedrückt
{
}
GetCursorPos(mPos);



vielleicht liegt es auch daran, dass er nur das beachtet, wenn ich innerhalb des FEnsters die Maus drücke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.03.2007, 17:32 Uhr
Kest
saint


Also wie gesagt, bei mir geht das.
Wenn es nicht zu umständlich wäre, zeig mal den ganzen Code.
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.03.2007, 19:15 Uhr
supersass1




C++:
#include <iostream>
#include <iostream.h>  // I/O
#include <fstream.h>   // file I/O
#include <iomanip.h>

#include <windows.h>
#include <winuser.h>


#include <stdio.h>
#include <time.h>
#include <shlobj.h>


//#include "xsleep.h"

int k;
int s;


long x[5];
long y[5];

POINT mPos[5]; // erstmal zum testen 5


int main()
{
    //con.enableWndFSMode();
    //SetConsoleDisplayMode(0,CONSOLE_FULLSCREEN_MODE,0);
    cout << "Das blabliblubb von Andreas Sass" << endl;
    cout << "Wie viele Mausklicks soll es geben - 5 empfohlen" << std::endl;
    cin >> k;
    cout << k << " Klicks wurden eingestellt." << endl;
    cout << "Öffne nun das Programm und gib die 5 Koordinaten für deine Klicks an!" << endl;
    Sleep(1000);

    for (int i=0; i < k; i++)
    {

while (GetAsyncKeyState(VK_LBUTTON) == GetAsyncKeyState(VK_LBUTTON))
{
    Sleep(10);

}
    GetCursorPos(&mPos[i]);
    //GetMessage(WM_LBUTTONUP,NULL,0,0);
    cout << "X:" << mPos[i].x << "  Y:" << mPos[i].y << endl;

    }

    cout << endl << endl << "Gebe nun ein Start Signal mit der 1 Taste" << endl;
    cin >> s;
    if (s == 1)
    {
        // start des eigentlichen Programms

        cout << "gratuliere" << endl;
        SetCursorPos(mPos[0].x, mPos[0].y);
        Sleep(1000);
                SetCursorPos(mPos[1].x, mPos[1].y);
        Sleep(1000);
                SetCursorPos(mPos[2].x, mPos[2].y);
        Sleep(1000);
    }

    else
    {
        cout <<"NOOB"<< endl;}
    //SetCursorPos(mPos.x, mPos.y);
    //mouse_event(MOUSEEVENTF_RIGHTDOWN, 0,0,0,0);
    //mouse_event(MOUSEEVENTF_RIGHTUP, 0,0,0,0);

/*HWND hwnd = FindWindow(NULL, "Calculator");
SetForegroundWindow(hwnd);
PostMessage(hwnd, WM_RBUTTONDOWN, 0, 0);
PostMessage(hwnd, WM_RBUTTONDOWN, 0, 0);
*/

    //SendMessage(0, WM_RBUTTONDOWN, 0,0);
    //SendMessage(0, WM_RBUTTONUP, 0,0);
    //SendMessage(0, WM_LBUTTONDBLCLK, 0,0);
    /*CWnd *pCalc;
//Get a pointer to the "Calculator" Window
pCalc = CWnd::FindWindow(NULL, _T("Calculator"));
if(pCalc == NULL){
    //Couldn't find Calculator
}
else{
    pCalc->SendMessage(WM_CLOSE);
    //Presto! The Calculator should close.
}




*/


    return 0;
}



Alles in Kommentar-Strichen bitte nicht beachten, das sind entweder Versuche oder Sachen, die ich mir vorerst merken musste.

Dieser Post wurde am 28.03.2007 um 19:18 Uhr von supersass1 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.03.2007, 23:48 Uhr
supersass1



so, mittlerweile geht das PRogramm, doch nur bedingt. Warum der die Koordinaten erst nicht genommen hat, weiß ich nicht.

Doch nun habe ich ein andere Problem, für die Maus gibt es mouse_event()
gibt es so was ähnliches auch für die Tastatur?
keyb_event oder so?
und wie kann ich 2. Tasten gleichzeitig drücken? Ohne SendMessage() oder PostMessage zu verwenden?

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.03.2007, 00:59 Uhr
supersass1



keybd_event() hat sich erledigt, trotzdem danke

thread kann geschlossen werden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: