Italia
Foro

Mausposition außer halb des Profanprogramms herausfinden

 

ToM
hi!

ich hätt mal wieder ne frage ...

Die Mausposition innerhalb des eigenen Fenster herausfinden ist leicht, nur wie kann ich
das machen, wenn ich nichtmal ein eigenes Fenster hab, dass ich die aktuelle Mausposition
herausfinde ?!

hoffe mir kannwer helfen

mfg ToM
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 



So?
KompilierenMarkierenSeparieren
DEF @GetCursorPos(1) !"USER32","GetCursorPos"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
Windowstyle 31
Windowtitle "Globale Mauskoordinaten in Fensterposition umrechnen"
Window 50,75-600,350
Declare pos#

While 0=0

    Sleep 10
    DIM POS#,8
    GetCursorPos(pos#)
    Drawtext 0,0,"Global X="+@STR$(@Long(Pos#,0))+@Space$(100)
    Drawtext 0,20,"Global Y="+@STR$(@Long(Pos#,4))+@Space$(100)
    @ScreenToClient(%HWND,Pos#)
    Drawtext 0,40,"Lokal X="+@STR$(@Long(Pos#,0))+@Space$(100)
    Drawtext 0,60,"Lokal Y="+@STR$(@Long(Pos#,4))+@Space$(100)
    Dispose Pos#

Wend

 
21.09.2005  
 




ToM
danke

genau das meinte ich
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 




ToM
hmm hätte noch ein problem

gibts es eine umgekehrte funktion von SetWindowPos

also dass Man die Position eines anderen Fensters und die Dimensione eines anderen Fensters
herausfindet hm ?!

mfg tom
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 



So?
KompilierenMarkierenSeparieren
Def @GetWindowRect(2) !"USER32", "GetWindowRect"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
WindowTitle "Koordinaten"
Windowstyle 31+512
Window 0,0-640,440
Decimals 0
Declare b#,dlg&
LET dlg&=@Create("Window",%hwnd,"Testdialog",150,150,300,300)

Whilenot %MENUITEM=-2

    GetMessage
    Locate 1,1
    Dim b#,16
    @GetWindowRect(dlg&,b#)
    print "Eckpunkte von Testdialog bezogen auf Bildschirm:",Long(b#,0),Long(b#,4),Long(b#,8),Long(b#,12);"       "
    @ScreenToClient(%hwnd,b#)
    @ScreenToClient(%hwnd,b#+8)
    print "Eckpunkte von Testdialog bezogen auf %hwnd:",Long(b#,0),Long(b#,4),Long(b#,8),Long(b#,12);"       "
    @GetWindowRect(dlg&,b#)
    @ScreenToClient(dlg&,b#)
    @ScreenToClient(dlg&,b# + 8)
    Print ""
    PRINT "Breite des Rahmens von Testdialog: "+@STR$(@ABS(Long(b#,0))/2)+"            "
    PRINT "Höhe der Titelzeile von Testdialog ohne Rahmen: "+@STR$(@ABS(Long(b#,4))-@ABS(Long(b#,0)))+"            "
    PRINT "Breite des Clientbereiches von Testdialog: "+@STR$(Long(b#,8))+"            "
    PRINT "Höhe des Clientbereiches von Testdialog: "+@STR$(Long(b#,12))+"            "
    Dispose b#

Wend

 
21.09.2005  
 




ToM
hmmm meinte das so z.B.:

Fenster: Windows Media Player
Höhe 300 / Breite 400
PosX 200 / PosY 200

Also dass man diese Sachen herausfindet.

mfg tom
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 



Das macht der og Code.
 
21.09.2005  
 




ToM
ok habn bissl falsche gedacht, sorry

und thx fürn code und sorry dass ich eurer forum so fülle *g*

mfg tom
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 



Macht nichts, ist ja viel Platz hier .
 
21.09.2005  
 




ToM
hmmm bei den oberen quellcode werden ab und zu 1000er Stellen hunugefügt, also statt z.B. 512 .. 512000

wieso hm ?!

mfg tom
 
AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0
21.09.2005  
 



So auch noch???
KompilierenMarkierenSeparieren
Def @GetWindowRect(2) !"USER32", "GetWindowRect"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
WindowTitle "Koordinaten"
Windowstyle 31+512
Window 0,0-640,440
Decimals 0
Declare b#,dlg&
LET dlg&=@Create("Window",%hwnd,"Testdialog",150,150,300,300)

Whilenot %MENUITEM=-2

    GetMessage
    Locate 1,1
    Dim b#,16
    @GetWindowRect(dlg&,b#)
    print "Eckpunkte von Testdialog bezogen auf Bildschirm:"+@STR$(Long(b#,0))+" "+@Str$(Long(b#,4))+" "+@Str$(Long(b#,8))+" "+@str$(Long(b#,12))+"                  "
    @ScreenToClient(%hwnd,b#)
    @ScreenToClient(%hwnd,b#+8)
    print "Eckpunkte von Testdialog bezogen auf %hwnd:"+@str$(Long(b#,0))+" "+@Str$(Long(b#,4))+" "+@Str$(Long(b#,8))+" "+@Str$(Long(b#,12))+"              "
    @GetWindowRect(dlg&,b#)
    @ScreenToClient(dlg&,b#)
    @ScreenToClient(dlg&,b# + 8)
    Print ""
    PRINT "Breite des Rahmens von Testdialog: "+@STR$(@ABS(Long(b#,0))/2)+"            "
    PRINT "Höhe der Titelzeile von Testdialog ohne Rahmen: "+@STR$(@ABS(Long(b#,4))-@ABS(Long(b#,0)))+"            "
    PRINT "Breite des Clientbereiches von Testdialog: "+@STR$(Long(b#,8))+"            "
    PRINT "Höhe des Clientbereiches von Testdialog: "+@STR$(Long(b#,12))+"            "
    Dispose b#

Wend

 
21.09.2005  
 



So auch noch? Welche Profanversion???
KompilierenMarkierenSeparieren
DEF @GetCursorPos(1) !"USER32","GetCursorPos"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
Windowstyle 31
Windowtitle "Globale Mauskoordinaten in Fensterposition umrechnen"
Window 50,75-600,350
Declare pos#

While 0=0

    Sleep 10
    DIM POS#,8
    GetCursorPos(pos#)
    Drawtext 0,0,"Global X="+@STR$(@Long(Pos#,0))+"                    "
    Drawtext 0,20,"Global Y="+@STR$(@Long(Pos#,4))+"                    "
    @ScreenToClient(%HWND,Pos#)
    Drawtext 0,40,"Lokal X="+@STR$(@Long(Pos#,0))+"                      "
    Drawtext 0,60,"Lokal Y="+@STR$(@Long(Pos#,4))+"                       "
    Dispose Pos#

Wend

 
21.09.2005  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.366 Views

Untitledvor 0 min.
Sven Bader17.08.2021
Untitled11.05.2012
Julian Schmidt07.06.2011

Themeninformationen

Dieses Thema hat 3 subscriber:

ToM (10x)
unbekannt (7x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie