Salut à tous
Je voudrais savoir comment on fait pour Réduire la fenêtre d'un fichier.exe en ligne de commande (genre iconise() mais avec un fichier externe)
par avance merci
Salut à tous
Je voudrais savoir comment on fait pour Réduire la fenêtre d'un fichier.exe en ligne de commande (genre iconise() mais avec un fichier externe)
par avance merci
Tu dois récupérer le handle de cette appli. Regarde du côté de l'API EnumDesktopWindows. Tu dois utiliser cette API car le nom de l'exécutable n'est pas forcément le nom de la fenêtre ouverte. Par exemple : calc.exe -> calculatrice, notepad.exe -> Bloc-notes.
Ensuite, tu utilises :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SysFenAffiche(HandleApplication,sfaMinimise)
Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
Hello,
l'exécutable est lancé avec lanceappli?
Si oui, fonction en parametre 'exeiconise'... et voir si tu veux que l'exe lancé bloque ton programme ou pas... auquel cas, utiliser le troisième parametre de la fonction 'exebloquant', etc....
le savoir est dans les livres, 'the magic touch F1'
Amicalement
Eric
Merci pour vos réponses
Effectivement, l'application est lancé via lanceAppli
le problème c'est qu'il est toujours visible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part LanceAppli(c:\Lancement\"WX150PACKHFSQLCS.exe /SILENT /PILOT="+sRepIni,exeActif,exeBloquant)
Je vais tenter de voir du coté de l'API EnumDesktopWindows
la touche est ton amie. l'aide ne mord pas quand on la consulte...
PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)
Pensez à utiliser les votes et à cliquer sur , merci
Oui, Je vois où tu veux en venir, mais ce que je voulais dire c'est que quel que soit le paramètre que je mets à cette place (exeActif, exeMaximise, exeInactif ou encore exeIconise) ça donne toujours le même résultat.
C'est peut être à cause du type de l'exécutable (auto-extractible)
Hello,
Bon, tu veux installer le pack HFCS au prime abord...
Et tu le fais à chaque fois que tu délivres l'installation?
Je souhaiterais avoir plus d'info sur le sujet, le pourquoi du comment...
Là, il me manque quelques infos pour te répondre au plus près de tes demandes...
Plus tu donneras d'infos, plus précises seront nos réponses....
le savoir est dans les livres, 'the magic touch F1'
Amicalement
Eric
Oui
comme tu l'as dit, je veux que le serveur s'installe automatiquement avec lanceAppli et à l'aide d'un fichier ini (oui mais seulement quand le client le veut).
voici la syntaxe :
et voici le contenu de mon "InstCS.ini"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SI INILit("POSTE","TypPoste","",fRepExe()+["\"]+"IniPrincipal.ini")="Serveur" ALORS sRepIni est une chaîne = fRepExe()+["\"]+"InstCS.ini" SI OuiNon(Non,"Si vous cliquer oui, une installation de serveur seffectuera autoamtiquement","","Cliquer NON si le serveur Hyperfile est déjà installé") ALORS SI PAS LanceAppli("C:\lancement\WX150PACKHFSQLCS.exe /SILENT /PILOT="+sRepIni,exeActif,exeBloquant) ALORS Erreur(ErreurInfo()) FIN FIN
Voilà, s'il en manque encore, je prie de le signaler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [PILOTAGE] Plateforme=1 MAJ=2 CCHF=1 [SERVEUR] Serveur=Portable1 Port=4900 Repertoire=E:\MonAppli [MACHINE] Nom=Portable1
Merci
une précision: Je veux une installation silencieuse mais je croix que /SILENT non plus ne marche pas.
Question : avec ma méthode (récupération du handle), tu as essayé ?
Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
bien sur, j'y travail en ce moment
le problème c'est que j'arrive à récupérer le PID en non le handle
En utilisant SysFenHandle() je ne sais pas quoi mettre comme paramètre, j'ai utilisé le nom du processus mais cela ne fonctionne pas (ni le titre de la fenêtre d'ailleurs).
Pour récupérer le pid J'utilise :
Si vous pouvez m'aider à récupérer le handle à partir de ce pid...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 cExeCherché est une chaîne = "Pack.exe" cLProcess est une chaîne cProcess est une chaîne nPid est un entier = 0 // récupèrer la liste des processus cLProcess = ExeListeProcessus(exeNomCourt,exePID) Trace(cLProcess) POUR TOUTE CHAINE cProcess DE cLProcess SEPAREE PAR RC SI ExtraitChaîne(cProcess,1,TAB) ~= cExeCherché ALORS nPid = ExtraitChaîne(cProcess,2,TAB);Info(nPid) FIN
Le code d'appel pour trouver ton appliLa procédure qui va énumérer toutes les fenêtres "ouvertes".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Recherche du nom de l'appli -> si pas trouvée, on sort gsNomAppliTrouvee = "" // variable globale sApplicationAtrouver = "Titre fenêtre" AppelDLL32 ("User32", "EnumDesktopWindows" , Null, &API_EnumerationFenêtres, sApplicationAtrouver ) SI gsNomAppliTrouvee = "" ALORS RETOUR FIN // Handle de la fenêtre hWnd = SysFenHandle(gsNomAppliTrouvee) nResFocus = SysFenAffiche(hWnd ,sfaMinimise)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 PROCEDURE API_EnumerationFenêtres(nHwnd est un entier, TitreApplication est une chaîne) sTitreFenetre est une chaîne // Récupération du titre de la fenêtre sTitreFenetre = SysFenTitre(nHwnd) SI (Position(Majuscule(sTitreFenetre),Majuscule(TitreApplication)) <> 0) ALORS gsNomAppliTrouvee = sTitreFenetre FIN RENVOYER Vrai
Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.
Sur internet, tout est vrai ! Honoré de Balzac
Make it real not fantasy... Herman Rarebell
Mille mercis pour vos aides
Ca fonctionne bien maintenant
Bonsoir Frenchsting,
Je suis débutant en Windev et je cherche à pouvoir maximiser un exe externe (non windev) a mon appli. J'ai bien lu les posts de ce sujet et tenté d'utiliser votre code mais je n'arrive pas à l'utiliser.
Je souhaiterai pouvoir maximiser un exe externe sur clic d'un bouton de mon appli windev.
Pouvez vous m"expliquer en détail comment fonctionne votre code?
Cordialement.
Yanick Lusson
Re Bonsoir,
J'ai essayer de voir simple et ce que je veux faire fonctionne tout simplement avec:
Autant pour moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 hwnd est un entier = SysFenHandle("TOTO") nResFocus est un entier = SysFenAffiche(hwnd ,sfaMaximise)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager