Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1278 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [WIN] suicide de programme comment faire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WIN] suicide de programme comment faire

n°370987
koulip31
Posté le 24-04-2003 à 20:17:48  profilanswer
 

comment faire pour qu'un executable s'auto-supprime a la fin de son execution sous windows ?  
 
car sour linux un simple  
unlink("mon_beau_prog" );  
suffit largement
 
par contre sous windows c'est une autre paire de manche du fait que windows gere un systeme de droit sur les programmes en cours d'execution ....  
comment outre passer ca pour permettre a mon programme de s'auto suicider  :??:

mood
Publicité
Posté le 24-04-2003 à 20:17:48  profilanswer
 

n°370989
Konar
Posté le 24-04-2003 à 20:22:38  profilanswer
 

Essayes ca : juste avant de quitter tu lances un processus P independant puis tu quittes. Dans P, tu attends une centaine de msec puis tu effaces l'ancien éxé.
 
Ca marchera ptet pas (pas envie d'essayer), dans ce cas faudra penser mieux.

n°371013
Ace17
Posté le 24-04-2003 à 20:54:49  profilanswer
 

Ca marche ca, mais le probleme c'est que le deuxieme executable reste, lui

n°371036
sr16
@*#%$*%§!!
Posté le 24-04-2003 à 21:15:58  profilanswer
 

Timebombe Powa  :whistle:


Message édité par sr16 le 24-04-2003 à 21:16:04

---------------
TOPIC PERMANENT Matrox Parhelia
n°371044
Ace17
Posté le 24-04-2003 à 21:20:14  profilanswer
 

LOL c'est clair! Entre nous je vois pas trop a quoi ca peut servir d'autre...

n°371074
leneuf22
Posté le 24-04-2003 à 21:58:16  profilanswer
 

À faire de la place sur le disque dur ?
(lol)

n°371090
chrisbk
-
Posté le 24-04-2003 à 22:19:23  profilanswer
 

Bah, disons que c un programme qui a conscience de sa propre médiocrité, c pas mal :D

n°371091
mrbebert
Posté le 24-04-2003 à 22:25:50  profilanswer
 

Le supprimer alors qu'il est en cours de fonctionnement, ca me parait difficile. Mais tu peux inscrire la commande de suppression dans la base de registre, dans une clé 'RunOnce'.
Tout ce qui s'y trouve est exécuté au démarrage de windows et supprimé du registre. Ainsi, ton programme sera supprimé au prochain reboot :)

n°371094
chrisbk
-
Posté le 24-04-2003 à 22:33:49  profilanswer
 

mrBebert a écrit :

Le supprimer alors qu'il est en cours de fonctionnement, ca me parait difficile. Mais tu peux inscrire la commande de suppression dans la base de registre, dans une clé 'RunOnce'.
Tout ce qui s'y trouve est exécuté au démarrage de windows et supprimé du registre. Ainsi, ton programme sera supprimé au prochain reboot :)  


 
y me semble qu'il y a tout un article dans la knowledge base de la msdn a ce sujet, mais manque de bol je me rapelle pu du tout du titre...

n°371158
Taz
bisounours-codeur
Posté le 24-04-2003 à 23:23:19  profilanswer
 

d'ou tu vois que le unlink ça marche sous linux. pas du tout

mood
Publicité
Posté le 24-04-2003 à 23:23:19  profilanswer
 

n°371247
schnapsman​n
Zaford Beeblefect
Posté le 25-04-2003 à 00:21:33  profilanswer
 

++Taz a écrit :

d'ou tu vois que le unlink ça marche sous linux. pas du tout


 
bah si c'est une feature de ext2 en tout cas (pour les autres fs j'en sais rien).


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°371286
koulip31
Posté le 25-04-2003 à 00:53:41  profilanswer
 

++Taz a écrit :

d'ou tu vois que le unlink ça marche sous linux. pas du tout


 
teste tu verras que ca foncitonne linux na pas de systeme de droit a l'execution :=)
 
vla le code source
 
int main()
{
 unlink("./a.out" );
 return (0);
}
 
et ca morche du feu de zeus :p  
apres ma question est juste a but pedagogique ... car reelement le but de ce genre de chose ... yen as pas  :D  
mais qu'est ce que c'est drole


Message édité par koulip31 le 25-04-2003 à 00:56:06
n°371721
Ace17
Posté le 25-04-2003 à 12:46:50  profilanswer
 

L'excuse foireuse!!!!!!  :lol:  :lol:  :lol:  :lol:  :lol:

n°371754
zion
Plop
Posté le 25-04-2003 à 13:34:03  profilanswer
 

http://msdn.microsoft.com/library/ [...] fileex.asp
 
 

Citation :

If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts. If lpExistingFileName refers to a directory, the system removes the directory at restart only if the directory is empty.

 
 
 :hello:


---------------
Informaticien.be - Lancez des défis à vos amis
n°371940
HelloWorld
Salut tout le monde!
Posté le 25-04-2003 à 15:07:29  profilanswer
 

C'est plus complexe que cela.
Y'a plusieurs solution (on peut utiliser un .bat, car lui il peut s'auto deleter).
Y'a un article dans la msdn la dessus.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°372458
sr16
@*#%$*%§!!
Posté le 26-04-2003 à 01:24:18  profilanswer
 

Si ton programme fait un low-level format du HD avec reflashage du bios, il n'aura pas besoin de s'auto deleter  :whistle: .
 


---------------
TOPIC PERMANENT Matrox Parhelia
n°372463
blackgodde​ss
vive le troll !
Posté le 26-04-2003 à 03:51:08  profilanswer
 

tu peux, dans ton prog, créer puis execute un .bat qui fait une boucle : tant que l'exe existe, il essaie de le supprimer. Puis une fois l'exe supprimé, il se supprime lui même (dans un .bat ca fonctionne).


Message édité par blackgoddess le 26-04-2003 à 03:51:28

---------------
-( BlackGoddess )-
n°372464
Konar
Posté le 26-04-2003 à 04:04:11  profilanswer
 

Question : est ce que c'est possible a partir d'un programme de lancer un processus (dans le genre de Createprocess()), mais au lieu de lui passer un fichier, on lui passe un espace mémoire genre 'Named Shared Memory', où il commencerait son éxécution, un peu dans le meme genre que CreateThread() ? Bien sur, ce processus doit continuer a vivre meme si son parent a quitté.  
 
La reponse est surement non, mais on sait jamais...

n°372481
gnoof
Posté le 26-04-2003 à 09:55:38  profilanswer
 

Il me semble qu'il y a une methode qui ressemble à ça:
1/ La première fois que ton programme se lance il créer un copie de lui même avec CreateFile et le flag FILE_FLAG_DELETE_ON_CLOSE.
2/ Ensuite le programme lance l'execution de la copie et se termine
3/ Tu peux utiliser un paramètre de la ligne de commande pour déterminer si c'est l'originale ou la copie quie tourne.
4/ La copie elle efface fichier d'origine  et s'execute normalement. Lorsque la copie a terminé son execution le système l'efface tout seul grâce au flag FILE_FLAG_DELETE_ON_CLOSE.

n°376036
phosphorus​68
Pseudo à n°
Posté le 29-04-2003 à 14:06:36  profilanswer
 

réponse de MagicBuzz ici  
 
http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
 
Mission pas Impossible:
Je nierai avoir cross-posté et ce message s'autodétruira dans 3 secondes ... 2 ... 1 ... une demie ... un quart ...
 :whistle:


Message édité par phosphorus68 le 29-04-2003 à 14:09:09
n°377409
MagicBuzz
Posté le 30-04-2003 à 03:24:11  profilanswer
 

phosphorus68 a écrit :

réponse de MagicBuzz ici  
 
http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
 
Mission pas Impossible:
Je nierai avoir cross-posté et ce message s'autodétruira dans 3 secondes ... 2 ... 1 ... une demie ... un quart ...
 :whistle:  


:jap: Ca me faisait chier de rechercher le topic  :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [WIN] suicide de programme comment faire

 

Sujets relatifs
[js ? vbs?] récupérer l'image associée d'un programme (icone) ?[JS / VBS ? ] Fonction pour executer un programme ?
Stopper un programme lancé en ligne de commande ? [Idée] C'est faisable ce type de programme ?
Exécuter un programme php automatiquement [résolu]perl - protéger un programme contre les plantages ?
Erreurs lors du lancement d'un programme GTKbug dans mon programme vb.net besoin d'aide ( resolu)
Erreur lors de l'execution d'un programme en Javalancer un programme sur la machine client
Plus de sujets relatifs à : [WIN] suicide de programme comment faire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR