Obtenir le nom de l'onglet courant

Poser vos questions de programmation en AutoHotkey
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Obtenir le nom de l'onglet courant

18 Apr 2020, 07:18

Bonjour,
J'ai besoin de connaitre le nom ou le numéro de l'onglet courant de la boîte de dialogue des propriétés de la fenêtre CMD.
En utilisant les lignes suivantes, la variable CurrentTab est toujours vide (cf. pièce jointe).

^j::
GuiControlGet, CurrentTab,, TabNumber
MsgBox value=%CurrentTab%

Merci de votre aide.

Cordialement,
Jean-François
Attachments
Capture.PNG
copie écran
Capture.PNG (26.15 KiB) Viewed 1620 times
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

18 Apr 2020, 10:20

Essaye ca :+1:

Code: Select all

ControlGet, CurrentTab, Tab,, SysTabControl321, ahk_exe conhost.exe
MsgBox Tab #%CurrentTab%
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

18 Apr 2020, 12:55

Merci pour la suggestion, mais le résultat est le même :-(
Cordialement.
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

18 Apr 2020, 23:59

Ca fonctionne pour moi. C'est quoi ton script complet? :think:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

19 Apr 2020, 12:39

Pour le moment juste les deux lignes en question (que tu proposes), précédées soit
de Sendinput !{space}{p} si je lance l'exe depuis la ligne de commandes de la fenêtre CMD
soit de ^j:: si je j'ouvre manuellement les propriétés de la fenêtre CMD et que je lance ensuite l'exe via Ctrl+J

ControlGet, CurrentTab, Tab,, SysTabControl321, ahk_exe conhost.exe
MsgBox Tab #%CurrentTab%

Résultat idem à la copie d'écran initiale, sauf que value= est remplacé par Tab#
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

19 Apr 2020, 12:49

Peux-tu inspecter la fenetre avec WindowSpy? Moi j'obtiens "Tab# 5". :think:
Image
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

19 Apr 2020, 16:50

Voici donc une copie d'écran (en pièce jointe)
Ton script ne contient-il aussi que ces deux seules lignes, ou faut-il commencer par activer formellement (avec une commande AHK) la boîte de dialogue des propriétés de la fenêtre CMD ?
Attachments
Capture 5.JPG
Capture 5.JPG (97.08 KiB) Viewed 1405 times
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

19 Apr 2020, 17:05

Désolé pour la copie d'écran précédent (le focus était sur le bouton OK de la boîte de message).
La revoici donc avec le focus sur le premier onglet.
Attachments
Capture 5.JPG
Capture 5.JPG (101.17 KiB) Viewed 1399 times
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

19 Apr 2020, 19:10

Il me semble que si vous êtes sur windows XP,7,8 mais non windows 10. Il faut changer le wintitle de ahk_exe conhost.exe à ahk_exe cmd.exe. :think:

Code: Select all

ControlGet, CurrentTab, Tab,, SysTabControl321, ahk_exe cmd.exe
MsgBox Tab #%CurrentTab%
Avec ControlGet, on n'a pas besoin d'activer la fenêtre. :thumbup:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

20 Apr 2020, 13:18

Je viens de refaire l'essai sur un PC W10 (avec ahk_exe conhost.exe) (cf copie d'écran), avec toujours le même résultat.
Entre temps j'ai aussi refait l'essai sur XP (virtual box) (avec ahk_exe cmd.exe), avec toujours le même résultat.
Attachments
Capture 6.JPG
Capture 6.JPG (215.17 KiB) Viewed 1341 times
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

20 Apr 2020, 15:03

Hmm... interessant... :think: Jai aucun problem ici...
AutoHotkey v1.1.32.00 Unicode 64-bit sur Windows 10

Un test?

Code: Select all

SetTitleMatchMode, 2
CONHOST_EXE := "conhost.exe"
if A_OSVersion in WIN_NT4,WIN_95,WIN_98,WIN_ME,WIN_7,WIN_8,WIN_8.1,WIN_VISTA,WIN_2003,WIN_XP,WIN_2000
	CONHOST_EXE := "cmd.exe"
hwnd := WinExist("ahk_exe " CONHOST_EXE)
if (hwnd > 0) {
	ControlGet, CurrentTab, Tab,, SysTabControl321, ahk_id %hwnd%
	MsgBox Tab #%CurrentTab%
} else {
	Msgbox Erreur de détection.
}
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

21 Apr 2020, 12:05

En utilisant Sendinput !{space}{p} pour ouvrir les propriétés de la fenêtre CMD (c'est ce dont j'ai besoin), je suis obligé d'ajouter un retardement (Sleep, 100) pour que cela fonctionne (voir copies d'écran). Sinon il semble que WinExist n'attaque pas le bon élément.
Galerare humanum est...
Merci pour ton aide. Je vais conserver les lignes que tu proposes et qui me semblent excellentes.
Bonne semaine
Jean-François
Attachments
Capture 9.JPG
Capture 9.JPG (206.07 KiB) Viewed 1294 times
Capture 8.JPG
Capture 8.JPG (210.3 KiB) Viewed 1294 times
User avatar
joedf
Posts: 7637
Joined: 29 Sep 2013, 17:08
Facebook: J0EDF
Google: +joedf
GitHub: joedf
Location: Canada
Contact:

Re: Obtenir le nom de l'onglet courant

21 Apr 2020, 22:28

Ahhhh la je comprends. Je démarrais le script avec la fenêtre déjà affichée...
Dans ce cas, Sleep fonctionne bien, mais WinWaitActive serai une autre option sensible. :+1:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x8GB G.Skill RipJaws V - DDR4 3280 MHz | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
jfm
Posts: 8
Joined: 18 Apr 2020, 06:55

Re: Obtenir le nom de l'onglet courant

22 Apr 2020, 07:00

Merci pour le WinWaitActive, qui me semble plus élégant que Sleep.

Return to “J'ai besoin d'aide”

Who is online

Users browsing this forum: No registered users and 6 guests