C++ konsolda mausenın konumu nasıl okunur.

Başlatan XX_CİHAN_XX, 05 Temmuz 2006, 21:56:10

XX_CİHAN_XX

Arkadaşlar C++ ta mausenın bulundugu x y kordınatlarını nasıl okuruz.
Bu işi yapan bir fonksiyon varmıdır?? :roll:
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

gsever

Bunun için fonksiyonları kendin yazmalısın, ya da hazır bir komut bulmalısın.

Mesela CVI için hazır bir fonk var.

Function name: GetGlobalMouseState

Obtains information about the state of the mouse cursor. xCoordinate and yCoordinate return the position of the mouse relative to the top, left corner of the screen.



Prototype

int GetGlobalMouseState (int *Panel_Handle, int *XCoordinate, int *YCoordinate, int *Left_Button_Down, int *Right_Button_Down, int *Key_Modifiers);

Bu fonksiyon userint.h isimli kütüphaneyi kullanır.


Kendin yazmak istersen işin içine x86 asm girer.

ise

borland c++ da kendi mousemove özelliğinde x ve y koordinatları veriyor
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
     int X, int Y) gibi

WM_MOUSEMOVE danda yararlanılabilir
konumlandırmak istersen  SetCursorPos(x,y);

XX_CİHAN_XX

Borland C++ ın o ozellıgını bılıyorumda benım derdım konsoldan bu ısı nasıl yaparız yada yapabılırmıyız(sanırım yapılamıyor)?
Benım asıl yapmak ıstedıgım olay C++ kullanarak komutlar ıle bır fonksıyon olusturmak.Bu fonksıyonun gorevı benım ıstedıgım bır bolgede sanal bır buton olusturacak ve mause ıle o bolge ıcersınde bır tıklama olursa baska ıslemler yapıcak felan.
Bunu C++ ta ,konsolda, yapabılırmıyım yoksa yapamazsam baska nerde yapabılırım :?:
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

ise

butonlar aracılığıyla sanal klavye mouse gibi bişi yapmak yapmak istiyorsun sanırım.

{
TPoint K;
GetCursorPos(K);//mousenin bulunduğu koordinat alındı
SetCursorPos((K.x+100),(K.y+100)); // bulunduğu yerden x,y +100 iler gitti
}  
yeni nesne yapmak istersen  
sanal tıklama için
{
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);// sanal olarak sol butona  basıldı
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);// sanal olarak sol buton bırakıldı  
//bu değerler winuser.h içersinde tanımlı  c++builder kullanıyorsan ctrl+farenin sol tuşuna basarsan tanımlandıkları yer çıkar
}

yeni nesne tanımlama
{
/* private: TButton* Butonum;  // *.h altında olan yere   tanımlama yapmasanda olur fakat activecontrol yapılırken nesne bulunması için yararı olur. form içindede tanımlanabilir  */
/*   TButton *Butonum; gibi */
   Butonum=new TButton(Form1); // veya hangi formda oluşturmak istersen
   Butonum->Parent = Form1; // veya hangi formda oluşturmak istersen
   Butonum->Caption = "konsol butonu ";
   Butonum->Left = 100;
   Butonum->Top = 100;
   SetCursorPos(100,100);// Mouse üzerine geldi
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
// buradan nesne olaylarını nereye yönlerdiysen oaraya gider
}

klavye istersen
{
keybd_event(VK_DOWN, MapVirtualKey(VK_DOWN, 0), 0, 0);// aşağı ok tuşuna basıldı
keybd_event(VK_DOWN, MapVirtualKey(VK_DOWN, 0), KEYEVENTF_KEYUP, 0); //tuş bırakıldı
}

geri kalanı senin hayal gücüne kalıyor.. iyi çalışmalar