Détecter fenêtre ouverte ? [Résolu]

Signaler
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
-
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
-
Je vous explique avant tout pourquoi j'ai un problème.

Je me suis acheté un kit 5.1.
Quand celui-ci est réglé dans le panneau de configuration en 6 Baffles,

je n'ai plus de micro ce qui est logique.

Et quand je suis en 4 baffles, mon micro fonctionne parfaitement.

Je me suis acheté donc deux déboubleurs pour prises jack une pour le son

dans le casque et dans les baffles, et l'autre pour le micro OU la

baffle du milieu + le subwoofer.

J'ai donc crée un petit programme me permettant d'automatiser la tâche pour passer de 4 baffles à 6 baffles ou inversement,

il lance la fenêtre et simule des clics à des endroits bien précis.

Mais malheureusement vu que j'étais préssé j'ai du faire cela avec un

sleep(5000) pour être sur d'afficher la fenêtre, mais parfois c'est trop

long parfois c'est trop court, je chercher donc à pouvoir detecter cela

par ce style de commande :

procedure TMainForm.Button1Click(Sender: TObject);
  begin
   WinExec(PChar('rundll32.exe shell32.dll,Control_RunDLL TIMEDATE.CPL'), SW_SHOWNORMAL);
  end;

procedure TMainForm.Button2Click(Sender: TObject);
  begin
    If FindWindow('rundll32',nil)<>0 Then Label2.Caption := 'En route'
    else Label2.Caption := 'Non Lancé';
  end;

Mais je bloque pour trouver le nom exact quand la fenêtre est lancée.

Si j'arrive à trouvé comment faire pour détecter le panneau de l'horloge je trouverais pour mon panneau (en effet tout le monde n'ayant pas la même carte mère j'ai préféré utiliser quelque chose que tout le monde avait dans le panneau de configuration).

Merci d'avance

10 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
mets plutot :
<small>if FindWindow(nil,'Propriétés de Date et Heure') </small><> 0 then ShowMessage('OK');
ça marche direct je viens de tester =)

Mon site DELPHI =)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
A mon avis, tu as un soucis de configuration de ton matériel car j'ai aussi du 5.1 et ... mon micro fonctionne aussi en meme temps Oo je ne vois pas pourquoi il ne serait pas en fonction si j'ai un 5.1 soyons logiques... Ton micro est branché derriere ton PC que tu ai du 2.0, du 5.1 ou du 7.1, aucun rapport vois tu ? cherche plutot du coté de tes réglages sons windows plutot que te galérer avec un programme qui fait que quand tu veux faire fonctionner ton micro tu ne puisses pas profiter du 5.1 ...

Mon site DELPHI =)
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
1
Non je sais ce que je dis et je ne suis pas le seul dans ce cas là.
Bien au contraire c'est tout à fait logique !
En efeft pour avoir la baffle du milieu ainsi qu'un bon réglage du subwoofer, il faut brancher sur son PC les 3 connectiques pour un kit 5.1, donc ceci enlève le micro, même avec un dédoubleur de prises jack, je te conseille toi de regarder si toutes tes baffles foncitonnent correctement, je me suis déjà renseigné sur un forum spécialisé en hardware et son et ils m'ont bien dit qu'en effet je ne pouvais pas contrer ce problème ce qui était normal, qui plus est en rajoutant une carte son cela n'y ferait rien car Windows ne gère pas deux cartes son en même temps.
Donc je te confirme que ce que j'ai dit auparavant est correct.

Mais peu importe je pense pourquoi je fais cela, serais-tu capable de me dire comment faire toi ?

@+
Messages postés
3815
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
4 août 2020
35
Salut,
je confirme ce que dit Also Know as en tout cas chez moi ça fonctionne pareil et c'était même précisé dans la petite notice qui accompagnait la machine

@ JulioDelphi : Mais maintenant une chose me taquine :

si chez moi je désire brancher un système 7.1 plus un micro je n'ai pas assez de fiche
et de toutes les manières l'entrée micro se transforme en une sortie HP (en passant en 7.1)

est ce que peut être tu as une carte son autre que celle de la carte mère

@+
Cirec
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
1
En fait je pense que JulioDelphi utilise un ampli et le branche ensuite seulement sur ton PC, parceque apparemment lui n'utilise pas toutes les connectiques derrière son ordinateur, donc il doit forcément utiliser un autre moyen.

Mais PLEASE, quelqu'un peut m'aider pour mon problème ?
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
pour ton probleme, ton code est bon, je propose de le faire tourner dans un timer réglé sur 500ms, donc 2fois/seconde il vérifie si cette fenetre est ouverte, dans le cas ou il la trouve, stop le timer.
un peu barbare mais je ne pense pas qu'il y ai 36 solutions.
tiens nous au courant

Mon site DELPHI =)
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
1
Si justement je pose la question c'est que non cela n'est pas correct mais je ne sais pas d'ou vient mon erreur.

Je souhaite utiliser un timer justement pour détecter si la fenêtre est ouverte si oui je souhaite qu'il m'affiche, pour test, le message OK.
J'ai fait ceci :

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if FindWindow('rundll32',nil)<>0 then ShowMessage('OK');
end;

mais cela ne fonctionne pas j'ai beau lancer cette fenêtre il me jette et je ne comprend pas pourquoi.

Pour lancer la fenêtre j'utilise cetet commande :

WinExec(PChar('rundll32.exe shell32.dll,Control_RunDLL TIMEDATE.CPL'), SW_SHOWNORMAL);

Voilà !
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
<small> if FindWindow('rundll32','Propriétés de Date et Heure') </small>
<> 0 then ShowMessage('OK');

car

FindWindow(lpClassName: PAnsiChar,lpWindowsName: PAnsiChar);

plutot ça non ?


<small>


</small>






Mon site DELPHI =)
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
1
Merci poru ton aide en effet ta source est mieux MAIS ce n'est toujours pas bon, en effet il se refuse toujours à m'afficher le message "OK".

J'ai aussi changé la phrase car c'était heure avec un h minuscule mais cela ne change strictement rien, je comprend de moins en moins ce qui se passe...

J'ai essayé de modifié le rundll32 en mettant rundll32.exe, ou autre mais bon rien n'y fait...
Messages postés
269
Date d'inscription
samedi 13 décembre 2003
Statut
Membre
Dernière intervention
22 novembre 2010
1
Yeah bobi ^^

Merci beacoup !
Je vais enfin pouvoir terminer mon programme :)

@+