Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    come chiudere applicazioni da codice?

    Ho creato un form in modalità "primo piano" in modo che se dovessi aprire un altro programma il form è sempre visibile!

    ...arrivo al dunque: come posso fare per chiudere i programmi o controllare se deve essere chiuso ad ogni clic del mouse su qualsiasi oggetto? (...mi riferisco al clic del muose xchè il clic permette l'apertura del programma)

    Ho trovato questo esempio per aiutarmi è funziona messo in un tasto:


    Dim myProcesses() As Process

    Dim myProcess As Process

    myProcesses = Process.GetProcesses()

    For Each myProcess In myProcesses

    If myProcess.ProcessName = "IEXPLORE" Then

    myProcess.CloseMainWindow()

    MsgBox("Inserire Login e Password prima di aprire l'applicazione!")

    End If

    Next


    ...MA IN QUALE EVENTO LO DEVO METTERE IN RIF. AL MIO PROBLEMA?

    Aiutatemi vi prego!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma a che serve una cosa del genere?

    Cosi' nessuno puo' aprire Internet Explorer?

    P.S. Indica il linguaggio ...

  3. #3

    VB.Net

    VB.NET

    Mi spiego meglio! Vorrei terminare un progetto per la mia attività di InternetPoint.
    Infatti ho da poco finito l'applicazione lato Server che permetterà di registrare utenti (navigatori) nell'archivio fatto in Access. La conclusione della registrazione di ogni utente prevede una Login e Password che permetterà di utilizzare un credito.

    Adesso sto creando l'applicazione lato Client che dovrà impedire di utilizzare alcuni programmi se non è stato fatto un LogIn ...ecco perchè sto cercando di capire come devo bloccare l'apertura di un programma tipo Internet Explorer!

    COME DOVREI FARE? ...aiutatemi vi prego accetto anche idee...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In questi casi, invece di fare delle applicazioni, risolvi con il login normale di XP e le policy ...

    E' un problema piu' "sistemistico" ...

  5. #5
    Originariamente inviato da oregon
    In questi casi, invece di fare delle applicazioni, risolvi con il login normale di XP e le policy ...

    E' un problema piu' "sistemistico" ...

    "...., risolvi con il login normale di XP e le policy?"

    Scusami x l'ignoranza come fai a creare da SERVER tanti utenti su Client con Login e Pass? come fai a dire al S.O. che si deve spegnere o disconnettere quando si è finito il credito? ...poi anche se fosse su 50 clienti che vengono a collegarsi che faccio 50 utenti? e come fai a risolvere il problema che ogni utente ha due tipi di credito? Tipo:
    - 1 credito a consumo 0,90 € naviga fino a 30 minuti
    2 credito a consumo 1,50 € naviga fino a 1 ora

    - credito flat 4,00 € naviga fino a 5 ore

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... non mi riferivo a tutto quello che hai aggiunto adesso ma solamente a questa tua richiesta:

    "Adesso sto creando l'applicazione lato Client che dovrà impedire di utilizzare alcuni programmi se non è stato fatto un LogIn ...ecco perchè sto cercando di capire come devo bloccare l'apertura di un programma tipo Internet Explorer! "

  7. #7

    [vb.nET] Errore ...Impossibile enumerare i moduli di processo!

    Vi ricordate il form che aprii 15 giorni fa? il link è questo: http://forum.html.it/forum/showthrea...readid=1056265

    ...sono riuscito fino ad un certo punto!


    ...questa volta penso che sono arrivato al limite mi sto sbattendo di brutto!

    Ho creato un form inserendogli un oggetto di tipo Tick, il quale mi permette, utilizzando l'oggetto Process (mi permette di visualizzare il contenuto del Tsk Manager), di verificare se un utente ha aperto un determinato programma.

    Il codice che ho scritto nel Tick è il seguente:


    'dichiaro gli oggetti a livello di classe in modo che le posso utilizzare/richiamare in altre procedure o funzioni!
    Dim programmi As New ArrayList

    Dim myProcesses() As Process
    Dim myProcess As Process

    ......
    .........
    ....
    .....

    Private Sub secondi_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles secondi.Tick


    'inserisco nella'array programmi le applicazioni utilizzate
    Dim NomeProcesso As String

    myProcesses = Process.GetProcesses()

    For Each myProcess In myProcesses

    contaProg = 0
    For contaProg = 0 To (ProgrammiTab.Count - 1)
    If myProcess.ProcessName = ProgrammiTab.Item(contaProg) Then

    ' Contains mi permette di verificare se nell'array esiste già il nome processo stringa
    If Not programmi.Contains(myProcess.ProcessName) Then
    programmi.Add(myProcess.ProcessName)
    End If



    End If
    Next

    Next


    End Sub



    PREMETTO CHE nell''array ProgrammiTab ho dichiarato tutti i programmi che dovranno essere controllati!

    ...arrivo al dunque! Il programma funziona ma solo per un po (a volte dopo 5 minuti e altre dopo 1 ora) perchè mi esce il seguente errore:

    Eccezione non gestita nella'applicazione. Fare clic su Continua er ignorare l'errore e tentare di proseguire. Fare clic su esci per arrestare l'applicazione immediatamente.

    Impossibile enumerare i moduli di processo.


    ...mortacci sua! ...scusate il termine...ma NON CAPISCO IL PERCHE' DEVE DARMI L'ERRORE!

    ...se clicco su dettagli mi esce:

    Le informazioni su come richiamare il debug JIT (Just-In-Time) anziché questa finestra
    sono riportate in fondo al messaggio.

    ************** Testo dell'eccezione **************
    System.ComponentModel.Win32Exception: Handle non valido
    at System.Diagnostics.NtProcessManager.GetModuleInfos (Int32 processId)
    at System.Diagnostics.ProcessManager.GetModuleInfos(I nt32 processId)
    at System.Diagnostics.Process.get_Modules()
    at System.Diagnostics.Process.get_MainModule()
    at System.Diagnostics.Process.get_ProcessName()
    at InternetPoint.home.secondi_Tick(Object sender, EventArgs e) in C:\Documents and

    Settings\server\Documenti\InternetPoint\InternetPo intClient\home.vb:line 464
    at System.Windows.Forms.Timer.OnTick(EventArgs e)
    at System.Windows.Forms.Timer.DebuggableCallback(IntP tr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)


    ************** Assembly caricati **************
    mscorlib
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
    ----------------------------------------
    InternetPoint
    Versione assembly: 1.0.2529.31383
    Versione Win32: 1.0.2529.31383
    Base di codice: file:///C:/Documents%20and%20Settings/server/Documenti/InternetPoint/InternetPointClient/bin/

    InternetPoint.exe
    ----------------------------------------
    System.Windows.Forms
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.

    dll
    ----------------------------------------
    System
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
    ----------------------------------------
    System.Drawing
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
    ----------------------------------------
    Microsoft.VisualBasic
    Versione assembly: 7.0.5000.0
    Versione Win32: 7.10.3052.4
    Base di codice: file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic

    .dll
    ----------------------------------------
    ADODB
    Versione assembly: 7.0.3300.0
    Versione Win32: 7.10.3077
    Base di codice: file:///c:/windows/assembly/gac/adodb/7.0.3300.0__b03f5f7f11d50a3a/adodb.dll
    ----------------------------------------
    SYSTEM.WINDOWS.FORMS.resources
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.windows.forms.resources/1.0.5000.0_it_b77a5c561934e089/system.

    windows.forms.resources.dll
    ----------------------------------------

    ************** Debug JIT **************
    Per attivare il debug JIT (Just-In-Time), è necessario impostare il valore
    jitDebugging nella sezione system.windows.forms del file di configurazione
    dell'applicazione o del computer (machine.config).
    L'applicazione inoltre deve essere compilata con il debug
    attivato.

    Ad esempio:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Quando il debug JIT è attivato, tutte le eccezioni non gestite
    vengono inviate al debugger JIT registrato nel computer,
    anziché essere gestite da questa finestra di dialogo.

    ________________________________________________




    STO IMPAZZENDO COME FACCIO A RISOLVERE QUEST'ERRORE????? :berto:
    AIUTATEMI VI PREGO!!!!


    ________________________________________________

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E' probabile che durante l'accesso alle proprietà di uno dei processi, il programma non abbia le autorizzazioni necessarie.

    Ti consiglio di assegnare il nome del processo ad una stringa all'interno di un blocco Try ... Catch e di usare la stringa in ogni punto in cui ti serve il nome del processo.

  9. #9
    Ho provato come hai detto tu ma non funziona, forse sbaglio a dichiarare ex di tipo System.ComponentModel.Win32Exception? ...che tipo di oggetto dovrei utilizzare in questo caso?


    'inserisco nella'array programmi le applicazioni utilizzate
    Dim NomeProcesso As String

    myProcesses = Process.GetProcesses()
    Try
    For Each myProcess In myProcesses

    NomeProcesso = myProcess.ProcessName
    contaProg = 0
    For contaProg = 0 To (ProgrammiTab.Count - 1)
    If NomeProcesso = ProgrammiTab.Item(contaProg) Then

    If Not programmi.Contains(NomeProcesso) Then
    programmi.Add(NomeProcesso)
    End If

    End If
    Next

    Next

    Catch ex As System.ComponentModel.Win32Exception ' è questo l'oggetto da utilizzare?
    MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Errore in " + ex.TargetSite.ToString)
    End Try

  10. #10
    Originariamente inviato da oregon
    E' probabile che durante l'accesso alle proprietà di uno dei processi, il programma non abbia le autorizzazioni necessarie.
    ...mi potresti dire come si fa a dare le autorizzazioni alla mia applicazione?

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.