Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB]Sincronizzarmi Accesso Remoto

    Mi servirebbe una mano con un programma in VB.
    In poche parole ho realizzato un semplice contascatti telefonico relativo al mio piano telefonico, che mostra in tempo reale il costo della connessione...il problema che vorrei risolvere (in quanto vorrei essere veramente preciso), è quello legato al fatto che il timer di questo programma dovrebbe partire esattamente quando parte quello dell'accesso remoto...come posso fare per sincronizzare il mio programma?
    Già che ci sono vorrei chiedere se è possibile fare in modo che questo programma, una volta avviato appena acceso il computer, rimanga nascosto fino a quando non apro Internet Explorer e mi collego...

    Grazie.

  2. #2
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    Non è ......già che ci sei......è proprio questo il problema.
    I programmi che conteggiano scatti telefonici, sono fatti in modo tale, che è l'utente stesso che decide quando avviare il programma del contascatti.
    In genere prima del collegamento, si avvia il programma di contascatti, e una volta avviata la connessione il programma contascatti inizia il suo lavoro (naturalmente conteggiando anche lo scatto della chiamata).

    Il problema è: cosa pensa l'utente?, non tutti gli utenti (io ero di quelli), vogliono, che una volta avviato il pc, si avvii in automatico tipo un tsr che controlla quando avviene una connessione internet e quindi avviare il contascatti in quel preciso momento.

    Secondo me è meglio che lo decida l'utente, quando avviare il contascatti, e naturalmente il tuo prg. deve essere preciso col conteggio......e sicuramente lo è, ma devi far in modo che a decidere sia l'utente.

    Quindi dopo l'istallazione sarebbe opportuno, che nel gruppo dei programmi creato, mettessi un LEGGIMI ORA, dove poter far sapere all'utente, che può immettere a suo piacimento, il programma (a parte), che funzioni come controllo della connessione immettendolo nell'avvio automatico, spiegando i passi da compiere per effettuare tale operazione, ovvero come mettere il programma del controllo della connessione in corso, nell'avvio automatico.

    Comunque tornando alla tua domanda, faì come vuoi.......

    Devi fare due programmi, uno del conteggio dei scatti, e questo l'hai fatto, e uno che controlli quando viene fatta una connessione e partire con il programma di conteggio scatti.
    Perchè due programmi:
    Per il discorso fatto prima, ovvero fare in modo che sia l'utente a decidere se tenere un programma in memoria, avviato in background che faccia in modo di monitorare se c'è in corso una connessione ad internet.

    Probabilmente userai un applicativo per far eseguire l'installazione.
    Per esempio con InstallShield, o altri installatori, devi far in modo di installare il contascatti, e durante tale procedura d'installazione, devi utilizzare un file.reg che crei e scriva una chiave
    nel registro di configurazione, nella directory:
    HKEY_LOCAL_MACHINE, Software, Microsoft, Windows, CurrentVersion, Run
    ControllaConnessione.exe
    (questo sopra è il nome ipotetico del tuo controllore della connessione ad internet).
    In questo modo ogni volta che si avvia il pc, viene avviato in automatico il programma ControllaConnessione.exe,
    che monitorizza ogni tot minuti, o secondi, se è stata avviata una connessione di accesso remoto.
    Se è stata avviata una connessione di accesso remoto, il programma ControllaConnessioni.exe fà in modo di far partire il contascatti.


    In conclusione, secondo il mio modesto parere, è meglio, fare due programmi, uno per il conteggio scatti telefonici, e
    uno per il monitoraggio se è stato eseguito un accesso alla rete, e in questo caso avviare il contascatti.
    Avviato il conscatti, il programma di monitoraggio continua nella fase di controllare quando è stata chiusa una sessione internet, e quando questa avviene, passa
    di nuovo al controllo se si verifica una connessione attiva di accesso remoto.

    Ho fatto l'algoritmo e il programma controllore, ma ...... non è freeware

    Se cerchi in rete, sicuramente troverai molti argomenti in merito RAS_DIAL API di win ecc, ecc, e con un pò di studio e pazienza riuscirai a fare il tuo algoritmo.

    Per non lasciarti a bocca asciutta, l'algoritmo lo devi impostare su un ciclo perpetuo
    While......wend, che cicli e controlli le connessioni di accesso remoto, nel momento in cui una connessione è attiva, fai partire il contascatti,
    a questo punto con una condizione, controlli quando viene effettuata una disconnessione facendo bloccare il contascatti, e così via alternando la funzione.

    Ricorda di avvertire l'utente se all'avvio del pc, parte un programma in background, perchè non far sapere questo all'utente non è corretto
    e se dovesse essere lui stesso a decidere, elencargli i possibili problemi in cui potrebbe andare incontro, che tu stesso avrai testato.


    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

  3. #3
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    Questo codice controlla se c'è una connessione attiva oppure no.




    Nella sezione Dichiarazioni
    Public Const ERROR_SUCCESS = 0&
    Public Const APINULL = 0&
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public ReturnCode As Long

    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _
    hKey As Long) As Long

    Declare Function RegOpenKey Lib "advapi32.dll" Alias _
    "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As _
    String, phkResult As Long) As Long

    Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
    "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _
    As String, ByVal lpReserved As Long, lpType As Long, _
    lpData As Any, lpcbData As Long) As Long
    Codice
    Public Function ActiveConnection() As Boolean
    Dim hKey As Long
    Dim lpSubKey As String
    Dim phkResult As Long
    Dim lpValueName As String
    Dim lpReserved As Long
    Dim lpType As Long
    Dim lpData As Long
    Dim lpcbData As Long
    ActiveConnection = False
    lpSubKey = "System\CurrentControlSet\Services\RemoteAcces s"
    ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _
    phkResult)

    If ReturnCode = ERROR_SUCCESS Then
    hKey = phkResult
    lpValueName = "Remote Connection"
    lpReserved = APINULL
    lpType = APINULL
    lpData = APINULL
    lpcbData = APINULL
    ReturnCode = RegQueryValueEx(hKey, lpValueName, _
    lpReserved, lpType, ByVal lpData, lpcbData)
    lpcbData = Len(lpData)
    ReturnCode = RegQueryValueEx(hKey, lpValueName, _
    lpReserved, lpType, lpData, lpcbData)

    If ReturnCode = ERROR_SUCCESS Then
    If lpData = 0 Then
    ActiveConnection = False
    Else
    ActiveConnection = True
    End If
    End If
    RegCloseKey (hKey)
    End If
    End Function
    Usa la funzione ActiveConnection come nell'esempio:
    If ActiveConnection = True then
    MsgBox("Hai una connessione attiva.",vbInformation)
    Else
    MsgBox("Non hai una connessione attiva.", vbInformation)
    End If


    Buon lavoro............



    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.