Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23

    [C++] Eseguire il .exe senza privilegi di Amministratore

    ciao a tutti!
    sto sviluppando un programma in C++ (usando VS2010, Piattaforma Win32),
    e purtroppo non funziona se non sono amministratore del computer.
    Sapete se esiste un settaggio, una chiamata, un metodo, qualsiasi cosa, per fare in modo che
    l'eseguibile .exe sia SEMPRE eseguibile anche senza privilegi di amministrazione?
    (anche su altri computer, nel senso che vorrei fosse un settaggio del programma stesso, non del copmuter).

    Grazie anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    ebbene sì (col manifest) , ma è a titolo oneroso (ossia devi pagare).

    ti conviene cercar di capire "cosa fa di hard core" (il programma) che richiede i privilegi, e toglierlo o comunque modificarlo

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23
    Bè, ma se ho VS originale? non cambia nulla?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    no

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da David88
    sto sviluppando un programma in C++ (usando VS2010, Piattaforma Win32),
    e purtroppo non funziona se non sono amministratore del computer.
    Cosa intendi con "non funziona"? Cosa accade quando lanci il programma che hai creato?
    Ti compare la richiesta dell'UAC di Vista/7?

    Originariamente inviato da David88
    Sapete se esiste un settaggio, una chiamata, un metodo, qualsiasi cosa, per fare in modo che
    l'eseguibile .exe sia SEMPRE eseguibile anche senza privilegi di amministrazione?
    Un'applicazione dovrebbe essere normalmente sempre eseguibile senza i privilegi di amministrazione, a meno che - attraverso un "manifest" - non venga stabilito il contrario; ovviamente, se il tuo programma esegue operazioni che richiedono tali privilegi, la chiamata fallisce.

    Dovresti chiarire maggiormente alcuni aspetti del problema e del comportamento del programma, oltreché delle sue finalità generali.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23
    Il mio programma è un agente windows, che deve ricevere informazioni da stampanti LOCALI connesse o in usb o in parallelo.
    Per le richieste di informazioni manda comandi PJL, che poi vengono letti dalla printer sotto forma di testo, e vengono parserizzati (lavorati). Il tutto viene poi mandato in scrittura ad un file di output *.csv.

    Per la comunicazione in parallelo, in più, abbassa lo spooler di stampa, non vorrei che fosse proprio questo il problema, cioè, non è un'azione che normalmente esegue un utente semplice...

    E comunque sì, è stato provato su Vista, e bisogna accedere come amministratore, altrimenti dà un'eccezione e non parte neanche.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da David88
    Per la comunicazione in parallelo, in più, abbassa lo spooler di stampa, non vorrei che fosse proprio questo il problema, cioè, non è un'azione che normalmente esegue un utente semplice...
    E' possibile che il problema sia questo. In generale, o esegui il programma accedendo alla macchina con i diritti utente di un amministratore, oppure crei un servizio (a cui puoi associare credenziali specifiche), sempre se il tuo programma è privo di interfacce utente significative che andrebbero portate all'esterno.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    23
    ho appena capito il mio errore.
    all'interno del codice, ho le chiamate:

    system("net stop spooler");

    e

    system("net start spooler");

    E sono proprio queste due chiamate di sistema, ho controllato dall'output, che non ho il permesso di fare.

    dove dovrebbe comparire il comando, ho invece "Errore di sistema 5", "Access Denied".

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