클립보드 텍스트를 검색하고 VBScript로 작업

4717 단어 VBScriptPowerShellC#

개요



VBScript를 사용하여 클립 보드에서 텍스트를 꺼내고 싶다는 이야기.

결론으로서는, Clipboard.GetText 메소드(System.Windows.Forms)로 클립보드로부터 텍스트를 꺼내 표준 출력에 내고, VBScript로 그것을 받는다고 하는 방법으로 생긴 것 같다.
  • Clipboard.GetText 메서드 (System.Windows.Forms) - @ MSDN
  • maruton's memorandum: [Script][VBS] 명령 실행(WSHShell.Exec)

  • 2017.08.21 추가



    vbs + C#과 달리 콘솔이 한순간 표시되어 버리는 단점은 있습니다만, vbs 단독판(내부에서 powershell 이용)을 만들었습니다.
    Set exec = CreateObject("WScript.Shell").Exec("powershell.exe -sta  -Command Add-Type -Assembly System.Windows.Forms; [System.Windows.Forms.Clipboard]::GetText()")
    exec.StdIn.Close
    WScript.Echo exec.StdOut.ReadAll
    

    참고


  • PowerShell 시작하기~PowerShell 입문~_ PowerShell에서 클립보드 취급
  • PowerShell의 원라이너를 WScript.Shell의 Exec()하면 종료 대기를 풀 수 없다. _ Windows Script Programming
  • VBS(WSH)로 표준출력 획득

  • 기타



    Hey, Scripting Guy! 클립보드에서 URL을 가져오고 브라우저에서 해당 웹 사이트를 여는 방법이 있습니까?은 Internet Explorer (COM)를 통해 클립 보드에서 텍스트를 얻는 방법을 설명합니다.

    이 방법이라면 클립 보드에서 텍스트를 꺼내는 정도 때문에 매번 IE가 시작되기 때문에 무겁고,
    ↓의 팝업이 나오기 때문에 약간 맛있지 않다.



    클립보드 → 표준 출력



    콘솔 애플리케이션에서 다음 코드를 빌드합니다.
    이번에는 ConsoleApplication1.exe라는 파일을 만들 수 있도록 빌드했다.

    콘솔 앱에서 클립보드 사용에 대해 - 질문·상담이라면 MSN 상담 상자 에 쓰여진 대로, [STAThreadAttribute]를 Main 함수 앞에 넣지 않으면 움직이지 않는 것 같다.

    Program.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms; //参照設定にも追加
    
    namespace ConsoleApplication1
    {
        class Program
        {
            [STAThreadAttribute]//←デフォルトでは追加されないので注意
            static void Main(string[] args)
            {
                string str = Clipboard.GetText();
                Console.WriteLine(str);
            }
        }
    }
    

    표준 출력에서 ​​꺼내기



    ConsoleApplication1.exe와 동일한 폴더 (경로가있는 폴더)에 다음 스크립트 (test.vbs)
    를 만들었다.

    test.vbs
    Dim wsh
    Set wsh = CreateObject("WScript.Shell")
    
    Dim exec
    Set exec = wsh.Exec("ConsoleApplication1.exe")
    
    str = exec.StdOut.ReadAll
    
    WScript.Echo str
    

    결과



    test.vbs의 내용을 복사하고 test.vbs를 두 번 클릭하면 다음 팝업이 표시됩니다.
    클립보드의 텍스트를 얻을 수 있는 것을 확인할 수 있었다.



    비고



    카피한 것보다 개행이 많은 생각이 든다(Console.WriteLine등의 영향이라고 생각한다)가, 우선 그대로 한다.

    좋은 웹페이지 즐겨찾기