centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Poser vos questions de programmation en AutoHotkey
PAT06
Posts: 13
Joined: 18 May 2024, 14:16

centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 18 May 2024, 14:23

Salut,

Je recherche un scripts AutoHotkey pour centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?
Si possible l'intégrer dans le .bat
je n'arrive pas à trouver...

Si quelqu'un à ça ?!

Merci

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 19 May 2024, 07:34

GUI au centre d'un écran , peut être utilisizé command 'winmove'

Code: Select all

;- GUI au centre d'un écran 
#Requires AutoHotkey v1
#Warn
setworkingdir,%a_scriptdir%
Gui,2:  -DPIScale +AlwaysOnTop -Caption +Border
Gui,2:Color,RED
xx:=100,WA:=A_screenwidth,HA:=A_screenheight
x3:=(WA*45)/xx,y3:=(HA*45)/xx,w3:=(WA*10)/xx,h3:=(HA*10)/xx ;- calcul du pourcentage à partir de la taille et de la position
Gui, 2:Show, x%x3% y%y3% w%w3% h%h3%,COLOR_TEST
return
;------------
2Guiclose:
exitapp
;------------
esc::exitapp      ;- escape
;============

User avatar
flyingDman
Posts: 2851
Joined: 29 Sep 2013, 19:01

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by flyingDman » 19 May 2024, 15:12

Centrer une fenetre, CMD ou autre:

Code: Select all

f12::
Run, %comspec% /k dir *.*
Winwaitactive ahk_exe WindowsTerminal.exe
WinGetPos, , , w, h, ahk_exe WindowsTerminal.exe
WinMove, ahk_exe WindowsTerminal.exe,, % (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
Integrer ce code dans le fichier .bat? Le concept est interessant mais je ne crois pas que ç'est faisable.
14.3 & 1.3.7

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 20 May 2024, 02:04

@flyingDman merci, j'ai essayé avec > "ahk_class ConsoleWindowClass"

Code: Select all

aa:="ahk_class ConsoleWindowClass"
f12::
Run, %comspec% /k dir *.*
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
return
esc::exitapp

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 20 May 2024, 02:54

Salut,

Merci à vous deux

En fait, la première version de Gary m'irait bien

Mais juste qu'il faudrait que quand je lance le fichier .bat il me centre la fenêtre par le nom "title" du .bat (par exemple)
ou que je lance le fichier AutoHotkey (compilé) et qu'il me lance le fichier .bat centré

Merci

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 20 May 2024, 04:16

que contient le fichier bat ?
Vous pouvez également exécuter caché et obtenir le résultat dans un fichier texte

Code: Select all

F1:=a_scriptdir . "\dir.bat"
e4=
(
@echo off
dir
)
ifnotexist,%f1%
  fileappend,%e4%,%f1%,utf-8
aa:="ahk_class ConsoleWindowClass"
return
$F12::
run,%comspec% /k "%F1%"
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
return
esc::exitapp
deuxième example , dir vers clipboard ou text

Code: Select all

F1:=a_scriptdir . "\dir.bat"
e4=
(
@echo off
dir
)
ifnotexist,%f1%
  fileappend,%e4%,%f1%,utf-8
aa:="ahk_class ConsoleWindowClass"
return
$F12::
clipboard=
runwait,%comspec% /U /c "%F1%" | clip,,hide      ;- dir to clipboard or text
fileappend,%clipboard%,test22.txt,utf-8
try,run,test22.txt
sleep,2000
msgbox,%clipboard%
return
esc::exitapp

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 20 May 2024, 04:37

Salut,

En fait, tout bêtement, je voudrais simplement lancer un fichier .bat et qu'il soir centré sur l'écran et si possible au premier plan…
(Pas besoin même qu'il y est de raccourci clavier)

Similaire à ton premier script, mais à la place du rectangle rouge, la fenêtre du .bat affichée au centre de l'écran et si possible au premier plan…
(Pas besoin que la fenêtre du bat soit cachée car l'utilisateur dois pouvoir voir les messages pour choisir les fonctions à exécuter)

En simplifiant :
Je lance le bat qui exécute le script AutoHotkey pour centrer la fenêtre sur l'écran au premier plan


Merci

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 20 May 2024, 07:18

En simplifiant :
Je lance le bat qui exécute le script AutoHotkey pour centrer la fenêtre sur l'écran au premier plan
Pourquoi avez-vous besoin d'un xy.bat pour démarrer l'autohotkey ?
Quelle est la fonction du script ahk ?

;- winmove resize notepad

Code: Select all

#SingleInstance Force
run,notepad,,max
return
$F12::
wTitle = ahk_exe notepad.exe
WinWait, %wTitle%
WinMove, %wTitle%,,100,50,1000,700
return
exemple DOS menu

Code: Select all

#Requires AutoHotkey v1
#Warn
setworkingdir,%a_scriptdir%
F1:=a_scriptdir . "\DOS_menu.bat"
e4=
(Ltrim Join`r`n
@ECHO OFF
CLS
COLOR 0E
:MENU
ECHO.
ECHO ...............................................
ECHO PRESS 1, 2 to select your task, or 3 to EXIT.
ECHO ...............................................
ECHO.
ECHO 1 - Open Notepad
ECHO 2 - Open Calculator
ECHO 3 - EXIT
ECHO.
CHOICE /C:123
IF ERRORLEVEL 1 SET M=1
IF ERRORLEVEL 2 SET M=2
IF ERRORLEVEL 3 SET M=3
IF `%M`%==1 GOTO NOTE
IF `%M`%==2 GOTO CALC
IF `%M`%==3 GOTO EOF
:NOTE
start notepad
GOTO MENU
:CALC
start calc
GOTO MENU
:EOF
exit


)
ifnotexist,%f1%
  fileappend,%e4%,%f1%
aa:="ahk_class ConsoleWindowClass"
return
;--
$F12::
run,%comspec% /k "%F1%"
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
return
;--
esc::exitapp
;===========================

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 20 May 2024, 08:39

Salut,

Ça ne fonctionne pas quand j'insert les lignes de mon fichier bat

Error: The scripts contains syntax errors.

*****

Code: Select all

#Requires AutoHotkey v1
#Warn
setworkingdir,%a_scriptdir%
F1:=a_scriptdir . "\Installer.bat"
e4=
(Ltrim Join`r`n

@echo off
@C:\Windows\System32\chcp 28591 > nul
@C:\Windows\System32\mode con cols=69 lines=20
@Title Exécution en Mode ADMIN 
:: On execute les commandes en administateur
::------------------------------------------
REM --> Verification des permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> Erreur vous ne possedez pas les droits admin
if '%errorlevel%' NEQ '0' (
REM --> Verification des privileges administrateur
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
@echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"="
echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
@cls
::________________________________________________________________________________________
echo.
echo Hello %username%
echo.
@echo  ===================================================================
@echo  Installation de Active ou Désactive la connection internet en cours
@echo  ===================================================================
echo.
echo Copie en cours...
@ping 127.0.0.1 -n 5 > NUL
echo.
xcopy "install\*.*" "C:\Users\%username%\INTERNET ON - OFF\" /y /e /i /h /q /exclude:install\Exclure.txt
"C:\Users\%username%\INTERNET ON - OFF\Raccourci_OFF.vbs"
echo.
C:\Windows\System32\attrib +s "C:\Users\%username%\INTERNET ON - OFF"
C:\Windows\System32\attrib +s +h +a "C:\Users\%username%\INTERNET ON - OFF\desktop.ini"
C:\Windows\System32\attrib +s +h +a "C:\Users\%username%\INTERNET ON - OFF\Icons\icon.ico"

@ping 127.0.0.1 -n 3 > NUL
CD /D "%~dp0\Install"
::Actualisation des icônes du dossier Nom d'utilisateur
start /wait "" "F5 v1c.exe"
::Actualisation des icônes du Bureau
start /wait "" "F5 v2.exe"
@ping 127.0.0.1 -n 2 > NUL
cls
echo.
echo Copie terminée

if exist "%temp%\MsgBox.vbs" ( del "%temp%\MsgBox.vbs" )
echo CreateObject("WScript.Shell").Popup "Le raccourci ""INTERNET ON - OFF"" a été créé et placé sur le bureau", 5, "Message pour %username%" > "%temp%\MsgBox.vbs"

@ping 127.0.0.1 -n 3 > NUL
"%temp%\MsgBox.vbs
if exist "%temp%\MsgBox.vbs" ( del "%temp%\MsgBox.vbs" )
exit


)
ifnotexist,%f1%
  fileappend,%e4%,%f1%
aa:="ahk_class ConsoleWindowClass"
return
;--
$F12::
run,%comspec% /k "%F1%"
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
return
;--
esc::exitapp
[Mod edit: Ajout des balises [code][/code]. Veuillez les utiliser vous-même lorsque vous publiez du code !]

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 20 May 2024, 08:56

Salut,

Celui-là lance bien le fichier bat mais ne le centre pas sur l'écran

Code: Select all

#SingleInstance Force
run,Installer.bat
return
$F12::
wTitle = ahk_exe Exécution en Mode ADMIN
WinWait, %wTitle%
WinMove, %wTitle%,,100,50,1000,700
return

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 20 May 2024, 12:49

excusez-moi
cet exemple utilise le nom de DOS
utilisez votre installer.bat d'origine
@flyingDman ... et d'autres peuvent mieux aider ...

Code: Select all

#Requires AutoHotkey v1.1
#warn
#singleinstance,force
#NoEnv                       ;- Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input               ;- Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ;- Ensures a consistent starting directory.
DetectHiddenWindows, On
SetTitleMatchMode, 2
f1:=a_scriptdir . "\TEST.bat"
e4x=
(Ltrim join&&
@echo off
echo USERNAME = %a_username%
echo ------------------------
echo date=
date /t
echo time=
time /t
ver
)
ifnotexist,%f1%
  fileappend,%e4x%,%f1%
aa:="AHK_CMD_TEST"         ;<- DOS TITLE
;--
;Run, %COMSPEC% /T:0A /U /k "title %aa% && mode con lines=1920 cols=120&&%e4x%",,,  ;- run VAR e4x          / cols > width depending fontsize
Run, %COMSPEC% /T:0A /U /k "title %aa% && mode con lines=1920 cols=120&&%f1%",,,    ;- run FICHIER test.bat / cols > width depending fontsize
;Run, %COMSPEC% /T:0A /U /k "title  %aa% &&%e4x%",,,
;--
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
exitapp

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 21 May 2024, 00:01

Salut,
Merci pour ton aide, ça ne fonctionne pas
Est ce que je peux t'envoyer mon fichier pour voir si c'est pas moi qui fait une erreur
Si oui, comment t'envoyer le fichier .bat avec le dossier
Encore Merci

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 21 May 2024, 04:43

Mon exemple ne fonctionne qu'avec les fenêtres DOS.
Il est préférable de simplement démarrer votre installateur.bat, également possible avec ahk-menu, par exemple.
Demandez peut-être à un spécialiste du forum anglophone , ou aussi encore > @flyingDman .... need help ... :)

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 21 May 2024, 04:47

Salut,
Ok, encore merci pour ton aide
@+

PAT06
Posts: 13
Joined: 18 May 2024, 14:16

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by PAT06 » 22 May 2024, 04:05

Salut,

celui là fonctionne pour moi

Code: Select all

Run, % "Install.bat"
cmd_win_max()
MsgBox, % "end"


cmd_win_max() {
    WinWait, % "ahk_exe cmd.exe",, 3 ; 3 sec
    if ErrorLevel
    {
        MsgBox, % "WinWait timed out"
        return
    }

    WinGetPos, ,, w, h
    WinRestore
    WinMove, (A_ScreenWidth  - w) / 2, (A_ScreenHeight - h) / 2
}
Merci à CoffeeChaton et mikeyww
viewtopic.php?f=76&t=129990&p=572486#p572486

@+

garry
Posts: 3796
Joined: 22 Dec 2013, 12:50

Re: centrer une fenêtre d'un fichier .bat au centre d'un écran sans connaitre la taille de l'écran ?

Post by garry » 26 May 2024, 03:45

merci, j'étais confus à cause des vbs, etc., les scripts étaient ok avec DOS

Code: Select all

F1:=a_scriptdir . "\Date_Time.bat"      ;- fullpath filename
gosub,a1
aa:="AHK_CMD_TEST"                               ;- create DOS TITLE
Run, %COMSPEC% /T:0A /U /k "title  %aa% &&%F1%",,,                                   ;- run FICHIER date_time.bat
Winwait,%aa%
WinGetPos, , , w, h,%aa%
WinMove,%aa%,,% (A_ScreenWidth - w) // 2, % (A_ScreenHeight - h) // 2
exitapp
;--------
A1:
;- create only for test / or just run %F1%  ------------------
e4=
(
@echo off
echo user = %a_username%
date /t
time /t
ver
)
ifnotexist,%f1%
  fileappend,%e4%,%f1%
return
;========================================================================================

Post Reply

Return to “J'ai besoin d'aide”