Français
Forum

Fenstertitel dans Editierfeld prendre

 
allô alle zusammen...

je voudrais dans mon Programme qui Possibilité avons, une beliebigen Fenstertitel eines laufenden Programmes dans un mehrzeiliges Editierfeld aufzunehmen. comment würdet son à qui l'affaire herangehen? comment peux on cela logisch realisieren? quoi wäre qui beste Possibilité?
Wäre pour jeden Vorschlag reconnaissant, Source sommes pas absolument nötig.
 
16.07.2004  
 



Avez- Du quelque chose comme?
 {$cr}
declare a#,x%,y%,wnd&,me&
dim a#,8
def WindowFromPoint(2) !"User32", "WindowFromPoint"
def GetCursorPos(1) !"User32","GetCursorPos"
style de fenêtre 536
windowtitle "WinTit"
window 0,0 - 400,350
cls rgb(196,196,196)
me&=createmultiedit(%hwnd,»,0,0,width(%hwnd),height(%hwnd))
settimer 250

repeat

    Waitinput

    ifnot %clé

        GetCursorPos(a#)
        let x%=long(a#,0)
        let y%=long(a#,4)
        let Wnd&=WindowFromPoint(% X, y%)
        settext me&, gettext$(Wnd&)

    endif

until %clé=2

killtimer
dispose a#
end
 
16.07.2004  
 



allô IF...

non, eigentlich pas. comment on à den Fenstertitel venez, sais je - mir fehlt une concept pour une logische Umsetzung....
dans meinem Programme gibt es un mehrzeiliges Editierfeld, dans cela on Fenstertitel eingeben peux, chez en Auftreten Windows automatisch herunterfährt. je voudrais eh bien den Anwender pas entier so viel écrivons laisser - es mais devrait pour den Anwender aussi nachvollziehbar son, quoi il là justement tut.
j'ai déjà à une Possibilité mittels Trackmenü gedacht:
Pour Droit sur une Fenstertitelzeile ouvrez sich un Trackmenü avec qui Option comme verbotenes Programme définir.
maintenant beim écrivons fällt mir aussi encore quoi pour Drag and Drop un:
par cela Drücken qui rechten Bouton de la souris peux on (seulement) qui Titelzeile des Fensters jusque meinem Programme sur cela Editierfeld tirer et là enlever par cela Loslassen qui Bouton de la souris enlever.

cela wären déjà la fois deux Sachen, qui programmtechnisch entier simple trop lösen sommes. Gibt es weitere Opportunités? quoi ist einleuchtender et besser trop servir? Gibt es irgendwelche Probleme avec einem Droit dans qui Titelzeile eines Fensters (autre Menüs, qui sich ouvrir... etc.)?
 
16.07.2004  
 



quoi hältst en, simple alle Fenêtre-Titles qui seulement irgendwie auftauchen simple dans un list trop 1faire, et daraus auswählbar trop faire. dans qui List pourrait un Titel, quel Grade comme Activewin ist.

Pratiquement:

cas oldactivewindowtitle<>activewindowtitle : pushtolist activewindowtitle
 
16.07.2004  
 



allô IF...

si je toi là maintenant richtig verstanden habe, voulais ego eigentlich so simple aussi pas avons .
je hatte là plutôt à so quelque chose gedacht:
WINDOWTITLE "Fenstertitel dans Editbox ziehen"
Windowstyle 31
Fenêtre 0,0-640,400
Déclarer Cursor#,Curx&,Cury&,Windowhandle&,Windowhandle2&
Déclarer Fenstertitel$,EDIT&,EDITZähler&,TEST&,Test$
Déclarer Drop&,Breite&,Windowhandle3&
Def @GetAsyncKeyState(1) !"User32","GetAsyncKeyState"
Def @WindowFromPoint(2) !"User32", "WindowFromPoint"
Def @GetCursorPos(1) !"User32","GetCursorPos"
DEF ChildWindowFromPoint(3) !"User32","ChildWindowFromPoint"
Def ScreenToClient(2) !"User32","ScreenToClient"
@GetAsyncKeyState(2)
LET EDIT&=@createmultiedit(%HWND,»,10,10,300,300)

Tandis que @equ(0,0)

    IF @GetAsyncKeyState(2)<>0

        Faible Cursor#,8
        @GetCursorPos(Cursor#)
        let Curx&=long(Cursor#,0)
        let Cury&=long(Cursor#,4)
        LET Windowhandle&=@WindowFromPoint(Curx&,Cury&)
        LET Fenstertitel$=@GetText $(Windowhandle&)
        LET Breite&=@Width(Windowhandle&)

        Si Fenstertitel$<>»

            Windowstyle 16
            Laisser Drop&=@createwindow(%Desktop,Fenstertitel$,Curx&,Cury&,Breite&,0)
            SetWindowPos %HWND=0,0-640,400;-1

            Tandis que @GetAsyncKeyState(2)<>0

                @GetCursorPos(Cursor#)
                let Curx&=long(Cursor#,0)
                let Cury&=long(Cursor#,4)
                SetWindowPos Drop&=Curx&,Cury&-Breite&,0;-1
                @GetCursorPos(Cursor#)
                let Curx&=long(Cursor#,0)
                let Cury&=long(Cursor#,4)
                LET Windowhandle&=@WindowFromPoint(Curx&,Cury&)

                Si Windowhandle&<>0

                    @ScreenToClient(Windowhandle&,Cursor#)
                    LET Curx&=Long(Cursor#,0)
                    LET Cury&=Long(Cursor#,4)
                    LET Windowhandle3&=@ChildWindowFromPoint(Windowhandle&,Curx&,Cury&)
                    Cas Windowhandle3&<>0 : LET Windowhandle2&=Windowhandle3&

                EndIf

            Wend

            @GetCursorPos(Cursor#)
            let Curx&=long(Cursor#,0)
            let Cury&=long(Cursor#,4)
            LET Windowhandle&=@WindowFromPoint(Curx&,Cury&)

            Si Windowhandle&<>0

                @ScreenToClient(Windowhandle&,Cursor#)
                LET Curx&=Long(Cursor#,0)
                LET Cury&=Long(Cursor#,4)
                LET Windowhandle3&=@ChildWindowFromPoint(Windowhandle&,Curx&,Cury&)
                Cas Windowhandle3&<>0 : LET Windowhandle2&=Windowhandle3&

            EndIf

            IF Windowhandle2&=Edit&

                Usecursor 2
                Laisser EDITZähler&=0
                Clearlist
                ADDSTRING Fenstertitel$

                Tandis que EDITZähler&<@GetLineCount(Edit&)

                    ADDSTRING @Getline$(EDIT&,Editzähler&)
                    Laisser EDITZähler&=Editzähler&+1

                Wend

                @MoveListToEdit(Edit&)
                Usecursor 0
                setmenuitem 0
                @setfocus(%HWND)

            endif

            @destroywindow(Drop&)

        endif

        Dispose Cursor#
        SetWindowPos %HWND=0,0-640,400;1

    endif

Wend


... ou bien aussi so quoi:
WINDOWTITLE "Erfassen des Fenstertitels avec Trackmenü"
Windowstyle 31
Fenêtre 0,0-640,400
Déclarer Cursor#,Curx%,Cury%,Windowhandle&
Déclarer Fenstertitel$,EDIT&,EDITZähler&,TEST&,Test$
Def @GetAsyncKeyState(1) !"User32","GetAsyncKeyState"
Def @WindowFromPoint(2) !"User32", "WindowFromPoint"
Def @GetCursorPos(1) !"User32","GetCursorPos"
@GetAsyncKeyState(2)
LET EDIT&=@createmultiedit(%HWND,»,10,10,300,300)
CreateMenu
AppendMenu 433,"&Fenstertitel à Editbox senden"

Tandis que @equ(0,0)

    IF @GetAsyncKeyState(2)<>0

        Faible Cursor#,8
        @GetCursorPos(Cursor#)
        let Curx%=long(Cursor#,0)
        let Cury%=long(Cursor#,4)
        Dispose Cursor#
        LET Windowhandle&=@WindowFromPoint(Curx%,Cury%)
        LET Fenstertitel$=@GetText $(Windowhandle&)

        IF @neq$(Fenstertitel$,»)

            CreateMenu
            AppendMenu 433,"&Fenstertitel à Editbox senden"
            sleep 100
            TrackMenu Curx%-100,Cury%

            IF @MENUITEM(433)

                Usecursor 2
                Laisser EDITZähler&=0
                Clearlist
                ADDSTRING Fenstertitel$

                Tandis que EDITZähler&<@GetLineCount(Edit&)

                    ADDSTRING @Getline$(EDIT&,Editzähler&)
                    Laisser EDITZähler&=Editzähler&+1

                Wend

                @MoveListToEdit(Edit&)
                Usecursor 0
                setmenuitem 0
                @setfocus(%HWND)
                @GetAsyncKeyState(2)

            endif

        endif

    endif

Wend


... mais comment tu vois, ca sera tout pas so entier ideal. peux on là irgendwo encore quoi améliorer?
 
17.07.2004  
 



eh bien, je trouve folgende variante wohl am ehrlichsten, usé aussi pas 100%Rechenleistung, et habs la fois vite dahingepinselt:

 {$crq}
declare winlist$,wintit$,owintit$,vlb&,mov&,edit&,tmps$
windowtitle "Erfassen des Fenstertitels avec Trackmenü"
Windowstyle 31+512
Fenêtre 0,0-640,400
setwindowpos %hwnd=0,0 - 640,400;-1
EDIT&:=@createmultiedit(%HWND,»,10,10,300,300)
vlb&:=createsortedlistbox(%hwnd,»,350,10,sub(width(%hwnd),370),300)
mov&:=createbutton(%hwnd,"<",315,10,30,300)
winlist$:=»
owintit$:=»
wintit$:=»
settimer 333

repeat

    waitinput
    pushtolist gettext$(getactivewindow())

    si or(getfocus(vlb&),getfocus(mov&))

        tmps$:=getstring$(vlb&,getcursel(vlb&))

        si len(tmps$)

            enablewindow mov&,1

            si getfocus(mov&)

                settext edit&,gettext$(edit&)+tmps$+chr$(13)+chr$(10)
                setfocus(vlb&)

            endif

        d'autre

            enablewindow mov&,0

        endif

    d'autre

        enablewindow mov&,0

    endif

until %clé=2

killtimer
end

proc pushtolist

    parameters tx$
    wintit$=lower$($ Trim(tx$))

    si len(wintit$)

        si owintit$<>wintit$

            owintit$:=wintit$

            ifnot instr("°"+wintit$,winlist$)

                winlist$:=winlist$+"°"+wintit$
                addstring(vlb&,wintit$)

            endif

        endif

    endif

endproc

 
17.07.2004  
 



allô IF...

alors doch richtig verstanden...
cela sieht sur jeden le cas une ganze coin besser aus comme mon concept avec dem Trackmenü. là mon la fenêtre mais déjà assez vollgepackt ist, wirds là wohl pour cet Solution quelque chose trop eng volonté. je hab mich c'est pourquoi vorerst la fois pour den verschiebbaren Fenstertitel entschieden.
là cela Programme sowieso wohl seulement 2 Minuten am Stück fonctionne, et ca sans cela weitere aufwendige Programme courir, habe je qui Prozessorauslaustung seulement la fois sauf huit gelassen. quand même vielen Dank pour den Hinweis - wird peut-être doch encore important...
 
19.07.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.025 Views

Untitledvor 0 min.
Ernst22.04.2016
Jochen Roxlau03.10.2014
Michaeal18.10.2012
Julian Schmidt07.06.2011

Themeninformationen

cet Thema hat 1 participant:

unbekannt (7x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie