2013-06-24 8 views
1

전에 Question을 요청했지만 아무도 대답 할 수없는 것 같습니다. 그래서 지금 내 질문을 변경합니다. 나는이 코드 작업을 실제로 발견하고 그림을 클립 보드에 복사합니다. 그러나 코드가 WinXp에서 실행될 때 Clipboard.ContainImage를 감지하지 못하는 경우에도 작동하지 않는 것처럼 보입니다. 그렇다면이 가이드 나 다른 가이드를 수정하는 방법을 아는 사람이 있습니까?클립 보드는 런타임에 작동하지 않습니다

For Each sp As EXCEL.Shape In xlsheet.Shapes 
        sp.Copy() 
        picname = sp.Name 
        If Strings.Left(picname, 5) = "Group" Then 
         If My.Computer.Clipboard.ContainsImage Then 
          xlPic = My.Computer.Clipboard.GetImage 
          PictureBox1.Image = xlPic 
          ImageList1.Images.Add(xlPic) 
         Else 
          sp.Copy() 
          xlPic = My.Computer.Clipboard.GetImage 
          PictureBox1.Image = xlPic 
          ImageList1.Images.Add(xlPic) 
         End If 
        End If 
       Next 

UPDATE 사실 나는이 코드에 오류 없어. 하지만 문제가 있습니다. Win XP에서이 응용 프로그램을 실행할 때. Clipboard.ContainsImage는 감지 할 수없고 내 PictureBox는 클립 보드에 들어있는 이미지를 가져올 수 없습니다. 나는 그림판에 붙여 넣으려고했으나 프로그램에 따라 달리기는 할 수 없었다. Win 7에서 실행하면 잘 돌아갔습니다.

my.computer.clipboard.setimage(sp) 

setImage 방법 설명서와 함께

sp.copy() 

의 모든 인스턴스를 교체

+0

당신이 이것을 실행하려고 할 때 어떤 오류를받을 수 있나요? – 5uperdan

+0

나는 질문을 – Kasnady

답변

0

당신은 (안정적) 데이터를 클립 보드에 복사 기대할 수 없다 즉시 붙여 넣을 수 있습니다. 다른 응용 프로그램은 클립 보드 업데이트에 반응하고 있으며 그 동안에 많은 문제가 발생할 수 있습니다. 다른 응용 프로그램이 붙여 넣기를 위해 클립 보드를 열었 기 때문에 이미지를 붙여 넣을 수 없습니다. 복사 후에 sleep()을 도입하고 그걸로 도망 갈 수 있습니다. 이런 식으로 클립 보드를 사용하는 것은 불편합니다. 클립 보드는 PROGRAMMER가 아닌 USER의 편의를 위해 제공됩니다.

+0

당신이 말한대로, 나는 이해했다. 사실 내가 원하는대로 클립 보드를 테스트했습니다. 그것은 실제로 무엇을 포함하고 있습니다. 문제는 Win XP에서 작동하지 않는 이유입니다. 나는 나의 프로그램을 제외한 모든 소프트웨어를 닫음으로써 시험을 보았다] – Kasnady

1

이, 그것은 승리 XP, VS2010 및 Excel2007과 나를 위해 일하려고 :

appExcel = CreateObject("Excel.Application") 
wbExcel = appExcel.Workbooks.Open(Filename) 
wsExcel = wbExcel.Worksheets(1) 

For Each oShape As Shape In wsExcel.Shapes 

        If oShape.Name.StartsWith("Picture") Then 
         Clipboard.Clear() 
         oShape.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap) 

         If Clipboard.ContainsImage() Then 
          Dim img As Image 
          img = Clipboard.GetImage() 
          PictureBox1.Image = img 
          PictureBox1.Visible = True 
          Exit For 
        End If 
       Next oShape 
관련 문제