[TUTO] Démarrer plusieurs programmes à l'ouverture d'Hypersp

Tous les tutos concernant RocketLauncher.

Modérateurs : Nabubokon, Porko, Thesalan, Modérateurs

Répondre
Avatar de l’utilisateur
Bopz44
Gourou
Gourou
Messages : 833
Inscription : 25 oct. 2012 - 01:00
A remercié : 4 fois
A été remercié : 8 fois

[TUTO] Démarrer plusieurs programmes à l'ouverture d'Hypersp

Message par Bopz44 » 24 août 2014 - 18:25

Salut, vous connaissez très certainement tous la fonction Exit de Hyperhq qui vous permet de démarrer un programme a l'ouverture de Hyperspin et de le fermer lorsque vous quittez le frontend. Le problème est que l'on ne peut pas y insérer qu'un seul programme, assez ambetant quand on veut utiliser Xpadder, HyperSearch ou d'autres programmes specifiques au bon fonctionnement d'Hyperspin.

Pour y remedier on va creer un script AutoHotkey qui indiquera les programmes a exécuter ou a quitter.

1°) Récupérer le programme AutoHotkey sur le site officiel ICI, et l'installer.

2°) Aller dans le dossier Hyperspin, créer un nouveau document texte, et renommez le ; par exemple START (choisissez le nom a lui donner) et surtout renommez l'extention en ".ahk" (sans les guillemets)

3°) Click droit sur votre fichier nouvellement crée et la de nouvelles options auront ete ajoutés par AutoHotkey dont 'Edit Script'. Editez donc le script en y entrant ce code :

Code : Tout sélectionner

#NoEnv
#SingleInstance force
SetBatchLines, -1
SetWorkingDir, %A_ScriptDir%

IniRead, origValue, % A_WorkingDir . "\Settings\Settings.ini", Main, Hyperlaunch_Path
IniWrite, % SubStr(A_ScriptFullPath, 1, 1) . SubStr(origValue, 2), % A_WorkingDir . "\Settings\Settings.ini", Main, Hyperlaunch_Path

Run, .\
4°) Toute la premiere partie du code sert a rendre hyperspin portable ca n'a rien a voir avec ce tuto mais autant le mettre avec ca mange pas de pain   :D  

Maintenant interessons nous a la derniere ligne : Run, .\
Run, est la commande qui va executer le programme, tandis que .\ est un chemin relatif indiquant la localisation de depart de votre script :

Si par exemple votre script se trouve dans : C:\Hyperspin\START.ahk
Et que le programme que vous voulez lancer dans : C:\Hyperspin\HyperLaunch\Module Extensions\HyperSearch\HyperSearch.exe
Alors votre chemin relatif sera : .\HyperLaunch\Module Extensions\HyperSearch\HyperSearch.exe

Maintenant a vous d'indiquer dans le script le chemin du programme desiré, pour en rajouter un autre suffit d'ajouter une nouvelle ligne de commande. Voila par exemple le mien :

Code : Tout sélectionner

Run, .\HyperLaunch\Profiles\Xpadder\HyperSpin\p1.xpadderprofile
Run, .\ZZ-UTILS\HyperSearch\HyperSearch.exe
Run, .\ZZ-UTILS\NoMousy1.5\KILL MOUSE.exe
Run, .\ZZ-UTILS\NoMousy1.5\KILL TASK.exe
5°) Passons au script de sortie, creer un nouveau script par exemple 'EXIT.ahk' l'editer et y entrer le code :

Code : Tout sélectionner

#NoTrayIcon
#NoEnv
#Persistent
#SingleInstance force

Process Close, Xpadder.exe

DetectHiddenWindows, On
SetWorkingDir %A_ScriptDir%



NoTrayOrphans()
ExitApp
Return

NoTrayOrphans() {
TrayInfo:= TrayIcons(sExeName,"ahk_class Shell_TrayWnd","ToolbarWindow32" . GetTrayBar()) "`n"
. TrayIcons(sExeName,"ahk_class NotifyIconOverflowWindow","ToolbarWindow321")
Loop, Parse, TrayInfo, `n
{
ProcessName:= StrX(A_Loopfield, "| Process: ", " |")
ProcesshWnd:= StrX(A_Loopfield, "| hWnd: ", " |")
ProcessuID := StrX(A_Loopfield, "| uID: ", " |")
If !ProcessName ProcesshWnd
RemoveTrayIcon(ProcesshWnd, ProcessuID)
}
}
RemoveTrayIcon(hWnd, uID, nMsg = 0, hIcon = 0, nRemove = 2) {
NumPut(VarSetCapacity(ni,444,0), ni)
NumPut(hWnd , ni, 4)
NumPut(uID , ni, 8)
NumPut(1|2|4, ni,12)
NumPut(nMsg , ni,16)
NumPut(hIcon, ni,20)
Return DllCall("shell32\Shell_NotifyIconA", "Uint", nRemove, "Uint", ni)
}
TrayIcons(sExeName,traywindow,control) {
DetectHiddenWindows, On
WinGet, pidTaskbar, PID, %traywindow%
hProc:= DllCall("OpenProcess", "Uint", 0x38, "int", 0, "Uint", pidTaskbar)
pProc:= DllCall("VirtualAllocEx", "Uint", hProc, "Uint", 0, "Uint", 32, "Uint", 0x1000, "Uint", 0x4)
SendMessage, 0x418, 0, 0, %control%, %traywindow%
Loop, %ErrorLevel%
{
SendMessage, 0x417, A_Index-1, pProc, %control%, %traywindow%
VarSetCapacity(btn,32,0), VarSetCapacity(nfo,32,0)
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", pProc, "Uint", btn, "Uint", 32, "Uint", 0)
iBitmap := NumGet(btn, 0)
idn := NumGet(btn, 4)
Statyle := NumGet(btn, 8)
If dwData := NumGet(btn,12)
iString := NumGet(btn,16)
Else dwData := NumGet(btn,16,"int64"), iString:=NumGet(btn,24,"int64")
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", dwData, "Uint", nfo, "Uint", 32, "Uint", 0)
If NumGet(btn,12)
hWnd := NumGet(nfo, 0)
, uID := NumGet(nfo, 4)
, nMsg := NumGet(nfo, 8)
, hIcon := NumGet(nfo,20)
Else hWnd := NumGet(nfo, 0,"int64"), uID:=NumGet(nfo, 8), nMsg:=NumGet(nfo,12), hIcon := NumGet(nfo,24)
WinGet, pid, PID, ahk_id %hWnd%
WinGet, sProcess, ProcessName, ahk_id %hWnd%
WinGetClass, sClass, ahk_id %hWnd%
If !sExeName || (sExeName = sProcess) || (sExeName = pid)
VarSetCapacity(sTooltip,128), VarSetCapacity(wTooltip,128*2)
, DllCall("ReadProcessMemory", "Uint", hProc, "Uint", iString, "Uint", wTooltip, "Uint", 128*2, "Uint", 0)
, DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wTooltip, "int", -1, "str", sTooltip, "int", 128, "Uint", 0, "Uint", 0)
, sTrayIcons .= "idx: " . A_Index-1 . " | idn: " . idn . " | Pid: " . pid . " | uID: " . uID . " | MessageID: " . nMsg . " | hWnd: " . hWnd . " | Class: " . sClass . " | Process: " . sProcess . " | Icon: " . hIcon . " | Tooltip: " . wTooltip . "`n"
}
DllCall("VirtualFreeEx", "Uint", hProc, "Uint", pProc, "Uint", 0, "Uint", 0x8000)
DllCall("CloseHandle", "Uint", hProc)
return sTrayIcons
}
GetTrayBar() {
ControlGet, hParent, hWnd,, TrayNotifyWnd1 , ahk_class Shell_TrayWnd
ControlGet, hChild , hWnd,, ToolbarWindow321, ahk_id %hParent%
Loop {
ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
If Not hWnd
Break
Else If hWnd = %hChild%
{
idxTB := A_Index
Break
}
}
Return idxTB
}

StrX( H,BS="",ES="",Tr=1,ByRef OS=1) {
return,(SP := InStr(H,BS,0,OS)) (L := InStr(H,ES,0,SP+StrLen(BS))) (OS := L + StrLen(ES)) ? SubStr(H,SP := Tr ? SP + StrLen(BS) : SP ,(Tr ? L : L + StrLen(ES))-SP) : ""
}
Comme vous pouvez le voir ce code est beaucoup plus conséquent et pour une bonne raison :
Il y a souvent des bugs de rafraichissements lorsque certains programmes sont quittés avec AutoHotkey, en fait Windows les quitte proprement mais n'a pas le temps de rafraichir l'icone du programme dans la task bar en bas a droite, et vous seriez obliger de passer dessus avec votre souris pour qu'il disparaisse (pas très propre).
Ce script va faire le taff ni vu ni connu ;)

Intéressons nous donc a la ligne : Process Close,
Process Close, est la commande qui indique a AutoHotkey quel programme il doit fermer, suffit donc de rajouter le nom du prorgramme dans mon cas :

Code : Tout sélectionner

Process Close, Irotate.exe
Process Close, HyperSearch.exe
Process Close, Xpadder.exe
Process Close, KILL MOUSE.exe
Process Close, KILL TASK.exe
6°) Voila plus qu'a tester les scripts et les compiler, double click sur START.ahk, la logiquement les programmes que vous avez indiquer dans votre script se lancent ; double click sur EXIT.ahk, la logiquement les programmes lancés devraient se fermer.

Une fois satisfait faites un click droit sur votre script et clicker sur 'Compile Script' ca va vous creer un executable exe donc vous pouvez meme desinstaller autohotkey si vous voulez mais je vous conseille de le garder tant cet outil est utile :p

Il ne vous suffit plus qu'a indiquer dans votre fichier settings.ini le chemin de vos executable, dans mon cas je veux concerver la portabilité de Hyperspin j'ai donc mis mes 2 executables dans le meme dossier que mon Hyperspin.exe, du coup ma config ressemble a ca et tout roule impec ;) :

Code : Tout sélectionner

[Startup Program]
Executable=START.exe
Paramaters=
Working_Directory=
WinState=NORMAL
[Exit Program]
Executable=EXIT.exe
Paramaters=
Working_Directory=
WinState=NORMAL
Si vous avez des questions des remarques n'hésitez pas ;)
Dernière modification par Bopz44 le 06 févr. 2015 - 14:54, modifié 1 fois.

Avatar de l’utilisateur
camarade35
Maître
Maître
Messages : 4230
Inscription : 05 sept. 2013 - 01:00
Localisation : Chevaigné
A remercié : 619 fois
A été remercié : 739 fois
Contact :

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyperspin

Message par camarade35 » 24 août 2014 - 19:00

Joli Tuto, merci.
préservation du patrimoine vidéoludique et de notre planète

Avatar de l’utilisateur
lankou910
Gourou
Gourou
Messages : 725
Inscription : 16 mai 2013 - 01:00
Localisation : Bordeaux
A remercié : 76 fois
A été remercié : 107 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par lankou910 » 01 déc. 2014 - 07:02

bonjour

je viens essais c'est super astuce tres pratique mais car il y a toujour un mais
je n'arrive pas a le fais fonctionner.

de ce que j ai vus il manque des petite chose.Ici et la...
mon module
#NoTrayIcon
#NoEnv
#Persistent
#SingleInstance force

Process Close,

DetectHiddenWindows, On
SetWorkingDir %A_ScriptDir%



NoTrayOrphans()
ExitApp
Return

NoTrayOrphans() {
TrayInfo:= TrayIcons(sExeName,"ahk_class Shell_TrayWnd","ToolbarWindow32" . GetTrayBar()) "`n"
. TrayIcons(sExeName,"ahk_class NotifyIconOverflowWindow","ToolbarWindow321")
Loop, Parse, TrayInfo, `n
{
ProcessName:= StrX(A_Loopfield, "| Process: ", " |")
ProcesshWnd:= StrX(A_Loopfield, "| hWnd: ", " |")
ProcessuID := StrX(A_Loopfield, "| uID: ", " |")
If !ProcessName ProcesshWnd
RemoveTrayIcon(ProcesshWnd, ProcessuID)
}
}
RemoveTrayIcon(hWnd, uID, nMsg = 0, hIcon = 0, nRemove = 2) {
NumPut(VarSetCapacity(ni,444,0), ni)
NumPut(hWnd , ni, 4)
NumPut(uID , ni, ici il faut metre quoi?????
NumPut(1|2|4, ni,12)
NumPut(nMsg , ni,16)
NumPut(hIcon, ni,20)
Return DllCall("shell32\Shell_NotifyIconA", "Uint", nRemove, "Uint", ni)
}
TrayIcons(sExeName,traywindow,control) {
DetectHiddenWindows, On
WinGet, pidTaskbar, PID, %traywindow%
hProc:= DllCall("OpenProcess", "Uint", 0x38, "int", 0, "Uint", pidTaskbar)
pProc:= DllCall("VirtualAllocEx", "Uint", hProc, "Uint", 0, "Uint", 32, "Uint", 0x1000, "Uint", 0x4)
SendMessage, 0x418, 0, 0, %control%, %traywindow%
Loop, %ErrorLevel%
{
SendMessage, 0x417, A_Index-1, pProc, %control%, %traywindow%
VarSetCapacity(btn,32,0), VarSetCapacity(nfo,32,0)
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", pProc, "Uint", btn, "Uint", 32, "Uint", 0)
iBitmap := NumGet(btn, 0)
idn := NumGet(btn, 4)
Statyle := NumGet(btn, meme question
If dwData := NumGet(btn,12)
iString := NumGet(btn,16)
Else dwData := NumGet(btn,16,"int64"), iString:=NumGet(btn,24,"int64")
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", dwData, "Uint", nfo, "Uint", 32, "Uint", 0)
If NumGet(btn,12)
hWnd := NumGet(nfo, 0)
, uID := NumGet(nfo, 4)
, nMsg := NumGet(nfo, et toujour la meme question on mes quoi????
, hIcon := NumGet(nfo,20)
Else hWnd := NumGet(nfo, 0,"int64"), uID:=NumGet(nfo, 8), nMsg:=NumGet(nfo,12), hIcon := NumGet(nfo,24)
WinGet, pid, PID, ahk_id %hWnd%
WinGet, sProcess, ProcessName, ahk_id %hWnd%
WinGetClass, sClass, ahk_id %hWnd%
If !sExeName || (sExeName = sProcess) || (sExeName = pid)
VarSetCapacity(sTooltip,128), VarSetCapacity(wTooltip,128*2)
, DllCall("ReadProcessMemory", "Uint", hProc, "Uint", iString, "Uint", wTooltip, "Uint", 128*2, "Uint", 0)
, DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wTooltip, "int", -1, "str", sTooltip, "int", 128, "Uint", 0, "Uint", 0)
, sTrayIcons .= "idx: " . A_Index-1 . " | idn: " . idn . " | Pid: " . pid . " | uID: " . uID . " | MessageID: " . nMsg . " | hWnd: " . hWnd . " | Class: " . sClass . " | Process: " . sProcess . " | Icon: " . hIcon . " | Tooltip: " . wTooltip . "`n"
}
DllCall("VirtualFreeEx", "Uint", hProc, "Uint", pProc, "Uint", 0, "Uint", 0x8000)
DllCall("CloseHandle", "Uint", hProc)
return sTrayIcons
}
GetTrayBar() {
ControlGet, hParent, hWnd,, TrayNotifyWnd1 , ahk_class Shell_TrayWnd
ControlGet, hChild , hWnd,, ToolbarWindow321, ahk_id %hParent%
Loop {
ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
If Not hWnd
Break
Else If hWnd = %hChild%
{
idxTB := A_Index
Break
}
}
Return idxTB
}

StrX( H,BS="",ES="",Tr=1,ByRef OS=1) {
return,(SP := InStr(H,BS,0,OS)) (L := InStr(H,ES,0,SP+StrLen(BS))) (OS := L + StrLen(ES)) ? SubStr(H,SP := Tr ? SP + StrLen(BS) : SP ,(Tr ? L : L + StrLen(ES))-SP) : ""
}
donc vu qu'il manque des info ,sa ne fonctionne pas ......
Image

la question est "c'est comme sa marche ce bousin" ^^
Image

Avatar de l’utilisateur
Bopz44
Gourou
Gourou
Messages : 833
Inscription : 25 oct. 2012 - 01:00
A remercié : 4 fois
A été remercié : 8 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par Bopz44 » 01 déc. 2014 - 09:47

Deja il ne manque rien dans le code.
Ensuite si tu avais bien lu le tuto tu verrais qu'il faut creer 2 SCRIPTS
Et pas tout copier dans un seul...

Bref relis attentivement

Avatar de l’utilisateur
lankou910
Gourou
Gourou
Messages : 725
Inscription : 16 mai 2013 - 01:00
Localisation : Bordeaux
A remercié : 76 fois
A été remercié : 107 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par lankou910 » 01 déc. 2014 - 19:08

bonsoir

oui j'ai bien compris qu'il fallait un script un start et un exit comme le tuto.....
j'ai bien lu le tuto le premier script "start" fonctionne a merveille
mais la deuxième partis ne fonctionne pas cher moi je donne même un capture écran de l'erreur....

Image

si je met la parenthèse demander voici l'erreur

Image

et encore merci.

Edit:Je viens de voir le premier sujet ici viewtopic.php?f=40&t=4807

il y as bien des incohérence car celui sur l'autre poste fonctionne parfaitement......
le voici
le module
#NoTrayIcon
#NoEnv
#Persistent
#SingleInstance force

Process Close, Xpadder.exe

DetectHiddenWindows, On
SetWorkingDir %A_ScriptDir%



NoTrayOrphans()
ExitApp
Return

NoTrayOrphans() {
TrayInfo:= TrayIcons(sExeName,"ahk_class Shell_TrayWnd","ToolbarWindow32" . GetTrayBar()) "`n"
. TrayIcons(sExeName,"ahk_class NotifyIconOverflowWindow","ToolbarWindow321")
Loop, Parse, TrayInfo, `n
{
ProcessName:= StrX(A_Loopfield, "| Process: ", " |")
ProcesshWnd:= StrX(A_Loopfield, "| hWnd: ", " |")
ProcessuID := StrX(A_Loopfield, "| uID: ", " |")
If !ProcessName ProcesshWnd
RemoveTrayIcon(ProcesshWnd, ProcessuID)
}
}
RemoveTrayIcon(hWnd, uID, nMsg = 0, hIcon = 0, nRemove = 2) {
NumPut(VarSetCapacity(ni,444,0), ni)
NumPut(hWnd , ni, 4)
NumPut(uID , ni, 8)
NumPut(1|2|4, ni,12)
NumPut(nMsg , ni,16)
NumPut(hIcon, ni,20)
Return DllCall("shell32\Shell_NotifyIconA", "Uint", nRemove, "Uint", ni)
}
TrayIcons(sExeName,traywindow,control) {
DetectHiddenWindows, On
WinGet, pidTaskbar, PID, %traywindow%
hProc:= DllCall("OpenProcess", "Uint", 0x38, "int", 0, "Uint", pidTaskbar)
pProc:= DllCall("VirtualAllocEx", "Uint", hProc, "Uint", 0, "Uint", 32, "Uint", 0x1000, "Uint", 0x4)
SendMessage, 0x418, 0, 0, %control%, %traywindow%
Loop, %ErrorLevel%
{
SendMessage, 0x417, A_Index-1, pProc, %control%, %traywindow%
VarSetCapacity(btn,32,0), VarSetCapacity(nfo,32,0)
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", pProc, "Uint", btn, "Uint", 32, "Uint", 0)
iBitmap := NumGet(btn, 0)
idn := NumGet(btn, 4)
Statyle := NumGet(btn, 8)
If dwData := NumGet(btn,12)
iString := NumGet(btn,16)
Else dwData := NumGet(btn,16,"int64"), iString:=NumGet(btn,24,"int64")
DllCall("ReadProcessMemory", "Uint", hProc, "Uint", dwData, "Uint", nfo, "Uint", 32, "Uint", 0)
If NumGet(btn,12)
hWnd := NumGet(nfo, 0)
, uID := NumGet(nfo, 4)
, nMsg := NumGet(nfo, 8)
, hIcon := NumGet(nfo,20)
Else hWnd := NumGet(nfo, 0,"int64"), uID:=NumGet(nfo, 8), nMsg:=NumGet(nfo,12), hIcon := NumGet(nfo,24)
WinGet, pid, PID, ahk_id %hWnd%
WinGet, sProcess, ProcessName, ahk_id %hWnd%
WinGetClass, sClass, ahk_id %hWnd%
If !sExeName || (sExeName = sProcess) || (sExeName = pid)
VarSetCapacity(sTooltip,128), VarSetCapacity(wTooltip,128*2)
, DllCall("ReadProcessMemory", "Uint", hProc, "Uint", iString, "Uint", wTooltip, "Uint", 128*2, "Uint", 0)
, DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "str", wTooltip, "int", -1, "str", sTooltip, "int", 128, "Uint", 0, "Uint", 0)
, sTrayIcons .= "idx: " . A_Index-1 . " | idn: " . idn . " | Pid: " . pid . " | uID: " . uID . " | MessageID: " . nMsg . " | hWnd: " . hWnd . " | Class: " . sClass . " | Process: " . sProcess . " | Icon: " . hIcon . " | Tooltip: " . wTooltip . "`n"
}
DllCall("VirtualFreeEx", "Uint", hProc, "Uint", pProc, "Uint", 0, "Uint", 0x8000)
DllCall("CloseHandle", "Uint", hProc)
return sTrayIcons
}
GetTrayBar() {
ControlGet, hParent, hWnd,, TrayNotifyWnd1 , ahk_class Shell_TrayWnd
ControlGet, hChild , hWnd,, ToolbarWindow321, ahk_id %hParent%
Loop {
ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
If Not hWnd
Break
Else If hWnd = %hChild%
{
idxTB := A_Index
Break
}
}
Return idxTB
}

StrX( H,BS="",ES="",Tr=1,ByRef OS=1) {
return,(SP := InStr(H,BS,0,OS)) (L := InStr(H,ES,0,SP+StrLen(BS))) (OS := L + StrLen(ES)) ? SubStr(H,SP := Tr ? SP + StrLen(BS) : SP ,(Tr ? L : L + StrLen(ES))-SP) : ""
}
chercher les trois erreurs ^^
Image

Avatar de l’utilisateur
lanner
Amateur
Amateur
Messages : 59
Inscription : 29 juil. 2016 - 18:45
Localisation : Saône et Loire
A remercié : 2 fois
A été remercié : 6 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par lanner » 05 août 2016 - 15:38

Bonjour,
[Désolé de déterrer ce topic]
La configuration du settings.ini ressemble à quoi ?
Un peu embrouillé sur les balises la... il serait plus clair de mettre les scripts exacts sur une base et un explicatif en parallèle
merci
Dernière modification par lanner le 10 août 2016 - 12:38, modifié 2 fois.

Avatar de l’utilisateur
moustic
Administrateur
Administrateur
Messages : 6940
Inscription : 23 juil. 2014 - 01:00
Localisation : Saint Jean Rohrbach
A remercié : 333 fois
A été remercié : 677 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par moustic » 05 août 2016 - 15:48

:mrgreen: T'es jamais content toi :lol:
Image

Avatar de l’utilisateur
lanner
Amateur
Amateur
Messages : 59
Inscription : 29 juil. 2016 - 18:45
Localisation : Saône et Loire
A remercié : 2 fois
A été remercié : 6 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par lanner » 05 août 2016 - 15:57

Désolé :) c'est mon vieille âge...
Je viens d'une autre planète de forums ou les tutos sont plus "formatés" pour une lecture lambda.

Avatar de l’utilisateur
camarade35
Maître
Maître
Messages : 4230
Inscription : 05 sept. 2013 - 01:00
Localisation : Chevaigné
A remercié : 619 fois
A été remercié : 739 fois
Contact :

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par camarade35 » 05 août 2016 - 18:39

On s'excuse mais malheureusement, nous avons migré deux fois de suite et l'évolution PHPBB a causé quelques soucis, mais si tu es chaud pour refaire la mise en page (des topics que tu ne trouves pas à ton goût), on s'empressera d'éditer en conséquences ;)
préservation du patrimoine vidéoludique et de notre planète

Avatar de l’utilisateur
lanner
Amateur
Amateur
Messages : 59
Inscription : 29 juil. 2016 - 18:45
Localisation : Saône et Loire
A remercié : 2 fois
A été remercié : 6 fois

Re: [TUTO] Demarrer plusieurs programmes a l'ouverture d'Hyp

Message par lanner » 07 août 2016 - 22:41

Pas de soucis je peu faire de la mise en page , le soir je ne fait rien de spécial :)

Répondre

Revenir à « Tutos pour RocketLauncher »