Einzelnen Beitrag anzeigen
  #222  
Alt 28.03.2021, 13:29
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.579
Abgegebene Danke: 434
Erhielt 5.699 Danke für 1.311 Beiträge
Aktivitäten Langlebigkeit
8/20 14/20
Heute Beiträge
1/3 sssss2579
AW: MessChess und Arena - Fragen und Antworten

 Zitat von Hartmut Beitrag anzeigen
Sagen wir es mal so. Ich weiss nicht ob Franz da eine einfachere Lösung hat. In Arena wird ja mit jeder Engine die Datei mess.cmd aufgerufen. Diese ruft (mit einigen Optionen) das Programm MessChess.exe auf. Was ich jetzt nicht weiß ist, ob man in diese cmd-Datei jetzt irgendeine Option einbauen kann, damit das Programm und damit die Engines in der Taskleiste gestartet werden. Das müsste Franz klären.
Ja, da gibt's Optionen, wenn man in mess.cmd das Programm MessChess.exe mit dem Befehl "start" aufruft.
Ich hab jetzt ein wenig herumexperimentiert, und im Prinzip 2 mögliche Lösungen gefunden - wirklich gefallen tut mir allerdings eigentlich keine von beiden:

1) in der Datei 'MessChess\Arena\mess.cmd' die folgende Zeile
MessChess.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
durch
start /B /MIN MessChess.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
ersetzen.
Dadurch wird das Enginefenster minimiert (in der Taskleiste), aber Arena hat da leider eine Macke, und zwar aktiviert es beim Enginestart erstmal 2 solcher Enginefenster, und dann geht's wieder auf 1 (minimiertes) Fenster zurück - keine Ahnung was da in Arena wirklich passiert.
Das /B is übrigens auch nötig, sonst bleiben beide Fenster aktiviert, aber die Engine reagiert nicht auf einen Zug!?

2) die andere Möglichkeit wäre, in der Datei 'ArenaENG.cfg' die MessChess.exe direkt aufzurufen (anstatt der mess.cmd), d.h. für alle Engines in dieser Datei
%ArenaPath%\mess.cmd
durch
%ArenaPath%\..\MessChess.exe
zu ersetzen (kann eigenlich jeder Texteditor automatisch).
Damit erscheint auch kein Enginefenster unter Arena, allerdings wird dabei die Engine nicht einmal in der Taskleiste angezeigt, d.h. man kann das Enginefenster gar nicht mehr aktivieren - die Engine ist dabei also ein praktisch unsichtbarer Hintergrundprozess. Damit kann man also auch keine anderen Einstellungen in der Engine mehr ändern bzw. sie überhaupt irgendwie 'sichtbar' machen.

Wie gesagt sind beide Methoden nicht optimal, aber eigentlich sind solche Tricks ja gar nicht nötig, jedenfalls nicht wenn man die in MessChess beiliegende Arena-Version (3.51) verwendet. Ich hab ja extra den Code in MessChess so geändert, daß das Enginefenster erst bei einer bestimmten horizontalen Bildschirm-Position startet, sodaß links davon das Arena- oder Winboard-Fenster noch Platz hat, und auch Arena 3.51 hab ich so konfiguriert (z.B. die Zugliste rechts ausgeblendet), daß sich das alles ausgeht.
Wenn man natürlich eine eigene Arena-Version (mit größerem Fenster) verwendet, dann klappt das natürlich nicht mehr.

In MessChess selbst läßt sich für dieses Problem auch nichts machen, weder kann sich MessChess irgendeine Fensterposition merken (das ist Sache von Windows), noch kann man irgendwie die Größe eines Enginefensters festlegen (da gibt's nur 'window 0/1' und 'maximize 0/1' in den INI-Dateien, aber auch damit kriegt man das Fenster nicht in die Taskleiste).

Edit: Ich sehe gerade Tibono's Antwort, und er hat alle 3 Optionen für 'start' verwendet.
Ich hab's zwar auch mit 'start /WAIT /MIN' probiert, aber dabei funktioniert die Engine nicht - mit allen 3 Parametern klappt es aber anscheinend!
Die Zeile in mess.cmd sollte also tatsächlich folgendermaßen lauten:
start /B /WAIT /MIN MessChess.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

Grüße,
Franz

Geändert von fhub (28.03.2021 um 14:27 Uhr)
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu fhub für den nützlichen Beitrag:
achimp (02.04.2021), Mark 1 (28.03.2021)