none
PowerShell 에서 Icon 사용 RRS feed

답변

  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 트레이아이콘 찾아주세요에 대한 답변을 드리겠습니다.

     

    Step 1 : ICO 파일

     

    Windows 폴더에 있는 ICO파일의 모든 이미지를 추출 합니다.

     

    function Get-IconWithSave

    {

     

        param(

            [Parameter(Mandatory=$true)]

            $iconPath

        )

       

     

        md $iconPath -ea 0 | out-null

     

     

        dir $env:windir *.exe -ea 0 -rec |

     

            % {

           

                $baseName = [System.IO.Path]::GetFileNameWithoutExtension($_.FullName)

       

                Write-Progress "Icon 압축 해제" $baseName

       

                [System.Drawing.Icon]::ExtractAssociatedIcon($_.FullName).ToBitmap().Save("$iconPath\$BaseName.ico")   

            }

    }

     

     

    Get-IconWithSave "C:\Icons"

     

     

     

    Step 2 : 쉘 아이콘

     

    NotifyIcon을 생성 한후 Shell의 아이콘을 이용해서 아이콘을 설정한 후 사용자에게 메시지를 표시합니다.

     

    function Start-NotifyWindow

    {

     

        param(

            [Parameter(Mandatory=$true)]

            $message

        )

       

        trap [Exception]

        {

            Write-Host $_.Exception.Message

            continue;

        }

       

       

        [system.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null

       

        $notifyWindow = New-Object System.Windows.Forms.NotifyIcon

       

        $path = Get-Process -id $pid | Select-Object -ExpandProperty Path

     

        $icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)

     

        $notifyWindow.Icon = $icon

        

        $notifyWindow.BalloonTipIcon = 'Info'

     

        $notifyWindow.BalloonTipText = $message

     

        $balloon.BalloonTipTitle = 'Done'

     

        $notifyWindow.Visible = $true

     

        $notifyWindow.ShowBalloonTip(10000)

    }

     

     

    Start-NotifyWindow "Hi."

     

     

    참고 자료

     

    Out-Null

    http://technet.microsoft.com/ko-kr/library/dd315279.aspx

     

    New-Object

    http://technet.microsoft.com/en-us/library/dd315334.aspx

     

    Get-Process

    http://technet.microsoft.com/ko-kr/library/dd347630.aspx

     

    Write-Host

    http://technet.microsoft.com/en-us/library/dd347596.aspx

    • 답변으로 표시됨 김도남 2011년 11월 2일 수요일 오전 9:11
    2011년 11월 1일 화요일 오전 9:20
    중재자