IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Affichage tout genre de BalloonTip avec PowerShell et Batch [Batch]


Sujet :

Scripts/Batch

  1. #1
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Affichage tout genre de BalloonTip avec PowerShell et Batch
    Je suis entrain de tester ce script Batch+Powershell pour afficher les différents types de BalloonTip !
    Tout fonctionne, sauf le ShowBalloonTip avec l'info, il ne marche pas chez moi , et je n'ai recu aucune erreur ?
    Peut-être j'ai manqué quelque chose ???

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @echo off
    REM ///////////////////////////////////////////
    REM /// Lines to edit the content below
    REM /// Avaliable "Icon-values" are: 
    REM /// Info, Warning,
    REM /// Error, None
    set SEC=20
    set TITLE=Reboot Required
    set CONTENT=Please save your work
    set BUBICON=Error
    set TSKBRICON=Error
    Call :ShowBalloonTip "%TSKBRICON%" "%SEC%" "%TITLE%" "%CONTENT%" "%BUBICON%"
    pause
    set BUBICON=Info
    set TSKBRICON=Info
    Call :ShowBalloonTip "%TSKBRICON%" "%SEC%" "%TITLE%" "%CONTENT%" "%BUBICON%"
    pause
    set BUBICON=Warning
    set TSKBRICON=Warning
    Call :ShowBalloonTip "%TSKBRICON%" "%SEC%" "%TITLE%" "%CONTENT%" "%BUBICON%"
    pause
    Exit /b
    ::*********************************************************************************************
    :ShowBalloonTip
    (
        echo [reflection.assembly]::loadwithpartialname^("System.Windows.Forms"^)
        echo [reflection.assembly]::loadwithpartialname^("System.Drawing"^)
        echo $notify = new-object system.windows.forms.notifyicon
        echo $notify.icon = [System.Drawing.SystemIcons]::'%~1'
        echo $notify.visible = $true
        echo $notify.showballoontip^('%~2','%~3','%~4',[system.windows.forms.tooltipicon]::%~5^)
    )>%tmp%\%~n0.ps1
    Powershell.exe -ExecutionPolicy bypass -file %tmp%\%~n0.ps1
    Rem >nul
    Exit /b
    ::*********************************************************************************************

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour,

    Peux tu m'expliquer l’inférer de faire du Batch et du Powerhsell en même temps ?
    Pourquoi ne tout faire en Powershell......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function Show-BalloonTip {
      [CmdletBinding(SupportsShouldProcess = $true)]
      param (
        [Parameter(Mandatory=$true)]$Text,
        [Parameter(Mandatory=$true)]$Title,   
        [ValidateSet('None', 'Info', 'Warning', 'Error')]$Icon = 'Info',
        $Timeout = 10000
      )
      Add-Type -AssemblyName System.Windows.Forms
    
      if ($script:balloon -eq $null) { $script:balloon = New-Object System.Windows.Forms.NotifyIcon }
    
      $path                    = Get-Process -id $pid | Select-Object -ExpandProperty Path
      $balloon.Icon            = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
      $balloon.BalloonTipIcon  = $Icon
      $balloon.BalloonTipText  = $Text
      $balloon.BalloonTipTitle = $Title
      $balloon.Visible         = $true
    
      $balloon.ShowBalloonTip($Timeout)
    }
    
    Show-BalloonTip -Text 'Bonjour comment vas tu ?' -Title 'Yo !' -Icon 'Info'
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Bonjour,

    Peux tu m'expliquer l’inférer de faire du Batch et du Powerhsell en même temps ?
    Pourquoi ne tout faire en Powershell......
    Car tout simplement je veux l'utiliser dans des messages personnalisés en batch ou bien en vbscript au lieu d'un MsgBox donc je dois générer du code powershell dans un batch ou bien dans un vbscript

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ne quote pas les messages à chaque fois !

    Ok je enfin je reste quand même sur ma question, pourquoi ne pas tout faire en PS directement ?

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    powershell -Command "& { param ($time,$title,$text,$icon)  [reflection.assembly]::loadwithpartialname('System.Windows.Forms') | Out-Null; [reflection.assembly]::loadwithpartialname('System.Drawing')| Out-Null; $notify = new-object system.windows.forms.notifyicon; $notify.icon = [System.Drawing.SystemIcons]::Information; $notify.visible = $true; $notify.showballoontip($time,$title,$text,$icon) }" 100 'Titre' 'ceci est un test' 'Error'
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Salut Hackoofr,

    Est-ce le résultat désiré?

    Nom : vbsaddictsshoulddie.jpg
Affichages : 1035
Taille : 212,9 Ko

    Si oui, vérifie que tes ballon tips ne sont pas désactivées...
    Jete un oeil dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced voir si tu n'as pas une petite clé au doux nom de EnableBalloonTips qui serait à 0, si c'est le cas, supprime la et reboot.

    Sinon, regarde dans le journal d’événements de Windows (voir dans les journaux d'applications à la rubrique Windows Powershell) si il n'y a pas eu d'erreurs reportées voir tester ton code sur un autre ordinateur (même virtuel) et/ou désactiver tes logiciels de sécurité (j'en doute mais bon on ne sait jamais).
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  6. #6
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ce que je propose est plus simple....
    Pas de passage par un fichier PS1 à delete ensuite !

    Et merci de penser aux Out-Null pour éviter d'avoir l'affichage de chose non voulu
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    ça marche bien en remplaçant 'Error' par 'Info'
    C'est ça le résultat que je souhaite avoir :

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    powershell -Command "& { param ($time,$title,$text,$icon)  [reflection.assembly]::loadwithpartialname('System.Windows.Forms') | Out-Null; [reflection.assembly]::loadwithpartialname('System.Drawing')| Out-Null; $notify = new-object system.windows.forms.notifyicon; $notify.icon = [System.Drawing.SystemIcons]::Information; $notify.visible = $true; $notify.showballoontip($time,$title,$text,$icon) }" 100 'Titre' 'ceci est un test' 'Info'

    Une autre petite question comment peut-on décomposer cette commande sur plusieurs lignes au lieu d'une seule ? juste pour la lecture !

  8. #8
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    En même temps tu remplace par ce que tu veux....
    Le but de mon code est de pouvoir mettre Info, Warning, Error.....
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #9
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Voici un code d'exemple d'utilisation
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    @echo off
    Color 0A & Mode con cols=80 lines=4
    Title ShowBalloonTip with a TypeWriter and Speaking Voice by Hackoo 2016
    Call :TypeWriter "This an example with a ShowBalloonTip with an Information message"
    Call :Get_Ip_Public
    Call :PS_Sub 'Information' 100 '%IP%' "'Your Public IP is %IP%'" 'Info'
    echo( & Pause
    Call :TypeWriter "This an example with a ShowBalloonTip with a Warning message"
    Call :PS_Sub 'Warning' 100 '%IP%' "'Your Public IP is %IP%'" 'Warning'
    echo( & Pause
    Call :TypeWriter "This an example with ShowBalloonTip with a Error message"
    Call :PS_Sub 'Error' 100 '%IP%' "'Your Public IP is %IP%'" 'Error'
    echo( & Pause
    Exit /B
    ::*************************************************************
    :PS_Sub $notifyicon $time $title $text $icon
    PowerShell  ^
      [reflection.assembly]::loadwithpartialname('System.Windows.Forms') ^| Out-Null; ^
      [reflection.assembly]::loadwithpartialname('System.Drawing') ^| Out-Null; ^
      $notify = new-object system.windows.forms.notifyicon; ^
       $notify.icon = [System.Drawing.SystemIcons]::%1; ^
       $notify.visible = $true; ^
       $notify.showballoontip(%2,%3,%4,%5)
    %End PowerShell%
    exit /B
    ::*************************************************************
    :TypeWriter
    Cls
    echo(
    (
    echo strText=wscript.arguments(0^)
    echo intTextLen = Len(strText^)
    echo intPause = 150
    echo For x = 1 to intTextLen
    echo     strTempText = Mid(strText,x,1^)
    echo     WScript.StdOut.Write strTempText
    echo     WScript.Sleep intPause
    echo Next
    echo Set Voice=CreateObject("SAPI.SpVoice"^)
    echo voice.speak strText
    )>%tmp%\%~n0.vbs
    @cscript.EXE /noLogo "%tmp%\%~n0.vbs" "%~1"
    Exit /B
    ::**************************************************************
    :Get_Ip_Public
    (
        echo Set http = CreateObject("MSXML2.ServerXmlHttp"^)
        echo http.Open "GET","http://icanhazip.com",False
        echo http.Send
        echo Wscript.Echo http.responseText
    )>%tmp%\%~n0.vbs
    for /f %%a in ('Cscript /nologo %tmp%\%~n0.vbs') do (set IP=%%a)
    Exit /B
    ::***********************************************************************************************

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tout nouveau, j'arrive avec une question ^^
    Par petitedouceur dans le forum C++
    Réponses: 25
    Dernier message: 06/11/2005, 00h48
  2. Réponses: 2
    Dernier message: 14/03/2005, 19h55
  3. Affichage d'un graphique complet avec scrollbar
    Par MMIC dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 27/01/2005, 16h37
  4. Problème d'affichage redondant (genre boucle)
    Par EJ dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 01/06/2004, 11h41
  5. Réponses: 3
    Dernier message: 08/04/2004, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo