PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → fichiers et droit d'accés
fichiers et droit d'accés
Iniciado por François, 19,feb. 2006 10:10 - 4 respuestas
Publicado el 19,febrero 2006 - 10:10
Bonjour,

Je cherche a faire un utilitaire de nettoyage de fichier temporaires windows & internet, historique de navigation.
Le problème est que l'on ne peut pas supprimer des fichiers windows par manque de droits.

Peux t'on forcer la suppression de ses fichiers ou contourner le problème ?

Merci d'avance de vos suggestions

François
Publicado el 19,febrero 2006 - 23:54
Meme si tu utilises le parametre "frLectureSeule" avec fSupprime() ?

Philippe
www.freedev-web.com


"François" <berdeaux.f@wanadoo.fr> a écrit dans le message de news:
43f7adde$1@news.pcsoft.fr...

Bonjour,

Je cherche a faire un utilitaire de nettoyage de fichier temporaires
windows & internet, historique de navigation.
Le problème est que l'on ne peut pas supprimer des fichiers windows par
manque de droits.

Peux t'on forcer la suppression de ses fichiers ou contourner le problème
?

Merci d'avance de vos suggestions

François
Publicado el 20,febrero 2006 - 10:03
Si tu n'est pas administrateur utilise cette fonction
// Entrée : pProgrammeName Nom du programme à lancer. Exemple "C:\WINNT\system32\CMD.EXE"
// pParam Parametres de la commande
// pLoginName Login de type administrateur
// pPassword Le mot de passe
// pWait Attente de la fin du programme lancé ou pas...
//
// Sortie : Booleen True / False
//
//if RunAs(Programme, "" "........", ".......") then
// info("OK")
//else
// info("PAS BON !")
//END

FUNCTION RUNAS(pProgrammeName, pParameters, pLoginAdmin, pPasswordAdmin, pWait=True)

sUserName est une chaîne UNICODE = AnsiVersUnicode(pLoginAdmin+"@"+DomainePrefix)
sPassword est une chaîne UNICODE = AnsiVersUnicode(pPasswordAdmin)
ApplicationName est une chaîne UNICODE = AnsiVersUnicode(pProgrammeName)
LineCommand est une chaîne UNICODE = AnsiVersUnicode(pParameters)
Titre est une chaîne UNICODE sur 512 = AnsiVersUnicode("RunAs...")

dwLogonMode est un entier = 0x00000001
dwCreationFlag est un entier = Null
stStartupInfo est un STARTUPINFO
stProcessInfo est un PROCESS_INFORMATION
stStartupInfo:cb = Dimension(stStartupInfo)
stStartupInfo:lpTitle = Null
stStartupInfo:dwFlags = 0x00000000
bRetAPI est un booléen = False

// On envoie la sauce
bRetAPI = AppelDLL32("Advapi32.dll","CreateProcessWithLogonW",&sUserName, Null, &sPassword, dwLogonMode,...
&ApplicationName, &LineCommand,...
dwCreationFlag, Null, Null, &stStartupInfo, &stProcessInfo)

// Attente de la fin
IF bRetAPI AND pWait THEN
WHILE ExeLancé(pProgrammeName)
Multitache()
END
END

// Libération des ressources liées aux structures en fin d'execution
API("KERNEL32","CloseHandle",stProcessInfo:hProcess)
API("KERNEL32","CloseHandle",stProcessInfo:hThread)

RENVOYER bRetAPI

qui te permet de lancer un batch en tant qu'administrateur
Publicado el 09,marzo 2006 - 18:50
Bonjour,

Ce code m'intéresse beaucoup car je n'arrive pas à effacer mes fichiers temporaires d'internet explorer (Document and settings\user name\LocalSetting\Temporary internet files etc...).
Je ne suis pas très bon quand il s'agit d'appeler des commandes du système alors pourrai t on m'expliquer un peu comment fonctionne le code précédent? Surtout que j'ai essayé de refaire cette fonction, mais j'ai déjà des erreurs notamment au niveau des Class (ou structures peut-être ici) STARTUPINFO et PROCESS_INFORMATION comme quoi ce n'est pas défini.

Je suis surement nul mais peut-on m'apporter un exemple un plus clair pour quelqu'un d'un niveau inférieur?
Publicado el 09,marzo 2006 - 20:42
Désolé mais il manquais un bout de code que l'on met dans les constantes
STARTUPINFO est une structure
cb est un entier
pReserved est un entier
lpDesktop est un entier
lpTitle est un entier
dwX est un entier
dwY est un entier
dwXSize est un entier
dwYSize est un entier
dwXCountChars est un entier
dwYCountChars est un entier
dwFillAttribute est un entier
dwFlags est un entier
wShowWindow est un entier sur 2 octets
cbReserved2 est un entier sur 2 octets
lpReserved2 est un entier
hStdInput est un entier
hStdOutput est un entier
hStdError est un entier
END

PROCESS_INFORMATION est une structure
hProcess est un entier
hThread est un entier
dwProcessId est un entier
dwThreadId est un entier
END