EXECUT?VEL EST? LENTO

ADEMIRAS217 25/05/2016 12:31:27
#462561
Olá,
Fiz um programa prezado que rodava ou melhor [Ô]voava[Ô] em um PC placa Megabyte 4gb dual core, 64 bits, hd 500 gb mais hd externo de 1 tb. Instalei Windowsi 7 64 bits e depois 32 bits, tudo sem nenhum problema.
Testava o programa em um laptop Acer Aspiria 64 bits, Windows 8 64bits tudo novo.
O programa era preguiçoso andava se arrastando rodava lento, pra abrir janela era um parto! Os ícones, Bmps cintilavam. Cheguei a pensar em desfazer dele.
Certo dia, dei a louça, sai desinstalado toda parafernália de fábrica, Norton, Jogos e coisas que sou leigo.
A MAQUINA VIROU UM JATINHO, UMA MARAVILHA, DEIXOU DE SER PROBLEMA.
Essa foi a minha experiência.
Abacei trocando o Windows 8 pelo 7 e estou correndo do 10. Aprendi com a minha mãe: [Ô]defunto que não conheço, nem rezo nem ofereço[Ô].
Desculpem a brincadeira mas a coisa é seria.
Um abraço,
AAS
FABRICIOWEB 25/05/2016 12:50:52
#462563
Veja se seu sistema realmente fecha quando terminado no gerenciamento em alguns windows ele mesmo fechado continua rodando
ADEMIRAS217 25/05/2016 14:26:20
#462568
Seguinte, faz assim:

Projeto principal

Private Sub QuerryUnload
Dim F as form
For each F in Forms
[ô]Atencao:
[ô]fechar Form que estiver aberto
[ô](*)
Unload F
Next
(*) Avaliar o fechamento do form.
Pode ser que haja a reinicialização de variáveis, outras encrencas, etc.

é razoável que ao iniciar o projeto exista uma proteção para que ele não execute o programa duas vezes.

O fragmento de código abaixo previne isso:

Option Explicit
[ô]API[ô]s
[ô]Private cState
[ô]#####################################
Private Declare Function FindWindow Lib [Ô]user32[Ô] Alias [Ô]FindWindowA[Ô] _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function ShowWindow Lib [Ô]user32[Ô] (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long

Const SW_SHOWNORMAL = 1

[ô]#####################################
[ô]projeto principal
Private Sub Form_Load()
Dim otherWnd As Long
Dim oldCaption As String
Dim retValue As Long
[ô]se já na memória, aborta
If App.PrevInstance Then
MsgBox [Ô]Cannot start more than one copy.[Ô]
Unload Me
otherWnd = FindWindow(0&, oldCaption)
retValue = ShowWindow(App.hInstance, SW_SHOWNORMAL)
End If
[ô]TxtNomeForm.Visible = False
[ô]*** COPEI DO LIVRO A BIBLIA DE EVANGELOS
Com isso o programa não roda se já estiver aberto.

Tem mais por aí!

Se seu projeto tem controles ActiveX que você criou?
Aí será necessário criar funções para fecha-los, tipo closedllexe, closedll ou closeocx, depende do caso.


Desculpem se fui inoportuno.
Um abraço,
AAS
Página 2 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas