Rieccomi con un problema con le API di Winzozz...vorrei eseguire un programma come altro utente da quello attualmente loggato (l'equivalente di cliccare col tasto destro sull'eseguibile e andare su Esegui come...); per far questo ho cercato un po' sulla rete e ho trovato la funzione CreateProcessWithLogonW che mi sembra quella più adatta. Ecco il codice:
Innanzitutto non sono sicuro di aver inserito correttamente i parametri della funzione; io vorrei semplicemente che venga eseguito install.exe con i privilegi di paolo, senza caricare le informazioni dell'utente da HKEY_USERS (come ho detto prima, come se facessi click su Esegui come...). Il problema però è un altro: quando compilo, Dev-C++ mi dà un errore "[Linker error] undefined reference to `CreateProcessWithLogonW' ", come se non avessi incluso l'header della libreria giusto. Qualcuno sa dirmi dove potrebbe essere l'errore?#define _WIN32_WINNT NTDDI_WIN2K
#define UNICODE
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <winbase.h>
#include <userenv.h>
int main(int argc, char *argv[])
{
PROCESS_INFORMATION pi = {0};
STARTUPINFO si = {0};
si.cb = sizeof(STARTUPINFO);
CreateProcessWithLogonW("paolo", ".", "password", 0, "install.exe", NULL, 0x04000210, NULL, NULL, &si, &pi);
return 0;
}
KB su CreateProcessWithLogonW

vorrei eseguire un programma come altro utente da quello attualmente loggato (l'equivalente di cliccare col tasto destro sull'eseguibile e andare su Esegui come...); per far questo ho cercato un po' sulla rete e ho trovato la funzione CreateProcessWithLogonW che mi sembra quella più adatta. Ecco il codice:
Rispondi quotando
Appena mi ha riconosciuto la funzione mi dava errore perchè non convertiva implicitamente le stringhe in WCHAR, stavo per scrivere un altro messaggio per chiedere come fare ed ecco che mi avevi già risposto 