Jump to content
Fivewin Brasil

como tavar abertura


flpcrz

Recommended Posts

citação:

pessoal, descobri que o programa pode abrir mais de uma cópia no mesmo micro como travar para que abra somente uma vez...

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev


id=quote>id=quote>

Felipe:

IF IsExeRunning( "Pbtmk32.Exe" )

MsgStop( "Este programa já está aberto neste computador!", "Impossível Continuar!" )

RETURN(.F.)

ENDIF

Abraços.

Beto

Msn: betovsp@hotmail.com

Skype: betovsp

Alternativo: betovsp@terra.com.br

CL53B + FW2.0d + @ SAY/GET + BLINKER 7

Ribeirão Preto/SP

Link to comment
Share on other sites

flw beto, foi o que eu fiz

IF(IsExeRunning("meuprogram.exe") )

MsgStop("O programa já se encontra aberto","Atenção!!!")

Return(.f.)

EndIf

agora não estou conseguindo fazer com que mostre a tela novamenete e nem que o botão na barra de tarefas fique piscando, tem como?

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev

Editado por - flpcrz on 17/01/2007 12:16:10

Link to comment
Share on other sites

Faço assim:

......

.......

cTitulo:= "Programa Tal" ( titulo exato usado no progama)

oWnd:=FindWindow( 0, cTitulo )

if oWnd!=0

MsgAlert("O programa já se encontra aberto.","Atenção!!!")

BringWindowToTop( oWnd )

Return(.f.)

endif

..........

........

DEFINE WINDOW oWnd ;

TITLE cTitulo ICON oIcon ;

MENU BuildMenu()

........

........

Ricardo

FW2.4 - WS

Link to comment
Share on other sites

opa, vlw pessoal, mas não deu certo

Ricardo Marques, não funcionou o set mutiple

Ricardo funcionou mas da mesma forma que IsExeRunning()

ainda continuo sem enteder???? não tem como subir a tela novamente?

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev

Link to comment
Share on other sites

- Vc está rodando o sistema sobre qual plataforma?

WINXPSP2

- Dá pra enviar um pedaço do código pra gente analizar?

SET(4,"dd/mm/yyyy")

SET DELETED ON

SET EPOCH TO 1930

SET EXCLUSIVE OFF

SET 3DLOOK ON

IF(IsExeRunning("SIG.EXE") )

MsgStop("O programa já se encontra aberto","Atenção!!!")

Return(.f.)

EndIf

DEFINE ICON oIcoSig RESOURCE "ASIG"

DEFINE CURSOR oCurSig RESOURCE "CUR"

DEFINE FONT oFntSig1 NAME "Tahoma" SIZE 0,-14 ITALIC

DEFINE FONT oFntMn1 NAME "Verdana" SIZE 0,IF(oInfo:lTamMenu,-16,-14) BOLD ITALIC

DEFINE WINDOW oWSig FROM 0,10 TO 500,650 PIXEL TITLE cTitulo ICON oIcoSig MENU CriaMenu()

...

...

..

..

ACTIVATE WINDOW oWSig MAXIMIZED ON PAINT (Textura(oWSig,{nRgb(212,208,200),nRgb(255,255,255)}),SayBitmaps(oWSig))

(GlobalFree(),ResAllFree(),FreeResources(),SysRefresh())

RETURN(NIL)

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev

Link to comment
Share on other sites

É realmente um mistério...

Então vamos às espertíases...

uma idéia: faça um outro programa para chamar o seu.exe.. mais ou menos assim:

//---------------------------------------------------------

Function main()

IF !IsExeRunning("meuprogram.exe")

WinExec( "meuprogram.exe" )

EndIf

Return NIL

//--------------------------------------------------------

toda vez que vc executar esse programa, ele verificará seu o seu.exe está ou são aberto...se não estiver ele abre, caso contrário ele não faz nada e simplesmente acaba..

Faça sempre as chamada através desse programa. Mire link nele e pronto.

Ricardo Marques

Link to comment
Share on other sites

e ai pessoal fiz as recomendações e nada... Viol o seu é em 32 bits com xharbour?, pois conversando com um amigo ele disse que o dele que é clipper/fw não precisa disso, será que é algo na compilação que deixa abrir outro?

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev

Link to comment
Share on other sites

Olá,

Aproveitando a dica do Beto e a minha para pegar o diretório, acabei montando uma função genérica para isso, ou seja, basta vc colocar em uma lib ou prg padrão, sem precisar ficar mudando o nome do programa toda hora icon_smile_wink.gif


Func Ativo()

cNomeProg := GetModuleFileName( GetInstance() )

nPos := Rat("\",cNomeProg)

cNomeProg := SubStr(cNomeProg,nPos+1,Len(cNomeProg)-nPos)

If IsExeRunning( cNomeProg )

MsgStop( "Este programa já está aberto neste computador!", "Impossível Continuar !" )

Retu(.T.)

Endif

Retu(.F.)

id=code>id=code>

e Testar no Programa


Func Main()

....

If Ativo()

Exit

Endif

....

id=code>id=code>

Vagner Wirts

Clipper 5.2 Lib 5.3 - Blinker 5.0 FW 2.0, Harbour 43.0 (Flex), xHarbour 99.1 99.2 99.3 (Simplex) FW 2.5 icon_smile_big.gif

Link to comment
Share on other sites

Pessoal... meu sistema já utilizava o isExeRunning() com perfeição, mas alterei meu código para utilizar os recursos apresentados aqui nesse tópico e assim ficou:

IF isExeRunning( aSIS_DadosSistema["nome_executavel"] )

oWnd := findWindow( 0, aSIS_DadosSistema["titulo_sistema"] )

IF oWnd <> 0

msgStop("O Sistema já está sendo executado nesse computador." + CRLF + CRLF + "Não será possível executar uma nova Cópia!", "Atenção!")

bringWindowToTop( oWnd )

showWindow( oWnd, 3 )

ENDIF

RETURN( .F. )

ENDIF

Funcionou com exatidão perfeita! Ele dá o aviso, finaliza a nova instância e maximiza o que estava minimizado!!

Valeu galera!@

Júlio César M. Ferreira

Diretor de Tecnologia

RS Consultores Ltda.

Fone: (81) 4009.5444

Fax: (81) 4009.5400

E-mail: julio.mferreira@gmail.com

MSN: julio_mferreira@hotmail.com

Recife - PE

FWh 2.5, xHarbour 0.99.51, SQL LIB, Pelles 4.50.113

Link to comment
Share on other sites

Corrigindo o trecho para melhor visualizar....


IF isExeRunning( aSIS_DadosSistema["nome_executavel"] )

oWnd := findWindow( 0, aSIS_DadosSistema["titulo_sistema"] )

IF oWnd <> 0

msgStop("O Sistema já está sendo executado nesse computador." + CRLF + CRLF + "Não será possível executar uma nova Cópia!", "Atenção!")

bringWindowToTop( oWnd )

showWindow( oWnd, 3 )

ENDIF

RETURN( .F. )

ENDIF

id=code>id=code>

Júlio César M. Ferreira

Diretor de Tecnologia

RS Consultores Ltda.

Fone: (81) 4009.5444

Fax: (81) 4009.5400

E-mail: julio.mferreira@gmail.com

MSN: julio_mferreira@hotmail.com

Recife - PE

FWh 2.5, xHarbour 0.99.51, SQL LIB, Pelles 4.50.113

Link to comment
Share on other sites

vlw a todos, mas na minha maquina não funciona, eu percebo que o botão da uma "mexida" mas não acontece nada, só não deixa entrar, que já é bom isso, então vou testar em outra maquina para ver o que acontece e reporto para vcs, obrigado a todos.

Felipe Cruz.

Santo Andre-SP

FiveWin 2.7 / XHarbour 0.99.60 (SIMPLEX) / Clipper 5.3b / BCC55 / Pelles C / xDev

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...