Ciao a tutti, devo avviare una applicazione creata con vb6 dopo circa 10 minuti che si è avviato windows, come posso fare?...Grazie mille a tutti...![]()
Ciao a tutti, devo avviare una applicazione creata con vb6 dopo circa 10 minuti che si è avviato windows, come posso fare?...Grazie mille a tutti...![]()
dopo dieci minuti esatti non ti so dire, una soluzione un pò "sporca", è farlo avviare subito dopo l'avvio di win, e creare un timer che scatti ogni dieci minuti, usandolo per fare ciò che vuoi e poi disattivandolo
Cioè tu intendi, farlo avviare all'avvio di windows nascosto, poi con un timer, dopo 10 minuti lo mostro?
si, perdonami se non ti faccio un esempio, ma mi ricordo come si fa solo in vb.net, il vb non lo tocco più da due anni ormai
Bhè, per farlo partire all'avvio di windows potrei usare questo codice che ho trovato sul forum...
'nella sezione dichiarazioni di un modulo
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, _
ByVal Reserved As Long, ByVal dwType As Long, _
lpData As Any, ByVal cbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const ERROR_SUCCESS = 0&
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
'in un modulo
Public Sub savestring(hKey As Long, strPath As String, _
strValue As String, strdata As String)
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(hKey, strPath, keyhand)
r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
r = RegCloseKey(keyhand)
End Sub
'nella procedura che salva la voce nel registro
path = App.path & "\" & App.EXEName & ".exe"
Call savestring(HKEY_LOCAL_MACHINE, _
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run ", app.exename, path)
Il problema è ora, come faccio a farlo rimanere nascosto?
.... provato a mettere nel form1_load() questo?
mentre nel timer1_Tick() (mi pare fosse questo l'evento):me.hide
me.show
'Tutto il resto che gli vuoi far fare
timer1.enabled = false
Hmm, grazie mille provo...
C'è un problema però...
Ho inserito 300000 nel interval del timer, e non me lo fa mettere(Invalid propriety value)...
300000 sarebbero 5 minuti...
E ora come faccio?
1) Prima di tutto puoi fare partire un programma anche creando il link nel gruppo Esecuzione automatica, ed è consigliabile perchè se nel computer è attivo un firewall serio (non come quello di XP e Vista) può anche impedirti di accedere al registro, e di solito lo impedisce (se il firewall è impostato bene); se non lo impedisce, il firewall è impostato male.Originariamente inviato da Zlatan8.
C'è un problema però...
Ho inserito 300000 nel interval del timer, e non me lo fa mettere(Invalid propriety value)...
300000 sarebbero 5 minuti...
E ora come faccio?
Questo lo dico nel caso tu debba distribuire la tua applicazione, e quindi si trovano le configurazioni più disparate.
2) Per il Timer puoi fare così:
Imposti Interval a 60.000 che equivale ad 1 minuto, poi usi questo codice
codice:Private Sub Form_Load() Me.Hide End Sub Private Sub Timer1_Timer() Static minuti As Integer minuti = minuti + 1 If minuti = 10 Then frmMain.Show End If End Sub![]()