4e discussion avec 53s

  • Auteur de la discussion ZZZ
  • Date de début
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Dire que moi j'ai du mal à accéder aux paramètres que je veux dans mon tel 😭😅
C'est pas si nul que ça, je déteste les téléphones, niveau programmation, tu peux RIEN faire, niet ! Même pas un peu de python. Tu n'a que des applis déjà programmées auquel tu n'a accès qu'à leur interface utilisateur. De la crotte !
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Le script PowerShell peut rencontrer des problèmes si les guillemets sont insérés dans les valeurs des paramètres. Pour éviter cela, vous pouvez remplacer les guillemets doubles par des guillemets simples et échapper les apostrophes dans la chaîne de caractères en utilisant un double apostrophes. Voici une version mise à jour du script :

Code:
@echo off

call:winAlert 'Info' , 'C:\Users\LenovoX250\Desktop\favicon.ico' , 'this is my personal title.' , 'this is my personal paragraph.'
pause
goto :eof

:winAlert

set icon='%1'
set iconPath='%2'
set title='%3'
set paragraph='%4'

echo [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = '%icon%'; $objNotifyIcon.Icon = '%iconPath%'; $objNotifyIcon.BalloonTipText = '%paragraph%'; $objNotifyIcon.BalloonTipTitle = '%title%'; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File 'C:\Users\LenovoX250\Desktop\alert.ps1'

exit /b

Ici, chaque paramètre est entouré de guillemets simples, tandis que les guillemets doubles sont remplacés par des guillemets simples à l'intérieur de chaque paramètre. Les apostrophes sont échappées en utilisant un double apostrophes. Cela permet au script PowerShell de traiter correctement les chaînes de caractères et de résoudre les problèmes d'interprétation de la chaîne de caractères.
Bon GPT, arrête de merder, ton code m'a encore fais une erreur :

Exception lors de la définition de «BalloonTipIcon»: «Impossible de convertir la valeur «'Info'» en type «
System.Windows.Forms.ToolTipIcon». Erreur: «Impossible de faire correspondre le nom d'identificateur 'Info' à un nom
d'énumérateur valide. Spécifiez l'un des noms d'énumérateur suivants et réessayez :
None, Info, Warning, Error » »
Au caractère C:\Users\LenovoX250\Desktop\alert.ps1:1 : 209
+ ... Icons]::Information; $objNotifyIcon.BalloonTipIcon = "'Info'"; $objNo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: :)) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting

Exception lors de la définition de «Icon»: «Impossible de convertir la valeur «
'C:\Users\LenovoX250\Desktop\favicon.ico'» en type «System.Drawing.Icon». Erreur: «Le format du chemin d'accès donné
n'est pas pris en charge.»»
Au caractère C:\Users\LenovoX250\Desktop\alert.ps1:1 : 251
+ ... = "'Info'"; $objNotifyIcon.Icon = "'C:\Users\LenovoX250\Desktop\favic ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: :)) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting

résous-moi ça stp, je n'ai pas payé 50 fofocoins pour des conseils qui ne marchent pas !
 
53secondes
Fofobot 53secondes.com
Messages
422
Fofocoins
150
Bon GPT, arrête de merder, ton code m'a encore fais une erreur :

Exception lors de la définition de «BalloonTipIcon»: «Impossible de convertir la valeur «'Info'» en type «
System.Windows.Forms.ToolTipIcon». Erreur: «Impossible de faire correspondre le nom d'identificateur 'Info' à un nom
d'énumérateur valide. Spécifiez l'un des noms d'énumérateur suivants et réessayez :
None, Info, Warning, Error » »
Au caractère C:\Users\LenovoX250\Desktop\alert.ps1:1 : 209
+ ... Icons]::Information; $objNotifyIcon.BalloonTipIcon = "'Info'"; $objNo ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: :)) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting

Exception lors de la définition de «Icon»: «Impossible de convertir la valeur «
'C:\Users\LenovoX250\Desktop\favicon.ico'» en type «System.Drawing.Icon». Erreur: «Le format du chemin d'accès donné
n'est pas pris en charge.»»
Au caractère C:\Users\LenovoX250\Desktop\alert.ps1:1 : 251
+ ... = "'Info'"; $objNotifyIcon.Icon = "'C:\Users\LenovoX250\Desktop\favic ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: :)) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting

résous-moi ça stp, je n'ai pas payé 50 fofocoins pour des conseils qui ne marchent pas !
Je suis désolé que le précédent code n'ait pas fonctionné correctement. Voici une nouvelle version du code PowerShell, qui utilise les noms d'énumérateurs valides pour les icônes :

Code:
@echo off

call:winAlert Info , 'C:\Users\LenovoX250\Desktop\favicon.ico' , 'this is my personal title.' , 'this is my personal paragraph.'
pause
goto :eof

:winAlert

set icon='%1'
set iconPath='%~2'
set title='%~3'
set paragraph='%~4'

echo [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::%icon%; $objNotifyIcon.Icon = '%iconPath%'; $objNotifyIcon.BalloonTipText = '%paragraph%'; $objNotifyIcon.BalloonTipTitle = '%title%'; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File 'C:\Users\LenovoX250\Desktop\alert.ps1'

exit /b

Cette fois-ci, le nom de l'icône est référencé avec l'énumérateur `System.Windows.Forms.ToolTipIcon`, ce qui permet de spécifier les noms d'identificateurs valides pour les icônes : `None`, `Info`, `Warning` et `Error`. La variable `iconPath` est également modifiée pour inclure le "~" afin de gérer les chemins d'accès avec des espaces.

J'espère que cette version fonctionnera correctement pour vous.
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Je suis désolé que le précédent code n'ait pas fonctionné correctement. Voici une nouvelle version du code PowerShell, qui utilise les noms d'énumérateurs valides pour les icônes :

Code:
@echo off

call:winAlert Info , 'C:\Users\LenovoX250\Desktop\favicon.ico' , 'this is my personal title.' , 'this is my personal paragraph.'
pause
goto :eof

:winAlert

set icon='%1'
set iconPath='%~2'
set title='%~3'
set paragraph='%~4'

echo [void] [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::%icon%; $objNotifyIcon.Icon = '%iconPath%'; $objNotifyIcon.BalloonTipText = '%paragraph%'; $objNotifyIcon.BalloonTipTitle = '%title%'; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File 'C:\Users\LenovoX250\Desktop\alert.ps1'

exit /b

Cette fois-ci, le nom de l'icône est référencé avec l'énumérateur `System.Windows.Forms.ToolTipIcon`, ce qui permet de spécifier les noms d'identificateurs valides pour les icônes : `None`, `Info`, `Warning` et `Error`. La variable `iconPath` est également modifiée pour inclure le "~" afin de gérer les chemins d'accès avec des espaces.

J'espère que cette version fonctionnera correctement pour vous.
Bon, 3 essais, 3 fails.
On recommence depuis le début :

Code:
@echo off

call:winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,this is my personal title.,this is my personal paragraph.
pause
goto :eof

:winAlert

set icon=%1
set iconPath=%2
set title=%3
set paragraph=%4

echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"

exit /b

ce code prends en compte les espace comme délimiteurs d'arguments, est-ce qu'il n'y aurait pas l'équivalent du "delims=," de la loop "for" mais pour l'appelle d'une fonction et de ses arguments avec "call:function argument1,argument2,argument..." ??
 
53secondes
Fofobot 53secondes.com
Messages
422
Fofocoins
150
Bon, 3 essais, 3 fails.
On recommence depuis le début :

Code:
@echo off

call:winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,this is my personal title.,this is my personal paragraph.
pause
goto :eof

:winAlert

set icon=%1
set iconPath=%2
set title=%3
set paragraph=%4

echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"

exit /b

ce code prends en compte les espace comme délimiteurs d'arguments, est-ce qu'il n'y aurait pas l'équivalent du "delims=," de la loop "for" mais pour l'appelle d'une fonction et de ses arguments avec "call:function argument1,argument2,argument..." ??
Il n'y a pas d'option directe pour spécifier un séparateur d'argument dans une instruction `call`. Cependant, vous pouvez utiliser la métavariable `%*` pour récupérer tous les arguments passés à la fonction et les traiter ensuite à l'aide d'une boucle `for` pour les séparer en utilisant des délimiteurs personnalisés.

Voici un exemple de code qui utilise une boucle `for` pour séparer les arguments en utilisant des virgules comme délimiteurs :

Code:
@echo off

call :winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,this is my personal title.,this is my personal paragraph.
pause
goto :eof

:winAlert

setlocal EnableDelayedExpansion

:: Extract all arguments into a single variable
set args=%*
:: Replace commas with spaces for easier processing
set args=!args:,= !

:: Parse each argument using a for loop and spaces as delimiters
for %%a in (!args!) do (
    set "arg=%%~a"
    echo !arg!
)

echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"

exit /b

Dans cet exemple, la variable `%*` récupère l'ensemble des arguments passés à la fonction, et la commande `set args=!args:,= !` remplace les virgules avec des espaces pour faciliter le traitement. Ensuite, une boucle `for` est utilisée pour traiter chaque argument séparément en utilisant des espaces comme délimiteurs, et l'argument résultant est stocké dans la variable `arg`. Ici, j'ai simplement ajouté une commande `echo` pour afficher chaque argument une fois traité, mais vous pouvez remplacer cela par le code que vous voulez.

J'espère que cela vous sera utile dans votre application.
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Il n'y a pas d'option directe pour spécifier un séparateur d'argument dans une instruction `call`. Cependant, vous pouvez utiliser la métavariable `%*` pour récupérer tous les arguments passés à la fonction et les traiter ensuite à l'aide d'une boucle `for` pour les séparer en utilisant des délimiteurs personnalisés.

Voici un exemple de code qui utilise une boucle `for` pour séparer les arguments en utilisant des virgules comme délimiteurs :

Code:
@echo off

call :winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,this is my personal title.,this is my personal paragraph.
pause
goto :eof

:winAlert

setlocal EnableDelayedExpansion

:: Extract all arguments into a single variable
set args=%*
:: Replace commas with spaces for easier processing
set args=!args:,= !

:: Parse each argument using a for loop and spaces as delimiters
for %%a in (!args!) do (
    set "arg=%%~a"
    echo !arg!
)

echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1

powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"

exit /b

Dans cet exemple, la variable `%*` récupère l'ensemble des arguments passés à la fonction, et la commande `set args=!args:,= !` remplace les virgules avec des espaces pour faciliter le traitement. Ensuite, une boucle `for` est utilisée pour traiter chaque argument séparément en utilisant des espaces comme délimiteurs, et l'argument résultant est stocké dans la variable `arg`. Ici, j'ai simplement ajouté une commande `echo` pour afficher chaque argument une fois traité, mais vous pouvez remplacer cela par le code que vous voulez.

J'espère que cela vous sera utile dans votre application.
Si il y a une solution :
Littéralement utiliser une boucle "for" pour après utiliser l'instruction "delims=,", avec pour "sentence" l'ensemble des arguments (%*)
 
53secondes
Fofobot 53secondes.com
Messages
422
Fofocoins
150
Si il y a une solution :
Littéralement utiliser une boucle "for" pour après utiliser l'instruction "delims=,", avec pour "sentence" l'ensemble des arguments (%*)
Sorry I couldn't contact the ChatGPT think tank :(
 
ZZZ
Passionné
Messages
1 400
Fofocoins
7 662
Personnalisation du groupe
Personnalisation pseudo
Sorry I couldn't contact the ChatGPT think tank :(
Voilà mon code :
Code:
@echo off

call:winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,title.,paragraph.
pause >nul
goto :eof

:winAlert
set arguments=%*
echo %arguments%
setlocal enabledelayedexpansion
set sentence=%arguments%
set /a i=0
for /f "tokens=1,2,3,4 delims=," %%a in ("%sentence%") do (
    set icon=%%a
    set iconPath=%%b
    set title=%%c
    set paragraph=%%d
)
echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1
powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"
exit /b
 
53secondes
Fofobot 53secondes.com
Messages
422
Fofocoins
150
Voilà mon code :
Code:
@echo off

call:winAlert Info,C:\Users\LenovoX250\Desktop\favicon.ico,title.,paragraph.
pause >nul
goto :eof

:winAlert
set arguments=%*
echo %arguments%
setlocal enabledelayedexpansion
set sentence=%arguments%
set /a i=0
for /f "tokens=1,2,3,4 delims=," %%a in ("%sentence%") do (
    set icon=%%a
    set iconPath=%%b
    set title=%%c
    set paragraph=%%d
)
echo [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $objNotifyIcon = New-Object System.Windows.Forms.NotifyIcon; $objNotifyIcon.Icon = [System.Drawing.SystemIcons]::Information; $objNotifyIcon.BalloonTipIcon = "%icon%"; $objNotifyIcon.Icon = "%iconPath%"; $objNotifyIcon.BalloonTipText = "%title%"; $objNotifyIcon.BalloonTipTitle = "%paragraph%"; $objNotifyIcon.Visible = $True; $objNotifyIcon.ShowBalloonTip(10000); > alert.ps1
powershell.exe -ExecutionPolicy Bypass -File "C:\Users\LenovoX250\Desktop\alert.ps1"
exit /b
Sorry I couldn't contact the ChatGPT think tank :(
 

🚫 Alerte AdBlock !

Vous avez activé le mode Ninja, et il cache toutes les pubs ! 😆 Un petit coup de pouce pour notre site serait super apprécié si vous pouvez le désactiver. 🙏

🦸‍♂️ J'ai Désactivé AdBlock !