IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment ouvrir et/ou fermer le tiroir CD ?
auteur : Geronimo
Utilisez pour cela la commande suivante :
mciSendString("Set cdaudio door open wait", 0, 0, 0);
Attention, respectez bien la chaine de commande. Pour fermer le tiroir CD, utilisez la même fonction avec une chaine de commande différente :
mciSendString("Set cdaudio door closed wait", 0, 0, 0);

Comment connaître l'état des touches de verrouillage (NumLock, Capslock, ScrollLock)
auteur : Geronimo
Tout d'abord, dans le constructeur de votre fiche, placez le code suivant :
			KeyPreview = true;
			
En effet, lorsqu'un événement clavier a lieu, il est normalement récupéré par le contrôle actif (par exemple, la zone d'édition qui a le focus). La fiche ne reçoit pas d'événement clavier ; en revanche, si vous positionnez KeyPreview à true, la fiche recevra tous les événements clavier avant que les contrôles ne les reçoivent. Dans le constructeur, rajoutez ensuite le code suivant :
 switch(GetKeyState(VK_CAPITAL)1){
 case 0 : StatusBar1->Panels->Items[0]->Text=""; break;
 case 1 : StatusBar1->Panels->Items[0]->Text="CAP"; break;
 } 
 switch(GetKeyState(VK_NUMLOCK)1){
 case 0 : StatusBar1->Panels->Items[1]->Text=""; break;
 case 1 : StatusBar1->Panels->Items[1]->Text="NUM"; break;
 } 
 switch(GetKeyState(VK_SCROLL)1){ 
 case 0 : StatusBar1->Panels->Items[2]->Text=""; break;
 case 1 : StatusBar1->Panels->Items[2]->Text="SCROLL"; break; 
 } 
 
Nous supposons dans ce code que vous souhaitez afficher la valeur du vérouillage dans les premier, second et troisième panneaux de la barre d'état. Pensez donc à rajouter une telle barre en lui ajoutant au moins trois panneaux. Ce code ne présente pas vraiment de difficulté : GetKeyState permet de savoir si une touche est enfoncée. Pour ces touches spéciales, le bit de poids le plus faible indique si le vérouillage est actif, en plus de savoir si la touche est enfoncée, d'où le GetKeyState(VK_SCROLL) qui permet d'obtenir cette valeur pour chaque touche. Lorsque notre programme démarre, les bons vérouillages seront affichés dans la barre d'état.

Nous allons maintenant écrire le gestionnaire d'événement OnKeyDown de la fiche, pour gérer l'appui sur l'une de ces touches :
void __fastcall TForm1::OnKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) 
 { 
 switch(Key)
 { 
 	case VK_CAPITAL : 
 		switch(GetKeyState(VK_CAPITAL)1)
		{
 			case 0 : StatusBar1->Panels->Items[0]->Text=""; break; 
 			case 1 : StatusBar1->Panels->Items[0]->Text="CAP"; break;
 		} 
 	case VK_NUMLOCK : 
 		switch(GetKeyState(VK_NUMLOCK)1)
		{
 			case 0 : StatusBar1->Panels->Items[1]->Text=""; break; 
 			case 1 : StatusBar1->Panels->Items[1]->Text="NUM"; break;
 		} 
 	case VK_SCROLL : 
 		switch(GetKeyState(VK_SCROLL)1)
		{
 			case 0 : StatusBar1->Panels->Items[2]->Text=""; break; 
 			case 1 : StatusBar1->Panels->Items[2]->Text="SCROLL"; break; 
 		}
 }
 } 	 
Le code est très aisémment compréhensible : on regarde sur quelle touche l'utilisateur a appuyé grâce à un premier switch et selon la touche, on effectue exactement le même test que dans le constructeur.

Comment produire un son système Windows ?
auteur : Geronimo
Pour produire un son système Windows, il faut utiliser la fonction MessageBeep. Cette fonction prend une constante en argument qui précise de type de son à produire. Voici tout d'abord un exemple simple d'utilisation :
MessageBeep(MB_OK);
Avec ce code, les hauts-parleurs produiront le son système par défaut. Ces sons peuvent être MB_ICONASTERISK , MB_ICONEXCLAMATION , MB_ICONHAND , MB_ICONQUESTION et MB_OK .

Comment gérer le clavier et la souris au travers de l'API Windows ?
auteur : Geronimo
Consultez ce tutoriel : http://tcharles.developpez.com/simul/

Comment connaître la position de la souris ?
auteur : Geronimo
Pour cela, il faut utiliser la fonction GetCursorPos auquel on passe en paramètre l'adresse d'une instance d'une classe TPoint. Une classe TPoint permet tout simplement d'identifier un point de l'espace en deux dimensions par une abscisse et une ordonnée.
TPoint *Position = new TPoint; 
GetCursorPos(Position); 
Label1->Caption = IntToStr(Position->x);
Label2->Caption = IntToStr(Position->y);
delete Position;
NB : cet exemple nécessite deux composants Label.

Comment piloter des ports d'entrée et de sortie ?
auteur : Geronimo

Comment piloter le port parallèle ?
auteur : Geronimo

Comment mettre en veille le moniteur ?
auteur : Geronimo
Utilisez la fonction SendMessage avec les paramètres appropriés :
SendMessage(Application->Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1);

Comment afficher le Réglage du volume Windows ?
auteur : Geronimo
Il suffit tout simplement de lancer le programme correspondant :
ShellExecute(0, "open", "sndvol32.exe", 0, 0, SW_SHOW);

Comment savoir s'il y a une disquette dans le lecteur ?
auteur : Geronimo
La fonction DiskSize permet de connaître la taille d'une disquette. Cependant, si la fonction échoue en ne trouvant pas de disque dans le lecteur, elle retourne -1. Il suffit donc d'utiliser cette fonction.
 if (DiskSize(1) > -1)
  	ShowMessage("Une disquette est dans le lecteur") 
 else 
 	ShowMessage("Aucune disquette n'est dans le lecteur");