Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Nombre de la aplicacion

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Nombre de la aplicacion Responder citando

Hola amigos,

¿Cómo se puede saber el nombre y ruta de una aplicación que se está ejecutando y que no tiene formularios? Lo de los formularios lo digo porque no me vale Application->ExeName

Estoy usando el WinMain... ¿alguno de sus parametros indica el nombre de la aplicación?
Código:

int WINAPI WinMain (HINSTANCE hThisInstance,
               HINSTANCE hPrevInstance,
               LPSTR lpszArgument,
               int nFunsterStil)


Muchas graciasssss
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Usando la siguiente funcion del API de windows puedes encontrar si tu aplicacion se encuentra ejecutandose, la funcion en si
se denomina AppInstaceExists

Código:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance;
   // Check if another application instance is already running
   if ( AppInstanceExists() == TRUE )
   {
      HWND hWndOtherInstance;
      hWndOtherInstance = FindWindow(szWindowClass, szTitle);
      if ( hWndOtherInstance != (HWND)NULL )
      {
         // Application is running in current user's session
         if (IsIconic(hWndOtherInstance))
            ShowWindow(hWndOtherInstance, SW_RESTORE);
         SetForegroundWindow(hWndOtherInstance);
      }
      else
      {
         MessageBox(NULL, TEXT(
         "An instance of this app is running in another user's session"),
         szTitle, MB_OK);
      }
      return FALSE;
   }
   hWnd =  CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL,
                          hInstance, NULL );
   if (!hWnd)
      return FALSE;

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);
   WTSRegisterSessionNotification(hWnd, NOTIFY_FOR_THIS_SESSION);
   return TRUE;
}


En este enlace del soporte de Microsoft puede encontrar la respuesta
http://support.microsoft.com/kb/310153
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Muchas gracias César, pero lo que yo quiero es algo más sencillo... y que no lo encuentro por ningún lado Sad

Lo único que me hace falta es saber cual es el nombre del fichero de mi aplicación y la ruta absoluta donde está.

Rolling Eyes
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

No entiendo. Si te refieres al nombre y ruta del ejecutable tienes las funciones ExtractFilePath y ExtractFileName:
Código:
AnsiString RutaAbsoluta = ExtractFilePath(Application->ExeName);
AnsiString NombreEjecutable = Application->ExeName

Si te refieres a otra cosa tendrás que explicarlo mejor.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

ya lo encontreeeeeee

__argv[0] contiene la ruta absoluta y el nombre de la aplicación.

Ahí va un ejemplo:
Código:

MessageBox( NULL, __argv[0], "__argv[0]", MB_OK );


Si se saben otras formas de hacerlo,por ejemplo que ya venga separado lo que es la ruta del nombre de la aplicación díganmelo y así me ahorro unas líneas de código Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Angel por tu respuesta, lo que pasaba es que no puedo utilizar Application->ExeName porque no estoy usando la librería Forms.

No obstante gracias por lo de "ExtractFilePath". No me acordaba de esa función, la utilicé hace mucho tiempo cuando programaba en c++. Luego lo dejé para pasarme al mundillo de Java pero ahora ya he vuelto por estos lugares.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.