Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Jue 11 Ago, 2011 6:58 pm Asunto: CreateMutex y una manera fea de programa |
|
|
CreateMutex y una manera fea de programa
De la Fuente, no puedo acceder al OnClick de un TTooButton (en un TTollBar):
| Código: |
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
// Attempt to create a mutex. If the mutex already existed,
// GetLastError will return ERROR_ALREADY_EXISTS
HANDLE PrevInstHandle;
HANDLE hInstanceMutex = ::CreateMutex(NULL,TRUE, Application->Title.c_str());
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
{ ... }
HWND pWnd = FindWindow("TForm1", "Form1");
HWND hTol=FindWindowEx(pWnd,0,"TToolbar",NULL);
HWND hBut=FindWindowEx(hTol,0,"TBBUTTON","Fechar");
PostMessage(hBut, BM_CLICK, NULL, NULL);
{ ... }
|
Así que creé un TButton para llamar el OnClick de TToolButton::
| Código: |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ToolButton1Click(Sender);
{ ... }
|
A continuación, llame OnClick del TButton:
| Código: |
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
// Attempt to create a mutex. If the mutex already existed,
// GetLastError will return ERROR_ALREADY_EXISTS
HANDLE PrevInstHandle;
HANDLE hInstanceMutex = ::CreateMutex(NULL,TRUE, Application->Title.c_str());
if(GetLastError() == ERROR_ALREADY_EXISTS)
{
{ ... }
HWND pWnd = FindWindow("TForm1", "Form1");
HWND hBut=FindWindowEx(pWnd,NULL,"TButton","Button1paraToolButton1");
PostMessage(hBut, BM_CLICK, NULL, NULL);
{ ... }
|
Tampoco puedo pasar una cadena en una llamada a función::
| Código: |
HANDLE hInstanceMutex = ::CreateMutex(NULL,TRUE, Application->Title.c_str());
{ ... }
Form1->geraPaginas((AnsiString)ParamStr(1));
|
otra solución fea:
| Código: |
HANDLE hInstanceMutex = ::CreateMutex(NULL,TRUE, Application->Title.c_str());
{ ... }
const int size=ParamStr(1).Length();
char* Buffer = new char[size+1];
strcpy (Buffer, ParamStr(1).c_str());
HWND hEdt=FindWindowEx(pWnd,NULL,"TEdit",0);
SendMessage(hEdt, WM_SETTEXT, size, (LPARAM)Buffer);
|
no cpp:
| Código: |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ToolButton1Click(Sender);
Form1->geraPaginas(Edit1->Text);
|
¿Cómo puedo hacer esto de una forma menos fea?
gracias |
|