Bonjour,
Je programme actuellement un autopatcher pour un jeu qui vérifie tous les fichiers avant de lancer le jeu lui-même.
Le problème est que les fichiers du jeu ne doivent pas être modifiés par le joueur (Politique de MMO), l'autopatcher s'assure qu'ils sont conforme aux fichiers de la dernière version, mais le problème est qu'il doit empêcher les modifications une fois le jeu lancé.
On m'a informé des Lock qu'on pouvait poser sur les fichiers, j'ai trouvé un code pour unix (Linux/Mac OS) :
Le problème c'est que je n'ai pas trouvé pour Windows, j'ai trouvé trop de réponses différentes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 struct flock fl = { F_WRLCK, SEEK_SET, 0, 0, 0 }; int fd; fl.l_pid = getpid(); if (argc > 1) fl.l_type = F_RDLCK; if ((fd = open("lockdemo.c", O_RDWR)) == -1) { perror("open"); exit(1); } printf("Press <RETURN> to try to get lock: "); getchar(); printf("Trying to get lock..."); if (fcntl(fd, F_SETLKW, &fl) == -1) { perror("fcntl"); exit(1); } printf("got lock\n"); printf("Press <RETURN> to release lock: "); getchar(); fl.l_type = F_UNLCK; /* set to unlock same region */ if (fcntl(fd, F_SETLK, &fl) == -1) { perror("fcntl"); exit(1); } printf("Unlocked.\n"); close(fd);
Donc je viens vous demander à vous comment poser un lock sur un fichier (Voire plusieurs fichiers) sur Windows pour la durée d'un processus.
Merci d'avance
Partager