FERASE nao funcionando para deletar arquivo
Moderador: Moderadores
FERASE nao funcionando para deletar arquivo
ola pessoal, estou tentando deletar um arquivo em tempo de execução mas não apaga, não da erro, mas nao apaga, estou fazendo assim:
FERASE("CONTAS.EXE")
Windows 7 64 bits, xHarbour
obrigado.
FERASE("CONTAS.EXE")
Windows 7 64 bits, xHarbour
obrigado.
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
FERASE nao funcionando para deletar arquivo
Tente assim, se o contas.exe nao estiver em uso no momento.
abs.
Código: Selecionar todos
aeval(directory("CONTAS.EXE"),{|x|ferase(x[1])})
FERASE nao funcionando para deletar arquivo
ola Kapiaba, eu quero apagar o executavel mesmo, outro arquivo, esse comando que você passou da certo, mas se for o executavel ele não apaga.
obrigado.
obrigado.
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
FERASE nao funcionando para deletar arquivo
Perguntas:
1 - você está usando o CONTAS.EXE , na hora em que dá o comando?
2 - O CONTAS.EXE está no local? Senão estiver, aponte o local, ex.: "C:\DIR\CONTAS.EXE"
FERASE "C:\TEMP\CONTAS.EXE"
Podeis tentar também, via .BAT com o comando /Y para que o .BAT, não peça confirmação de exclusão.
abs.
1 - você está usando o CONTAS.EXE , na hora em que dá o comando?
2 - O CONTAS.EXE está no local? Senão estiver, aponte o local, ex.: "C:\DIR\CONTAS.EXE"
FERASE "C:\TEMP\CONTAS.EXE"
Podeis tentar também, via .BAT com o comando /Y para que o .BAT, não peça confirmação de exclusão.
abs.
FERASE nao funcionando para deletar arquivo
sim, ele está no mesmo diretorio, a intenção é que se a data ultrapassar uma data limite pré determinada, eu quero apagar o executavel, na hora que acessar o sistema, será verificado uma data limite, se essa data limite for maior, quero deletar o executavel, acho que por estar em uso, nao esta deletando.
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
FERASE nao funcionando para deletar arquivo
Veja se entende, como pegar a data do excutavel em xHarbour - Ignore a mensagem em FiveWin
abs
Código: Selecionar todos
LOCAL cFile, aDir, dExe
IF FILE( "C:\INST_NFE\NFe_Util_2Gv2.03a.exe" )
cFILE := "C:\INST_NFE\NFe_Util_2Gv2.03a.exe" // 03/09/2014
aDIR := DIRECTORY( cFILE ) // para extrair a data do .EXE
dEXE := aDIR[1] [3] // Data do .exe no diretorio C:\INST_NFE
cVersaoFlex := DTOC( dEXE ) + " - " + OemToAnsi( "VersÆo: 2Gv2.03a" )
// 06/11/2014 15:23 2.131.568 NFe_Util_2Gv1.1f_PL006p.exe
ELSEIF FILE( "C:\INST_NFE\NFe_Util_2Gv1.1f_PL006p.exe" )
cFILE := "C:\INST_NFE\NFe_Util_2Gv1.1f_PL006p.exe" // 06/11/2013
aDIR := DIRECTORY( cFILE )
dEXE := aDIR[1] [3] // Data do .exe no diretorio C:\INST_NFE
cVersaoFlex := DTOC( dEXE ) + " - " + OemToAnsi( "VersÆo: 2Gv1.1f" )
ELSE // Ignore a mensagem em Fivewin, ponha em modo console.
MsgStop( OemToAnsi( "ATEN€ÇO USUµRIO: CUIDADO!" )+CRLF+ ;
OemToAnsi( "NECESSµRIO A PARTIR DA VERSÇO 3.71 DA NF-E." )+CRLF+ ;
OemToAnsi( "O INSTALADOR DA FLEXDOCS NÇO FOI LOCALIZADO" )+CRLF+ ;
OemToAnsi( "NO DIRETàRIO C:\INST_NFE " )+CRLF+ ;
OemToAnsi( "INFORME ESTE PROBLEMA AO SUPORTE URGENTE! " )+CRLF+ ;
OemToAnsi( "TECLE <ENTER> PARA CONTINUAR... " ), ;
OemToAnsi( "O INSTALADOR DA FLEXDOCS NÇO FOI LOCALIZADO" ) )
dEXE := " " // nao achou o executavel
ENDIF
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
FERASE nao funcionando para deletar arquivo
use o comando: DIRECTORYRECURSE para saber qualquer coisa em seu HD/diretório.
Abs
Código: Selecionar todos
* $Id: dirtest4.prg,v 1.2 2004/03/03 04:48:39 ronpinkas Exp $
*
* Test program for extended DirectoryRecurse()
*
* Syntax : DirectoryRecurse( <cPath> )
*
* cPath = wild card skleton including path name
*
* Andi Jahja
*
//------------------------------------------------
PROCEDURE Main()
? "Will get ALL *.EXE file in C:\WINDOWS and SUB folders. Press any key ...."
Inkey(0)
? "Working ..."
Showit( DIRECTORYRECURSE( "C:\WINDOWS\*.EXE" ) )
?
? "Will get ALL *.DLL file in C:\WINDOWS and SUB folders. Press any key ...."
Inkey(0)
? "Working ..."
ShowIt( DIRECTORYRECURSE( "C:\WINDOWS\*.DLL" ) )
? "Will get ALL *.OCX files in C:\WINDOWS and SUB folders. Press any key ...."
Inkey(0)
? "Working ..."
ShowIt( DIRECTORYRECURSE( "C:\WINDOWS\*.OCX" ) )
? "Will get ALL *.PRG file in CURRENT and SUB folders. Press any key ...."
Inkey(0)
? "Working ..."
ShowIt( DIRECTORYRECURSE( "*.PRG" ) )
RETURN
//------------------------------------------------
STATIC PROCEDURE ShowIt( aDir )
LOCAL aFile
FOR EACH aFile IN aDir
? PadR( aFile[1], 38 ), Transform( aFile[2], "999,999,999,999" ), aFile[3], aFile[4], aFile[5]
NEXT
?
? Len( aDir), "files listed."
?
RETURN
FERASE nao funcionando para deletar arquivo
Eu quero fazer assim, não sei se tem jeito, o executavel ele nao apaga, outro arquivo qualquer ele apaga normalmente.
Se data de hoje for maior que 14/12/2014
if data > 14/12/2014
deletar o arquivo CONTAS.EXE
endif
Se data de hoje for maior que 14/12/2014
if data > 14/12/2014
deletar o arquivo CONTAS.EXE
endif
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
FERASE nao funcionando para deletar arquivo
Para fazer isto, vc. tem que finalizar o programa, +- assim:
https://pctoledo.org/forum/viewto ... ill#p88468
abs.
https://pctoledo.org/forum/viewto ... ill#p88468
abs.
FERASE nao funcionando para deletar arquivo
Boa
se o exe esta em uso somente renomeando ele para depois deletar.
se quiser matar a execução dele posso passar um kill.exe que uso para matar prg em execução.
sempre que preciso atualizar um exe faço um loop para renome-alo
senão não vai conseguir
se precisar mando ou posto aqui a rotina
Paiva
se o exe esta em uso somente renomeando ele para depois deletar.
se quiser matar a execução dele posso passar um kill.exe que uso para matar prg em execução.
sempre que preciso atualizar um exe faço um loop para renome-alo
senão não vai conseguir
se precisar mando ou posto aqui a rotina
Paiva
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
FERASE nao funcionando para deletar arquivo
Amiguinho,
Em tempo de execução não é possivel você derrubar o aplicativo. O aplicativo não é louco de cometer suicídio, ka,ka,ka.
Eu entendo o seu procedimento como se estivesse atualizando o aplicativo em uso.
Você, ordena que o aplicativo se feche, mas precisa antes ordenar outro procedimento ou script.
Ao invés de deletar o arquivo, apenas não permita sua execução.
Entenda que se voce presta serviço para alguém e deste serviço consta que ele usará seu aplicativo, o executável é posse do contratante. Você estipula em contrato um período pelo qual "aguarda" o restauro do serviço por parte do contratante no que tange os pagamentos mensais e só depois de X tempo voce pode rescindir o contrato e eliminar o aplicativo.
Coloque data para que ele pare, mas que continue lá.
Coloque verificações para impedir de o usuário retornar a data do computador e continuar usando o aplicativo. Grave no registro, arquivo .MEM, CONFIG.COM, MSDOS.SIS, qualquer coisa e deixe esta data de expiração protelar por alguns dias após o vencimento.
Em tempo de execução não é possivel você derrubar o aplicativo. O aplicativo não é louco de cometer suicídio, ka,ka,ka.
Eu entendo o seu procedimento como se estivesse atualizando o aplicativo em uso.
Você, ordena que o aplicativo se feche, mas precisa antes ordenar outro procedimento ou script.
Ao invés de deletar o arquivo, apenas não permita sua execução.
Código: Selecionar todos
if data > 14/12/2014
Quit // Sai de fininho...
endifColoque data para que ele pare, mas que continue lá.
Coloque verificações para impedir de o usuário retornar a data do computador e continuar usando o aplicativo. Grave no registro, arquivo .MEM, CONFIG.COM, MSDOS.SIS, qualquer coisa e deixe esta data de expiração protelar por alguns dias após o vencimento.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
FERASE nao funcionando para deletar arquivo
Uso assim a Mais de 10 anos sem problema
inclusive pelo ts que Todos meus clientes usam
Paiva
function __atualiza_exe
dir_atual = upper(curdrive()+':\'+curdir())
dir_dbdc = upper(curdrive()+':\dbdc')
Wretdir := dirchange(dir_dbdc)
MMDrv := "\dbdc\atualiza.exe" && baixar em:
xMMDrv := "www/exe/atualiza.exe" && Pegar de:
arqftp = [atualiza.exe]
tamaftp = 0
meuftp('3',arqftp,xMMDrv) && dir
x_tempo_demora = [Dever DEMORAR de 3 a 5 Minutos ... DEPENDENDO da velocidade de SUA InterNet. ]
meuftp('2',arqftp,xMMDrv) && download
mydir := directory(arqftp)
tamadis := if(len(mydir) > 0 , mydir[1,2] , 0)
if tamadis # tamaftp
pmsg = " ATEN€ÇO - POR Algum MOTIVO o DOWNLOAD da Atualiza‡Æo N¶O foi feito CORETAMENTE. AGUARDE uns Minutos... e TENTE outra vez. Caso N¶O consiga BAIXAR Corretamente, CONTACT o SUPORTE."
ftempo(5)
ferase(arqftp)
else
* ATUALIZA€¶O do sfa.exe
xarq = [\dbdc\atualiza.exe]
if file(xarq)
for x_existe = 1 to 100
xarq = [\dbdc\sfa.]+strzero(x_existe,3)
erase &xarq
if file(xarq)
loop
endif
exit
next
rename \dbdc\sfa.exe to &xarq
rename \dbdc\atualiza.exe to \dbdc\sfa.exe
pmsg = [ATEN€¶O - Foi ATUALIZADO o Execut vel, Re-Inicie o Sistema Novamente, Obrigado]
ftempo()
quit
endif
endif
Wretdir := dirchange(dir_atual)
inclusive pelo ts que Todos meus clientes usam
Paiva
function __atualiza_exe
dir_atual = upper(curdrive()+':\'+curdir())
dir_dbdc = upper(curdrive()+':\dbdc')
Wretdir := dirchange(dir_dbdc)
MMDrv := "\dbdc\atualiza.exe" && baixar em:
xMMDrv := "www/exe/atualiza.exe" && Pegar de:
arqftp = [atualiza.exe]
tamaftp = 0
meuftp('3',arqftp,xMMDrv) && dir
x_tempo_demora = [Dever DEMORAR de 3 a 5 Minutos ... DEPENDENDO da velocidade de SUA InterNet. ]
meuftp('2',arqftp,xMMDrv) && download
mydir := directory(arqftp)
tamadis := if(len(mydir) > 0 , mydir[1,2] , 0)
if tamadis # tamaftp
pmsg = " ATEN€ÇO - POR Algum MOTIVO o DOWNLOAD da Atualiza‡Æo N¶O foi feito CORETAMENTE. AGUARDE uns Minutos... e TENTE outra vez. Caso N¶O consiga BAIXAR Corretamente, CONTACT o SUPORTE."
ftempo(5)
ferase(arqftp)
else
* ATUALIZA€¶O do sfa.exe
xarq = [\dbdc\atualiza.exe]
if file(xarq)
for x_existe = 1 to 100
xarq = [\dbdc\sfa.]+strzero(x_existe,3)
erase &xarq
if file(xarq)
loop
endif
exit
next
rename \dbdc\sfa.exe to &xarq
rename \dbdc\atualiza.exe to \dbdc\sfa.exe
pmsg = [ATEN€¶O - Foi ATUALIZADO o Execut vel, Re-Inicie o Sistema Novamente, Obrigado]
ftempo()
quit
endif
endif
Wretdir := dirchange(dir_atual)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
FERASE nao funcionando para deletar arquivo
Concordo 100% com o que o colega Rochinha disse. A rotina de atualização, deverá ser baixado em diretório temporário e a espera que o usuário feche o aplicativo e jamais ser apagado. Derrubar a aplicação é algo muito sério ! Depois o usuário poderá encontrar problemas na base de dados. Há conceitos que devem ser revisto e tudo deve funcionar de forma segura, completa e atendendo sempre a ética. Se o usuário questionasse o porquê o executável sumiu a uma Microsoft ou qualquer empresa grande de software, seria causa ganha. mesmo tenha expirado o período de utilização.rochinha escreveu:Em tempo de execução não é possivel você derrubar o aplicativo. O aplicativo não é louco de cometer suicídio, ka,ka,ka.
Eu entendo o seu procedimento como se estivesse atualizando o aplicativo em uso.
Você, ordena que o aplicativo se feche, mas precisa antes ordenar outro procedimento ou script.
Ao invés de deletar o arquivo, apenas não permita sua execução.
Entenda que se voce presta serviço para alguém e deste serviço consta que ele usará seu aplicativo, o executável é posse do contratante. Você estipula em contrato um período pelo qual "aguarda" o restauro do serviço por parte do contratante no que tange os pagamentos mensais e só depois de X tempo voce pode rescindir o contrato e eliminar o aplicativo.
Coloque data para que ele pare, mas que continue lá.
Coloque verificações para impedir de o usuário retornar a data do computador e continuar usando o aplicativo. Grave no registro, arquivo .MEM, CONFIG.COM, MSDOS.SIS, qualquer coisa e deixe esta data de expiração protelar por alguns dias após o vencimento.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.

