mouseklick mit window

Anfängerfragen zum Programmieren mit PureBasic.
parzival
Beiträge: 5
Registriert: 26.03.2010 21:25

mouseklick mit window

Beitrag von parzival »

hi,
ich komm nicht weiter.
ich hab ein windowedscreen erstellt und brauch ich einen mausklick, eher gesagt muss ein bild angeklickt werden. mit MouseX() gehts nicht weil ich sonst die maus nicht sehe, also muss ich auf windowmousex() zurückgreifen, nur wie soll ich da den mausklick bewerkstelligen?? einen befehl dafür hab ich nicht gesehen.
mfg
parzival
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: mouseklick mit window

Beitrag von ts-soft »

Wenn es nur für Windows ist, könnte folgender Code helfen:

Code: Alles auswählen

SetCursorPos_(x, y)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
parzival
Beiträge: 5
Registriert: 26.03.2010 21:25

Re: mouseklick mit window

Beitrag von parzival »

uf, da blick ich garnicht durch :D
also hier ist mal mein code:
(sprite schon geladen und in der hauptschleife!)

Code: Alles auswählen

If WindowMouseX(0) > 100 And WindowMouseX(0) < 310 And WindowMouseY(0) > 110 And WindowMouseY(0) < 150 
        ;hier sollte es dann weitergehen!
      EndIf
wie würde man hier jetzt einen mouseklick reinbringen?
Benutzeravatar
Schlumpf
Beiträge: 19
Registriert: 21.03.2010 00:52
Wohnort: Der Puff von Schlumpfhausen

Re: mouseklick mit window

Beitrag von Schlumpf »

also, wenn du nen screen hast, musst du deinen mauszeiger selber anzeigen.
das ist der übliche und einfachste weg.

sonst lässt du InitMouse() und ExamineMouse() komplett weg.
dann kannst du die Maustaste über GetAsyncKeystate_(#VK_LBUTTON) checken.

gibbet auch alte beispiele im forum...
http://www.purebasic.fr/german/viewtopic.php?t=11280
PB 4.41 - Win XP pro
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: mouseklick mit window

Beitrag von ts-soft »

parzival hat geschrieben:uf, da blick ich garnicht durch :D
also hier ist mal mein code:
(sprite schon geladen und in der hauptschleife!)

Code: Alles auswählen

If WindowMouseX(0) > 100 And WindowMouseX(0) < 310 And WindowMouseY(0) > 110 And WindowMouseY(0) < 150 
        ;hier sollte es dann weitergehen!
      EndIf
wie würde man hier jetzt einen mouseklick reinbringen?

Code: Alles auswählen

SetCursorPos_(101, 111)
mouse_event_(#MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event_(#MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) 
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: mouseklick mit window

Beitrag von captain_hesse »

Es geht auch ohne API

Code: Alles auswählen

InitSprite()
OpenWindow(0,0,0,320,200,"klick")
OpenWindowedScreen(WindowID(0),0,0,320,200,0,0,0)
text$="In den Screen klicken zum beenden"
Repeat
event=WindowEvent()

If event=#WM_LBUTTONDOWN   
;Dein Code, Break steht jetzt nur als Beispiel da.
 Break 
EndIf

StartDrawing(ScreenOutput())
DrawText(10,90,text$)
StopDrawing()
FlipBuffers()
ForEver
CloseScreen()
CloseWindow(0)
End
Wenn ich das richtig verstanden hab sollte dir das helfen.
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: mouseklick mit window

Beitrag von ts-soft »

captain_hesse hat geschrieben:Es geht auch ohne API

Code: Alles auswählen

If event=#WM_LBUTTONDOWN 
Soso, ohne API :lol:

@parzival
Mein Code kannste übrigens vergessen, hab die Frage mißverstanden,
meiner Simuliert den Mausklick, die willst ihn aber abfragen. Naja,
schlecht ausgedrückt die Frage.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: mouseklick mit window

Beitrag von captain_hesse »

UPS :oops:

Aber trotzdem es ist ja nur die Konstante, der Rest ist PB.
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: mouseklick mit window

Beitrag von ts-soft »

captain_hesse hat geschrieben:UPS :oops:

Aber trotzdem es ist ja nur die Konstante, der Rest ist PB.
Aber die Konstante und das Event sind Windows-Spezifisch, also
läuft es nur mit der Vollversion unter Windows.

Diese feinen Unterschiede sind für Crossplattform-Programmierung
schon wichtig :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
captain_hesse
Beiträge: 138
Registriert: 17.05.2009 18:55
Computerausstattung: Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Wohnort: Saarland

Re: mouseklick mit window

Beitrag von captain_hesse »

Aber die Konstante und das Event sind Windows-Spezifisch, also
läuft es nur mit der Vollversion unter Windows.
Davon ging ich auch aus, also PB-Vollversion und MS-Windows.

Ansonsten hast du natürlich vollkommen recht. Obwohl ich mir garnicht so sicher bin das es mit der Demo unter Windows nicht klappen würde wenn man den Wert der Konstante kennt.
Windows 7 Ultimate 64 Bit / AMD Phenom II 1090T, 6x3200 MHz / AMD HD-6850 / PureBasic 5.1 (x86) (x64)
Antworten