Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Deplacer les fenetres d'autres applications [ Windows / Process ] (Djzlouk)

mardi 31 juillet 2007 à 15:29:37 | Deplacer les fenetres d'autres applications

Djzlouk

Bonjour,

Depuis quelque jour j'essai de trouver comment deplacer des fenetres ouvertes depuis une petite application VB6.
Pour cela je récupere les process en cours, et j'ai comme ca le nom de chaque fenetre lancé.

C'est la que le souci arrive, selon l'application j'aimerais effectué un traitement pour mettre tel ou tel fenetre à tel ou tel endroit.
Je ne sais pas du tout dans quel domaine chercher, pour controler une application.

1) Es que quelqu'un peut me mettre sur le voie ?

2) Si j'ai 2 ecrans, comment je peux lui dire de mettre mon appli sur le 2eme ecran ?

merci de me lancer sur une ou des solutions possibles...


jeudi 2 août 2007 à 10:32:04 | Re : Deplacer les fenetres d'autres applications

FLLM

Absolument aucune idée : //
Mais c'est extrêment interessant comme question. Si tu trouves n'hésite pas à partager la réponse.

Merci à toi


Sauvez un enfant !
Mangez un pc...


mardi 7 août 2007 à 17:23:58 | Re : Deplacer les fenetres d'autres applications

Djzlouk

Voilà, j'ai trouvé un bon petit début :

 

Etape 1 - Chercher les différents process en cour

 

Public Declare Function EnumWindows& Lib "user32" (ByVal lpEnumFunc As Long, _

        ByVal lParam As Long)

Public Declare Function GetWindowText Lib "user32" _

        Alias "GetWindowTextA" (ByVal hwnd As Long, _

        ByVal lpString As String, _

        ByVal cch As Long) As Long

 

Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

       

Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wFlag As Long) As Long

Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Public Declare Function GetDesktopWindow Lib "user32" () As Long

Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

 

' GetWindow() Constants

Const GW_HWNDFIRST = 0

Const GW_HWNDLAST = 1

Const GW_HWNDNEXT = 2

Const GW_HWNDPREV = 3

Const GW_OWNER = 4

Const GW_CHILD = 5

Const GW_MAX = 5

 

' SetWindowPos Flags

Const SWP_NOSIZE = &H1

Const SWP_NOMOVE = &H2

Const SWP_NOZORDER = &H4

Const SWP_NOREDRAW = &H8

Const SWP_NOACTIVATE = &H10

Const SWP_FRAMECHANGED = &H20        '  The frame changed: send WM_NCCALCSIZE

Const SWP_SHOWWINDOW = &H40

Const SWP_HIDEWINDOW = &H80

Const SWP_NOCOPYBITS = &H100

Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering

 

' SetWindowPos() hwndInsertAfter values

Const HWND_TOP = 0

Const HWND_BOTTOM = 1

Const HWND_TOPMOST = -1

Const HWND_NOTOPMOST = -2

 

 

       

Public Sub GetWinHandles()

    ' permet de connaitre toutes les applications en cours

    Dim lonstatus As Long

    Dim londummy As Long

    iWnd = 0&

    lonstatus = EnumWindows&(AddressOf EnumWindowsproc, ByVal iWnd)

end sub

 

Function EnumWindowsproc(ByVal addhWnd As Long, ByVal optparam As Long) As Long

 

    ' extrait les proccess en cours

    Dim st As String

    Dim cc As Long

    Dim X As Long

    Dim Y

    Dim z As Long

    Dim sclass As String

    sclass = String(250, " ")

    Y = addhWnd

    cc = 250

    st = Space(250)

    X = GetWindowText(addhWnd&, st, cc)

    If Asc(Left(st, 1)) > 0 Then

        If iWnd > 0 Then

            ReDim Preserve atabwhnd(iWnd)

            ReDim Preserve atabwhnd1(iWnd)

            ReDim Preserve atabwhnd2(iWnd)

        Else

            ReDim Preserve atabwhnd(1)

            ReDim Preserve atabwhnd1(1)

            ReDim Preserve atabwhnd2(1)

            iWnd = 1

        End If

        z = GetClassName(addhWnd&, sclass, 250)

        atabwhnd(iWnd) = Left(st, X)

        atabwhnd1(iWnd) = addhWnd&

        atabwhnd2(iWnd) = Left(sclass, z)

        'MsgBox atabwhnd(iWnd) ' & " " & atabwhnd1(iWnd) & " " & atabwhnd2(iWnd)

       

         Variable_du_process = atabwhnd1(iWnd)

       

        iWnd = iWnd + 1

       

    End If

    EnumWindowsproc = True

End Function

 

Etape 2 - Déplacer les fenetres :p

 

SetWindowPos NuméroProcess, HWND_TOP, Pos X, Pos Y, Largeur, hauteur, SWP_SHOWWINDOW






J'espere que ca en aidra d'autre que moi :p 
M'enfin ~~

 

 

 




Cette discussion est classé dans : application, fenetre, applications, fenetres, deplacer


Répondre à ce message

Sujets en rapport avec ce message

Affichage d'une fenetre ds toutes les applications URGENT [ par Serge ] Je conçoi une application pour convertir du html en php.je souhaite qu'un des écran de mon appli reste en permanance en surimpression à l'écran, qq so recup des infos d'1 fenetre d'une autre application [ par FREDDY ] Bonjour, J'essaye deseperement de recuperer sous visual basic 6 des informations qui défilent dans une fenetre d'un logiciel qui tourne sous window Une form affichée quoi qu'il arrive [ par bcip ] Je souhaite que, lorsque mon application tourne, l'une de mes form s'affiche au-dessus de TOUTES les applications qui sont ou vont être lançées. C'est deplacer hors de l'ecran ou rendre invisible une fenetre NON VB [ par schmurtz ] Bon voilà en fait apres avoir lancé le programme "shutdown" de XP j'aimerais le faire disparaitre car il reste au premier plan devant les autres appli Ouvrir une autre application dans une fenetre vb !! [ par mattheus ] Hello !!Je souhaiterais ouvrir une autre application *.exe dans une form .Je sais comment l'ouvrir avec la commande SHELLmais je sais pas l'integrer d ControlBox [ par Charlie ] Allo... j'ai une fenetre avec le petit X dans le coin supérieur droite de la fenetre (controlbox). J'aimerais que lorsqu'on clique sur le X, pouvoir i Echange de données entre deux applications [ par invite64 ] Bonjour à tous,Je chreche comment recuperer en aps ou VB des données XML envoyer (Methode post) par une autre application.Bref:J'ai une application FL Je craqueeee !!!!! [ par Kywalh ] Salut,Comment fait-on pour rendre tout le temps visibles au premier plan des fenetres Child d'une appli... G un prog MDI avec une fenetre princ Lancer une application en plein ecran [ par bbernard ] Bonjour,Je suis debutant dans ce domaine et je m'entraine en creant de petite application pour mon confort et j'ai besoin d'un peu d'aide.J'ai creer u Déplacement d'une application [ par Zeroc00l ] Salut tout le monde merci de lire mon probleme Comment puis je faire pour que grace a MON application, je fasse bouger la fenetre d'une AUTRE applicat


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.