Korb3ns
Messages postés10Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 2 décembre 2007
-
1 déc. 2007 à 13:10
Korb3ns
Messages postés10Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 2 décembre 2007
-
2 déc. 2007 à 02:08
Bonjour à tous,
J'utilise actuellement la méthode CreateProcess me permettant d'accéder à un serveur distant via IE...
J'aimerais pouvoir supprimer les traces dans IE.
Pour l'historique d'auto-complétion j'ai réussi à l'aide d'un objet COM (présent dans la MSDN), mais j'ai un soucis pour les dossiers Shell Historique :
Avec mon ordinateur (dual core, je sais pas si ça joue un rôle), j'arrive à ouvrir le fichier contenant l'historique, peu importe si IE est ouvert, mais avec certains PC l'accès y est bloqué tant qu'un processus IE est présent (je ne veux pas tous les fermer pour traiter l'information)...
Les chiffres présent dans le dernier dossier est la concaténation de la date d'aujourd'hui avec celle de demain (au format américain)...
L'idée est d'ouvrir ce fichier, de récupérer son contenu avant de créer le processus IE, puis de l'ouvrir une fois le processus fermé pour écraser son contenu (de cette manière je ne surcharge pas l'historique présent de IE).
Est-ce que qqn aurait une idée pour ouvrir ce fichier sans être bloqué ?
J'utilise la méthode ifstream pour l'ouverture de la manière suivante :
ifstream fileIn( path, ios::in | ios::binary )
La variable fileIn est NULL sur certain PC uniquement si un processus IEXPLORE est présent.
Y a t'il une autre méthode à utiliser pour garantir l'ouverture de ce fichier ?
Fermer les HANDLE des processus IE sur ce fichier pourrait être une solution ?
Si oui comment faire ? J'arrive à parcourir tous les processus, les ouvrir mais je ne sais pas quoi en faire...
Korb3ns
Messages postés10Date d'inscriptiondimanche 12 février 2006StatutMembreDernière intervention 2 décembre 2007 1 déc. 2007 à 14:11
Merci Neo_Fr pour tes réponses !
Je vais essayer et je te tiens au courant...
A juste titre informatif, en quoi la méthode CreateFile permettrait l'ouverture de ce fichier alors qu'ifstream est bloqué (quelle est la différence) ?
J'ai pas mis directement %USERPROFILE%, c'était juste pour l'exemple...
J'utilise GetEnvironmentVariable( "USERPROFILE" ) pour limiter au minimum l'exécution...
La méthode CreateFile va créer le fichier s'il n'existe pas ?
Il ne faudrai pas qu'il le créé, car s'il n'existe pas c'est que l'OS du PC est en anglais... L'idéal avec ifstream est qu'il retourne NULL si le fichier n'existe pas, alors je sais que le path sera ...\History\History.IE5\...
Est-ce que c'est possible d'ouvrir le fichier en binaire avec cette méthode ?
La structure du fichier contient plein de end_of_text et de end_of_line, il ne me faudrai pas que Windows interprête son contenu, j'aimerais simplement le récupère entièrement...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 déc. 2007 à 14:20
CreateFile va ouvrir et/ou créer selon flags que tu passeras à la fonction.
API ne bosse QUE en mode binaire, aspire ou écrit des paquets d'octets et rien de plus. Ce sont les libs d'interprétation qui amènent de faux concepts, API jamais.
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Le path est juste, je l'ai contrôlé avec un éditeur de texte. Pourtant, si j'essaie avec un fichier de test sur mon bureau (genre test.txt), pas de problème (si le fichier n'existe pas, hShellHistorique = INVALID_HANDLE_VALUE, sinon je l'ouvre et récupère son contenu)...
En essayant ensuite sur le vrai path, je me rend compte que hShellHist est toujours égal à INVALID_HANDLE_VALUE...