| |
|
|
- Seite 1 - |
|
Julian Schmidt | Hallo, Ich habe ein Problem und hoffe das einige das Programm testen und Bericht erstatten können. Nun eine Erörterung des Problems... Wenn man das Tool über die Taskleiste schiebt und der Taskleiste den Fokus gibt verschwindet es hinter dieser. Dann kann man es leider auch nicht mehr herausziehen.
Tritt dieses Problem auf euren Rechner auch auf? Ich habe es auf 3 Rechnern getestet... Auf Win7 Home Premium(Acer) und WinXP Professionell trat das Problem auf. Bei Win7 Home Premium(HP) dagegen nicht.
Ideen zu Problembehandlung sind erwünscht. Am liebsten allerdings in einem Unterthema.
Download externer Download
Def ReleaseCapture(0) !"USER32","ReleaseCapture"
windowstyle 64+16+1024
window 0,0-0,0
SetWindowPos %hwnd=%MaxX-380,(%MaxY-80) - 120,35;-1
UserMessages 513
cls RGB(255,0,0)
while 1
waitinput
case iskey(27) : end
case %uMessage=513 : moveWin
Endwhile
proc moveWin
if getfocus(%Hwnd)
UseCursor 5
SendMessage(%hwnd,$112,$F012,0)
endif
UseCursor 0
ReleaseCapture()
endproc
LG
Julian57 |
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 04.08.2011 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Julian Schmidt | hmmm...eure Hilfsbereitschaft lässt wirklich zu wünschen übrig....
windowstyle 64+16+1024
window 0,0-0,0
SetWindowPos %hwnd=%MaxX-380,(%MaxY-80) - 120,35;-1
UserMessages 513
cls RGB(255,0,0)
while 1
waitinput
case iskey(27) : end
case %uMessage=513 : hWnd.moveByMouse
Endwhile
proc hWnd.moveByMouse
declare mpos#,x1&,y1&, x2&,y2&
dim mpos#,8
external("user32","GetCursorPos",mpos#)
var wix&=%winLeft-long(mpos#,0)
var wiy&=%winTop-long(mpos#,4)
while iskey(1)
external("user32","GetCursorPos",mpos#)
x1&=(long(mpos#,0)+wix&)
case x1&<workarea("Links") : x1&=workarea("Links")
case x1&>workarea("Rechts")-(%winRight-%winLeft) : x1&=workarea("Rechts")-(%winRight-%winLeft)
y1&=(long(mpos#,4)+wiy&)
case y1&<workarea("Oben") : y1&=workarea("Oben")
case y1&>workarea("Unten")-(%winBottom-%winTop) : y1&=workarea("Unten")-(%winBottom-%winTop)
setWindowPos %hWnd=x1&,y1& - (%winRight-%winLeft),(%winBottom-%winTop);0
Endwhile
dispose mpos#
endProc
Proc workarea
DEF SysParameterInfo(4) ! "user32","SystemParametersInfoA"
Parameters position$
Declare Rect#,x%
Dim Rect#,16
SysParameterInfo(48,0,Rect#,0)
case position$="Links" : x%=Long(Rect#,0)
case position$="Oben" : x%=Long(Rect#,4)
case position$="Rechts" : x%=Long(Rect#,8)
case position$="Unten" : x%=Long(Rect#,12)
Dispose Rect#
Return x%
endproc
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 07.08.2011 ▲ |
|
|
|
|
|
| Ja ist ja völlig normal.
Darum kann man Fenster z.B. per mit-der-Maus-an-der-Titelzeile-Festhalten auch nicht hinter die Tastbar verschieben.
Du musst den tatsächlichen Arbeitsbereich beachten -
Rolf Koch hat imho eine Unit gepostet mit der sich der Arbeitsbereich ermitteln lässt. |
|
|
| |
|
|
|
Julian Schmidt | iF (04.08.11)
Rolf Koch hat imho eine Unit gepostet mit der sich der Arbeitsbereich ermitteln lässt.
Vermutlich meinst du die Unit[...] Allerdings kommt bei dem Beispiel in XProfanX2 eine Fehlermeldung. Liegt imho daran das die Datei sechs Jahre alt ist.
[OFFTOPIC]XProfan.com ist seit einer halben Stunden bei mir in Firefox(5.0) nicht mehr aufrufbar, selbst wenn ich über eine andere Proxy surfe. Über SRWare Iron funktioniert der Aufruf.[/OFFTOPIC] |
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 05.08.2011 ▲ |
|
|
|
|
Julian Schmidt | Alternativ zu der Unit kann man die Workarea über eine Prozedur ermitteln. Nur wie kann ich das Verschieben des Programms auf die Workarea begrenzen?
Workarea:
Proc workarea
DEF SysParameterInfo(4) ! "user32","SystemParametersInfoA"
Parameters position$
Declare Rect#,x%
Dim Rect#,16
SysParameterInfo(48,0,Rect#,0)
case position$="Links" : x%=Long(Rect#,0)
case position$="Oben" : x%=Long(Rect#,4)
case position$="Rechts" : x%=Long(Rect#,8)
case position$="Unten" : x%=Long(Rect#,12)
Dispose Rect#
Return x%
endproc
cls
print "Workarea = "+Str$(workarea("Links"))+","+Str$(workarea("Oben"))+" - "+Str$(workarea("Rechts"))+","+Str$(workarea("Unten"))
print "Bildschirm = 0,0 - "+Str$(%MaxX)+","+Str$(%MaxY)
while 1
waitinput
Endwhile
Programm_Grundgerüst:
Def ReleaseCapture(0) !"USER32","ReleaseCapture"
windowstyle 64+16+1024
window 0,0-0,0
SetWindowPos %hwnd=%MaxX-380,(%MaxY-80) - 120,35;-1
UserMessages 513
cls RGB(255,0,0)
while 1
waitinput
case iskey(27) : end
case %uMessage=513 : moveWin
Endwhile
proc moveWin
if getfocus(%Hwnd)
UseCursor 5
SendMessage(%hwnd,$112,$F012,0)
endif
UseCursor 0
ReleaseCapture()
endproc
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 05.08.2011 ▲ |
|
|
|
|
Julian Schmidt | hmmm...eure Hilfsbereitschaft lässt wirklich zu wünschen übrig....
windowstyle 64+16+1024
window 0,0-0,0
SetWindowPos %hwnd=%MaxX-380,(%MaxY-80) - 120,35;-1
UserMessages 513
cls RGB(255,0,0)
while 1
waitinput
case iskey(27) : end
case %uMessage=513 : hWnd.moveByMouse
Endwhile
proc hWnd.moveByMouse
declare mpos#,x1&,y1&, x2&,y2&
dim mpos#,8
external("user32","GetCursorPos",mpos#)
var wix&=%winLeft-long(mpos#,0)
var wiy&=%winTop-long(mpos#,4)
while iskey(1)
external("user32","GetCursorPos",mpos#)
x1&=(long(mpos#,0)+wix&)
case x1&<workarea("Links") : x1&=workarea("Links")
case x1&>workarea("Rechts")-(%winRight-%winLeft) : x1&=workarea("Rechts")-(%winRight-%winLeft)
y1&=(long(mpos#,4)+wiy&)
case y1&<workarea("Oben") : y1&=workarea("Oben")
case y1&>workarea("Unten")-(%winBottom-%winTop) : y1&=workarea("Unten")-(%winBottom-%winTop)
setWindowPos %hWnd=x1&,y1& - (%winRight-%winLeft),(%winBottom-%winTop);0
Endwhile
dispose mpos#
endProc
Proc workarea
DEF SysParameterInfo(4) ! "user32","SystemParametersInfoA"
Parameters position$
Declare Rect#,x%
Dim Rect#,16
SysParameterInfo(48,0,Rect#,0)
case position$="Links" : x%=Long(Rect#,0)
case position$="Oben" : x%=Long(Rect#,4)
case position$="Rechts" : x%=Long(Rect#,8)
case position$="Unten" : x%=Long(Rect#,12)
Dispose Rect#
Return x%
endproc
|
|
|
| ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...] | 07.08.2011 ▲ |
|
|
|
|
| Reine Fleißarbeiten erledigt man am besten immer gleich selbst -
beim Lösen logischer Probleme oder wenns an Infos/ Wissen fehlt dann ist Hilfe erfahrungsgemäß stets fix parat. |
|
|
| |
|
|