Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mapers en 9 Junio 2010, 06:39 am



Título: programacion nivel medio
Publicado por: mapers en 9 Junio 2010, 06:39 am
disculpe la molestia quisiera saber si se puede abir la unidad de CD ,abrir documentos de textos , abrir ventanas todos esto desde el C++ y si es asi me pudieran dar una idea de eso ,me dijero que estudie el API de windows pero  hay no me indican nada de esto por favor si me pudieran dar una ayuda les agradeceria bastante   


Título: Re: programacion nivel medio
Publicado por: Shell Root en 9 Junio 2010, 06:49 am
Código
  1. /* Fichero: cd.c */
  2.  
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <windows.h>
  6.  
  7. void AbrirCD();
  8. void CerrarCD();
  9.  
  10. int main()
  11. {  
  12.    printf("Presione ENTER para abrir CD");
  13.    getchar();
  14.    printf("\nAbriendo CD...");
  15.    AbrirCD();
  16.  
  17.    printf("\n\nPresione ENTER para cerrar CD");
  18.    getchar();
  19.    printf("\nCerrando CD...\n\n");  
  20.    CerrarCD();
  21.  
  22.    system("PAUSE");
  23.  
  24.    return 0;
  25. }
  26.  
  27. void AbrirCD()
  28. {    
  29.     MCI_OPEN_PARMS mciParams;
  30.     DWORD dwFlags;
  31.     LPCTSTR szCharDrive = "D";
  32.  
  33.     memset(&mciParams, 0, sizeof(MCI_OPEN_PARMS));
  34.     mciParams.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
  35.     mciParams.lpstrElementName = szCharDrive;
  36.  
  37.     dwFlags= MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID;
  38.  
  39.     if (!mciSendCommand(0, MCI_OPEN, dwFlags, (DWORD) &mciParams))
  40.     {
  41.          mciSendCommand(mciParams.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN | MCI_WAIT, 0);
  42.          mciSendCommand(mciParams.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
  43.     }
  44. }
  45.  
  46. void CerrarCD()
  47. {
  48.     MCI_OPEN_PARMS mciParams;
  49.     DWORD dwFlags;
  50.     LPCTSTR szCharDrive = "D";
  51.  
  52.     memset(&mciParams, 0, sizeof(MCI_OPEN_PARMS));
  53.     mciParams.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
  54.     mciParams.lpstrElementName = szCharDrive;
  55.  
  56.     dwFlags= MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID;
  57.  
  58.     if (!mciSendCommand(0, MCI_OPEN, dwFlags, (DWORD) &mciParams))
  59.     {
  60.          mciSendCommand(mciParams.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED|MCI_WAIT,0);
  61.          mciSendCommand(mciParams.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
  62.     }
  63. }
:http://www.programacionenc.net/modules.php?name=Tutoriales&d_op=vertuto&lid=38


Título: Re: programacion nivel medio
Publicado por: Eternal Idol en 9 Junio 2010, 11:03 am
http://msdn.microsoft.com

Para expulsar la bandeja podes usar: IOCTL_STORAGE_EJECT_MEDIA.

Para abrir documentos de texto no necesitas la API de Windows pero podes usar CreateFile, ReadFile, WriteFile, CloseHandle, etc..

Para ventanas consulta CreateWindow/Ex.


Título: Re: programacion nivel medio
Publicado por: Riki_89D en 9 Junio 2010, 20:21 pm
Para expusar la bandeja del CD no hay mas que hacer lo siguiente:
Código
  1. mciSendString("Set cdaudio door open wait",0,0,0);
  2.  

incluye la libreria mmsystem o winmm (dependiendo del IDE) yo uso Dev-C++ alli es winmm


Abrir Documentos puedes usar ReadFile o ifstream (este no viene del API),en fin todo lo que pides creo que con la API de  Windows puedes hacerlo i de sobras
un saludo


Título: Re: programacion nivel medio
Publicado por: mapers en 10 Junio 2010, 02:42 am
y todo esto donde lo puedo estudiar o donde lo podria encontrar para leerlo a mas profundidad  ..............................


Título: Re: programacion nivel medio
Publicado por: leogtz en 10 Junio 2010, 03:05 am
y todo esto donde lo puedo estudiar o donde lo podria encontrar para leerlo a mas profundidad  ..............................
http://msdn.microsoft.com



Título: Re: programacion nivel medio
Publicado por: Riki_89D en 10 Junio 2010, 21:50 pm
Como te han dicho debes leerte la MSDN,pero bueno yo tengo un buen manual que explica la base de la API con ejemplos sencillos de entender,si lo quieres pidemelo


un sld