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

    [vb2010] VB non mi vede come amministatore ( ?! )

    Dunque, dopo anni ho fatto un formattone della partizione con Seven ed ho reinstallato.

    ADESSO (prima non era mai capitato) il codice:

    codice:
    My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator)
    dà False.......... NON MI VEDE come amministratore.

    Eppure sono l' unico utente del PC ed ovviamente amministratore di default. Cosa che verifico andando in Utenti e guardando i miei privilegi.

    Qualcuno ha idea di come mai??????????

    Praticamente i miei programmini che controllano i privilegi utente tramite il codice di cui sopra ADESSO (prima mai capitato) devo NECESSARIAMENTE lanciarli con click destro / Esegui come Amministratore.

    Ma se lo sono! Non ha senso.

    EDIT: ovviamente ho provato a portare il UAC a livello zero... non cambia nulla. Il codice NON mi vede come amministratore.

    .

  2. #2
    EDIT #2

    L' unica risposta True è questa:

    codice:
    My.User.IsInRole(ApplicationServices.BuiltInRole.User)
    Ma io non sono User, sono Amministratore.

    La cosa che più non mi fa capacitare è che i programmini vengono installati con InnoSetup, settato con richiesta di privilegi di amministratore per l' installazione: ebbene, quello parte senza il minimo problema, salvo la solita schermata che avvisa che si sta lanciando un .exe.
    .

  3. #3
    A me non pare strano... se non lanci il programma con privilegi elevati l'access token assegnato al programma è quello di un utente normale, che è esattamente il punto di UAC (ed è quello che va a vedere IsInRole - come peraltro spiegato nella sua documentazione).
    Se il tuo programma necessita dei privilegi di amministratore per funzionare (cosa che comunque dovrebbe essere necessaria solo per programmi che vanno a cambiare impostazioni di sistema e cose del genere) devi inserire l'apposita voce nel manifest del programma (cosa che mi pare il compilatore VB sappia fare da solo impostando una qualche opzione tra le proprietà del progetto).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Letto, grazie!

    Rimane solo da capire che diavolo di impostazioni ho fatto a suo tempo in Seven (e chi si ricorda, sono anni) perché mi vedesse AUTOMATICAMENTE come super-amministratore.

    Nota che per verifica e controllo avevo creato apposta un utente Guest che ovviamente non veniva rilevato come amministratore.

    Chiedo privilegi di amministratore perché leggo dati nel registro (ma non scrivo) e uso una trentina di API diverse per cui non vorrei andare incontro a problemi di crash.

    Però rimane la domanda : il Setup creato con InnoSetuo RICHIEDE privilegi di amministratore per essere lanciato.... e viene avviato senza problemi.

    Mentre l' utente Guest che ho ricreato, ovviamente, non riesce a lanciarlo.

    Per cui CI DEVE ESSERE il modo di by-passare la cosa, se Inno Setup lo fa.

    .

  5. #5
    Originariamente inviato da eziogsv
    Chiedo privilegi di amministratore perché leggo dati nel registro (ma non scrivo)
    In tal caso non hai bisogno dei privilegi di amministratore, basta aprire le chiavi che ti servono in sola lettura.
    e uso una trentina di API diverse per cui non vorrei andare incontro a problemi di crash.
    Di che API si tratta? A meno che tu non le usi per cambiare impostazioni di sistema non dovrebbero essere necessari privilegi particolari.
    Però rimane la domanda : il Setup creato con InnoSetuo RICHIEDE privilegi di amministratore per essere lanciato.... e viene avviato senza problemi.
    Te l'ho già detto: devi inserire nel manifest la richiesta di essere lanciato come amministratore (link).
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Originariamente inviato da MItaly
    In tal caso non hai bisogno dei privilegi di amministratore, basta aprire le chiavi che ti servono in sola lettura.
    Buono a sapersi.

    Originariamente inviato da MItaly
    Di che API si tratta? A meno che tu non le usi per cambiare impostazioni di sistema non dovrebbero essere necessari privilegi particolari.
    codice:
    InternetGetConnectedState
    Mouse_Event
    GetModuleHandle
    PrintWindow
    RedrawWindow
    CallNextHookEx
    SetWindowsHookEx
    GetWindowRect
    WindowFromPoint
    GetClassName
    SetParent
    DefWindowProc
    GetParent
    MoveWindow
    GetWindow 
    SendMessage
    EnumChildWindows
    FindWindow
    FindWindowEx
    SetWindowLong
    GetWindowLong
    GetWindowText
    GetWindowTextLength
    GetForegroundWindow
    ShowWindow
    GetCurrentThreadId
    BringWindowToTop
    UnhookWindowsHookEx
    GetPrivateProfileString
    GetAsyncKeyState
    SetWindowPos
    GetWindowThreadProcessId
    AttachThreadInput
    IsIconic
    EnumWindows
    IsWindowVisible
    Originariamente inviato da MItaly
    Te l'ho già detto: devi inserire nel manifest la richiesta di essere lanciato come amministratore (link).
    Si, ok, ma comunque si apre, invece della mia finestra specifica, la richiesta dell' UAC.

    The user gets the UAC prompt when she starts the program. Use wisely, her patience can wear out quickly .....

    ...And that’s it. Now Windows 7 will pop up the User Access Control window if you run your application.

  7. #7
    Originariamente inviato da eziogsv
    [...]
    Sono tutte API di gestione delle finestre, finché non le usi su finestre a privilegi elevati non dovresti avere problemi (e in ogni caso, non conducono a crash, al limite la API fallisce e ti fornisce un qualche codice di errore).
    Si, ok, ma comunque si apre, invece della mia finestra specifica, la richiesta dell' UAC.
    Be', ma è normale... stai chiedendo di lanciare un'applicazione a privilegi elevati, dunque viene richiesta conferma, è esattamente il punto di UAC.
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.