[VB.NET] Lancer une application en mode compatibilité

SyriusMarx - 23 août 2012 à 16:39
 SyriusMarx - 24 août 2012 à 20:07
Bonjour à tous,

Je développe un launcher en VB.NET pour un jeu. Je souhaiterais lancer le jeu en mode compatibilité Win XP SP3 quand il est exécuté sur un Seven 64. (Le menu du jeu n'est plus animé et devient statique sur 64b …)
Existe-t-il un moyen pour faire cela ? Peut-être qu'on peut le faire à l'aide d'argument ?

Ma seconde question concerne toujours le lancement. Serait-il possible de définir l'affinité du jeu sur un core en particulier ?
(Le jeu étant assez ancien, il s'avère légèrement plus performant s'il est affilié à un seul core …)

Enfin une petite dernière, est-il possible de détecter la présence d'un processus en cours d'exécution afin de bloquer des fonctionnalités du launcher. (Inutile de relancer le jeu ou risqué de modifier des fichiers de config si le jeu tourne déjà …)

Pour info je lance le jeu comme ceci pour le moment :
StartApp("path\game.exe", argument)


C'est développé avec Visual Basic Express 2010 pour le framework.NET 2.0

7 réponses

Utilisateur anonyme
23 août 2012 à 23:44
Bonsoir,

1/ Ton jeu peut, peut-être, être lancé en ligne de commande avec des paramètres de lancement. Il faut vérifier la documentation du jeu. Dans l'affirmative, tu devras lancer le jeu avec Process et sa propriété StartInfo pour fournir les arguments voulus.

2/ Tu peux vérifier si le process recherché est en cours d'exécution :
For Each p As Process In Process.GetProcesses
    If p.ProcessName = "ton_jeu" Then
          '....
0
Bonjour banana32 et merci pour ces solutions.

J'ai testé le code que tu proposes et ça fonctionne (enfin pour 1 des 2 processus qui gère le jeu mais ça suffira). Il me reste juste à le placer comme j'en ai besoin.

Pour l'idée des arguments en fait je me demandais s'il existait des arguments générique qui fonctionnent pour toute exécutable. Car dans la documentation du jeu il n'y a rien de prévu pour être lancé en compatibilité XP (en même temps il est sorti avant Vista).

Sinon pas de suggestions en ce qui concerne l'affiliation du processeur ?
0
Utilisateur anonyme
24 août 2012 à 15:39
Sinon pas de suggestions en ce qui concerne l'affiliation du processeur ?

Tu peux le définir simplement comme ceci mais lis quand même les remarques que précise msdn :
For Each p As Process In Process.GetProcesses
     If p.ProcessName "ton_jeu" Then p.ProcessorAffinity CType(2, System.IntPtr)
Next
0
Utilisateur anonyme
24 août 2012 à 15:44
Ah et pour le mode compatibilité, je créerais simplement un raccourcis (lnk) manuellement (avec les compatibilités en bonnes et dues formes), je le joindais aux côtés de ton lanceur et l'exécuterais avec Process.Start.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Encore une fois ça marche nickel pour l'affinité CPU :D

L'idée du raccourci aurait pu être intéressante s'il elle était automatisable et éditable. Il faudrait que ça soit le laceur lui-même qui créer le raccourci et inclue les paramètres. Dans ce que tu proposes il faut que l'utilisateur créée lui même le raccourci (d'ailleurs autant faire directement clic-droit/propriété/compatibilité sur l'application à ce compte là), enfin si j'ai bien compris où tu veux en venir ?

Le principe du lanceur est de rendre les actions le plus transparent possible et de demander simplement au joueur de cliquer sur les boutons.

Je vais préciser quelques trucs, ça peut éclairer : Je n'ai pas développé le jeu dont il est question par contre je développe avec une petite équipe un mod pour ce jeu (www.cnc-sgu.fr) d'où l’intérêt du lanceur (qui permet plein d'autres choses, comme des réglages graphiques supplémentaires, des recherche de mise à jour, un système de rapport de bug, etc).
0
Utilisateur anonyme
24 août 2012 à 18:58
En fouillant sur la toile, tu devrais trouver ces fameux paramètres de ligne de commande. Tout bon jeu en a.
Ton lien renvoie sur une page blanche. Quel est donc ce fameux jeu ?
0
Le jeu est Command & Conquer Generals : Heure H. C'est bizarre que ça te mène vers une page blanche. Et avec HTTP : http://www.cnc-sgu.fr ? Sinon il y a notre page facebook : http://www.facebook.com/pages/Command-Conquer-Stargate-Universe/284066472915?ref=ts
Nous on développe un mod sur le thème de Stargate.

Et donc oui ce jeu à des lignes de commande pour lancer en fenêtré, mode debug, démarrage rapide et quelques autres trucs mais certainement pas compatibilité XP (surtout qu'il est sortie en 2003).
0
Rejoignez-nous