Español
Foro

Ventana-Foco

 

E.T.
Es otra vez veces así weit, bin al verzweifeln:

Gibt lo lo una Möglichkeit (en XProfan) determinar, si una (Haupt-) Ventana el Focus verliert, z.B. a el aufrufende (no-profano-) Programa oder el Desktop ??
Mein (einziges) Programa-Ventana es Top-Most, aber trotzdem möchte Yo gern wissen, si el Ventana verlassen se.

Habs ahora en el Moment así, el por waitinput 2000  geprüft se, welches Ventana el enfoque ha, gefällt me pero no wirklich ...

Noch mejor wäre nat., el ID des aufrufenden Programm's a kennen,
entonces podría Yo gezielter darauf reagieren ...

...oder hay una Message en XProfan, si el Ventana verlassen se ? Dös wär's natürlich
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.11.2014  
 



Auf cada Fall wirst Es usted un UserMessage benötigen porque auch el en XProfan eingebaute SubClassing no así zuverlässig es como una XProfan UserMessage. Probiere veces wm_activate aber vlt. tuts auch wm_killfocus.
 
06.11.2014  
 




E.T.
restos aber el Cuestión de Abfrage: wäre una Message, welche una waitinput  durchbricht, adecuado o. nötig, en no irgendeinen Temporizador en el Prog rödeln que se
 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.11.2014  
 



Yo verstehe el Cuestión no.

El Usermessage durchbricht waitinput y wäre esta sinnvoller como una Temporizador.
 
06.11.2014  
 




E.T.
Habs ahora veces por Usermessage gemacht:
KompilierenMarcaSeparación
 {$IQ}
Declare ProgEnde%

Proc BlinkWindow

    Parameters Fenster&

    WhileLoop 3

        ~FlashWindow(Fenster&, 1)
        sleep 50

    EndWhile

    ~SetActiveWindow(Fenster&)

    If GetFocus(%HWnd)

        print "Wieder aktiviert..." + Time$(0)

    EndIf

EndProc

WindowStyle 8+512+16
WindowTitle "Testfenster"
Window 800,600
SetWindowPos %HWnd = %WinLeft,%WinTop - 800,600;-1
CLS GetSysColor(15)
UserMessages ~wm_killfocus

WhileNot ProgEnde%

    Waitinput
    Case %UMessage : BlinkWindow(%HWnd)

    If %Key = 2

        ProgEnde% = 1

    EndIf

EndWhile

end

Jetzt sólo el Cuestión: ¿Por qué funzt ~SetActiveWindow(Fenster&)  sólo 1x (Ventana blinkt y se aktiviert, Taskleiste kurz como y otra vez ausgeblendet), danach se algo "verschluckt":
Mi (ausgeblendete) Taskleiste ploppt hoch y zeigt me el Aktivierung de "Testfenster" a (also algo kommt a), aber el Ventana no es aktiviert (se doch no...ne...al SetActiveWindow  liegen...)

Irgendwo war Yo como ya veces drüber gestolpert...
...y irgendwo aquí en el Nity son 'nen Code, en Ventana "sicher" a aktivieren, igual veces suchen...

...war doch "nur " en el Vordergrund:  [...] 
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.11.2014  
 



¿Por qué siempre sleep, el es kontraproduktiv:
KompilierenMarcaSeparación
WhileLoop 3

    ~FlashWindow(Fenster&, 1)
    sleep 50

EndWhi

Ahí está al alemán: Mache FlashWindow aber son el Prozess no Tiempo para FlashWindow. Wird also Windows-Versión-Abhängig ser wann y cómo y si el funzt. Keine gute Solución! Eher todavía WaitInput 50 solange como Tiempo-X no erreicht es z.B. por getTickCount.

Das en el Vordergrundsetzen es auch no así ligeramente windowsversionenübergreifend porque irgendwann (de Vista?) meinte MSDN dass dies sólo todavía el propio Prozess para propio Ventana tun se si una Ventana des Prozess incluso aber ya ya el Fokus ha. Ging uno Así que una bisl weg su el una Prozess el Ventana ha el todos kein Foco haben se incluso en el Vordergrund bringen se. Irgendwie half como siempre sólo Herumprobiere sodass lo en allen Windows-Versionen gleichermassen funktioniert. Lästig! Aber sólo por API una Fensteranweisung geben y luego por SLEEP el hilo quasi "stoppen" es no en el Sinne des Erfinders.
 
06.11.2014  
 




E.T.
sí, sleep vermeide Yo auch, es aber sólo en dieses Bsp. reingeraten (con z.Bsp. waitinput 500  passiert aber el gleiche)

Ist sólo doof, el como pocos Win-Progger media, el Yo no incluso bestimmen darf, el mein Ventana aktiviert se y sólo todavía z.B. por Taskleiste darauf "hingewiesen" se, el wohl veces una (wichtiges ??) Programa el Aufmerksamkeit wünscht.

Yo voluntad otra vez 3.11, el beste Win, qué lo je gab

Apéndice: Ist ahora veces así 'ne Cuestión: Kann como Roland qué a el (manchmal dümmliche) Desarrollo de Win adaptar, oder como hoch wäre el Aufwand?
Vlt. es doch mejor, el W-Versión auszulesen y luego el Prog anzupassen (XProfan-intern oder API nutzen).

Oder anders herum: Como weit proggt uno "abwärts-kompatibel",
y wo son como el Grenzen ??
XP es sí todavía weit verbreitet y se lo wohl auch todavía 'ne Weile bleiben, como wäre lo auch schade, si esto no es mehr por XProfan unterstützt sería.
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.11.2014  
 



Einfach una neues Ventana, neuen Prozess oder neues Windows erzeugen!?!
 
07.11.2014  
 




GDL
Hallöle,

dies hier :


Ist sólo doof, el como pocos Win-Progger media, el Yo no incluso bestimmen darf


ärgert mich auch. Nur todavía Multimedia Kisten.

Wir benutzen para Steuerungsaufgaben siempre todavía WInME y Win98.
Como war uno con el Hardwarezugriffen no así eingeschränkt.

Grüßle
Georg
 
XProfan X3
Windows7 Xprofan 8,9,10 [...]  [...] 
07.11.2014  
 



Como se Windows entwickelt de hecho puede no alles beim Alten bleiben.

Wir Holzfäller haben lo auch con siempre mehr Axt-resistenten Bäumen a tun.

Nehmen wir sólo el Kettensäge.

Ein neues Ventana erstellten, dass entonces oben liegt, va todavía?
 
09.11.2014  
 




E.T.
So, habs veces con 'nem neuen Ventana probiert,
doch irgendwie el gleiche Comportamiento:
Richtig aktiviert se el HWnd sólo beim ersten Durchlauf
KompilierenMarcaSeparación
 {$IQ}
Declare ProgEnde%, HelpWindow&

Proc BlinkWindow

    Parameters Fenster&

    WhileLoop 3

        ~FlashWindow(Fenster&, 1)
        Waitinput 50'man soll ja keine Zeit stehlen !!

    EndWhile

    ~SetActiveWindow(Fenster&)

EndProc

WindowStyle 8+512+16
WindowTitle "Testfenster"
Window 800,600
SetWindowPos %HWnd = %WinLeft,%WinTop - 800,600;-1
CLS GetSysColor(15)

WhileNot ProgEnde%

    UserMessages ~wm_killfocus'Message setzen
    Waitinput

    If %UMessage = ~wm_killfocus

        Usermessages 0'sonst Endlos-Schleife !!
        HelpWindow& = Create("Window",%HWnd,"",0,0,10,10)
        Case GetFocus(HelpWindow&) : Print "Hilfsfenster hat Focus"
        BlinkWindow(%HWnd)
        destroywindow(HelpWindow&)
        Case GetFocus(%HWnd) : Print "Hauptfenster hat Focus"

    ElseIf %Key = 2

        ProgEnde% = 1

    EndIf

EndWhile

end
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
10.11.2014  
 



Und si veces en Deiner BlinkWindow como erstes setforegroundwindow hwnd y danach(!) setactivewindow hwnd machst?

Stehen hier  [...]  Gründe para dieses Comportamiento?
 
10.11.2014  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

9.144 Views

Untitledvor 0 min.
maroro01.07.2016
Ernst14.04.2016
ByteAttack09.08.2015
Tommy25.03.2015
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

iF (6x)
E.T. (6x)
GDL (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie