FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
ah Contraveneno se me olvidaba, el bloque de código no se cual es, porque es inmediatamente ejecuto la aplicacion que sucede esto!
gracias! |
#2
|
|||
|
|||
tiene pinta de una excepcion posiblemente por crear o grabar un archivo en alguna carpeta a la que en modo usuario limitado no se tenga acceso.
Si se escribe en registro de Windows tambien puede dar problemas... Esto son conjeturas...como dice contraveneno sin algo de código poco se puede afinar... |
#4
|
||||
|
||||
Deberías explicar qué acciones hace tu programa que puedan ser susceptibles de necesitar permisos de usuario. Escribir en el registro, escribir en determinados directorios, Copia, borrado,...
Puede ser que alguna de estas acciones falle y porteriormente se genere el erorr de memoria.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
el código inicial , lee registro y verifica si hay otra instancia corriendo.
Código:
#include <vcl.h> #pragma hdrstop #include "control.h" #include "presentacion.h" #include "varios.h" //--------------------------------------------------------------------------- USEFORM("videos.cpp", Form_Videos); USEFORM("source code\about\about.cpp", Form_about); USEFORM("control.cpp", Form_control); USEFORM("DBagenda.cpp", Form_DBagenda); USEFORM("entrada.cpp", Form_entrada); USEFORM("herramientas.cpp", Form_herramientas); USEFORM("imagenes.cpp", Form_Imagenes); USEFORM("Login.cpp", FormLogin); USEFORM("fondo.cpp", FormFondo); USEFORM("mensajes.cpp", FormMensajes); USEFORM("Frame_HistoriaLista.cpp", FrameHistoriaLista); /* TFrame: File Type */ USEFORMNS("C:\Archivos de programa\FastReport253\FastReport\source\FR_View.pas", Fr_view, frPreviewForm); USEFORMNS("C:\Archivos de programa\FastReport253\FastReport\source\fr_desgn.pas", Fr_desgn, frDesignerForm); USEFORM("encripcion.cpp", Form_Encripcion); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE OtraInstancia, LPSTR, int) { // PRIORIDAD ALTA A LA APLICACIÓN // SetPriorityClass (GetCurrentProcess(), REALTIME_PRIORITY_CLASS); // SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); LogAgregar(-1, 0, "Iniciando nueva sesion", TLogTipoInformacion); //REVISA SI YA HAY OTRA INSTANCIA DEL PROGRAMA CORRIENDO static char szMutexName[] = "MyMutexAplicacion"; // Use a unique name! WNDCLASS wc; HWND hwnd; MSG msg; HANDLE hMutex; hMutex = CreateMutex (NULL, FALSE, szMutexName); if ((hMutex != NULL) && (GetLastError () == ERROR_ALREADY_EXISTS)) { MessageBeep(MB_ICONQUESTION); LogAgregar(-1, 0, "Ya se ha iniciado otra sesión de Aplicacion", TLogTipoConfirmacion); int YaExiste=Application->MessageBox("Ya se ha iniciado otra sesión de Aplicacion\n\nSe recomienda cerrar esta sesion. Desea continuar abriendo esta sesion?", "Aplicacion", MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2); if(YaExiste==IDNO) { LogAgregar(-1, 0, "Cancelado el inicio de Aplicacion", TLogTipoInformacion); CloseHandle (hMutex); return -1; }else{ LogAgregar(-1, 0, "Iniciando doble sesión", TLogTipoInformacion); } } try { Application->Initialize(); Application->Title = "Aplicacion"; Application->HelpFile = "C:\\Application\\ayuda\\Aplicacion1.HLP"; Application->CreateForm(__classid(TForm_control), &Form_control); Application->CreateForm(__classid(TForm_presentacion), &Form_presentacion); Application->CreateForm(__classid(TFormMensajes), &FormMensajes); Application->CreateForm(__classid(TForm_about), &Form_about); Application->CreateForm(__classid(TForm_DBagenda), &Form_DBagenda); Application->CreateForm(__classid(TForm_herramientas), &Form_herramientas); Application->CreateForm(__classid(TForm_Imagenes), &Form_Imagenes); Application->CreateForm(__classid(TForm_entrada), &Form_entrada); Application->CreateForm(__classid(TFormFondo), &FormFondo); Application->CreateForm(__classid(TFormLogin), &FormLogin); Application->CreateForm(__classid(TForm_Encripcion), &Form_Encripcion); Application->Run(); // } } catch (Exception &exception) { LogAgregar(-1, 0, "Excepcion 1: "+exception.Message, TLogTipoError); Application->ShowException(&exception); Application->Terminate(); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { LogAgregar(-1, 0, "Excepcion 2: "+exception.Message, TLogTipoError); Application->ShowException(&exception); Application->Terminate(); } } return 0; } Última edición por JuanErasmo fecha: 27-03-2009 a las 14:24:32. |
#6
|
|||
|
|||
Hola y gracias,
Podrá ser la función utilizada para averiguar si esta corriendo otra instancia del mismo ejecutable??? De verdad, en usuario administrador me trabaja de maravilla, pero luego, " la aplicacion no se ha inicializado correctamente 0c0000000142" Gracias |
#7
|
|||
|
|||
Cuando le doy click derecho ejecutar como... y selecciono el administrador, si funciona bien,
se me ocurre entonces, crear un ejecutable que llame al programa principal, pero que por código, le pase los parámetros de "ejecutar como..." para que el usuario no tenga que conocer las contraseñas de administrador, sino que estas esten includias como parámetro de un ShellExecute o algo asi,,,,, es posible hacerlo??? Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Permisos de aplicacion Net | MaMu | .NET | 10 | 15-08-2008 13:56:30 |
Al compilar crea un ejecutable que solo funciona en mi PC, necesita instalacion?¿ | gerardorom | C++ Builder | 4 | 13-01-2008 13:09:26 |
Dar permisos a usuarios desde la aplicacion. | Gaim2205 | Conexión con bases de datos | 11 | 29-09-2007 14:32:35 |
La aplicacion no me funciona | ivanloco | Firebird e Interbase | 2 | 08-06-2007 20:33:26 |
Aplicación web no funciona.. | ElCherchu | Internet | 1 | 18-04-2006 01:54:50 |
|