2014-10-14 4 views
0

'c : \ program files (x86) \ myfolder \'에 프로그램을 설치하고 vbs 스크립트를 호출하여 바탕 화면 바로 가기를 만듭니다.vbs로 바로 가기 만들기

Dim linkObj 
Set linkObj = shellObj.CreateShortcut(linkFilePath) 

linkObj.WindowStyle = "1" 
linkObj.HotKey = linkHotKey 
linkObj.Arguments = linkArgs 
linkObj.Description = linkDesc 
linkObj.TargetPath = linkTarget 
linkObj.WorkingDirectory = linkWorkingDir 
If (linkIconPath <> "") Then linkObj.IconLocation = linkIconPath 
linkObj.Save 

I는 어떤 환경 문자열없이 전체 문자열을 전달 합니다만, 최종 결과에 linkIconPath 변경되는 행 '% PROGRAMFILES % \ MyFolder에 \ myicon.ico', 즉 윈도우 익스플로러 (인 64 비트를 의미 응용 프로그램)은 'c : \ Program Files \ myfolder \ myicon.ico'대신 'c : \ Program Files (x86) \ myfolder \ myicon.ico'에서 myicon.ico를 검색합니다.

사고? (아이콘 파일을 분리 된 리디렉션되지 않은 폴더에 복사하고 싶지 않음)

+0

각 변수에 할당 할 문자열 값을 표시 할 수 있습니까? – Bond

+0

'linkIconPath'가 "변경"되었다면 우리는 처음에 변수에 할당 된 것을 볼 수 없으므로 우리에게 보여준 코드에서 발생하고 있다는 것을 모릅니다. 당신이 게시 한 코드에 도달하기 전에 끝냈습니다. – eurotrash

+0

linkIconPath는 'c : \ Program Files (x86) \ myfolder \ myicon.ico'입니다. – Alex

답변

0

"c : \ Program Files (x86) \ myfolder \ myicon.icon"문자열을 다음과 같이 변환하여 문제를 해결했습니다. 옛날 도스 8.3 짧은 형식 IconLocation에 전달하기 전에 : '에 c : \ PROGRA을 2 ~ \ MyFolder에 \ myicon.ico'

set fsObj = CreateObject("Scripting.FileSystemObject") 

folder = "c:\Program Files (x86)" 
set fsoFolder = fsObj.GetFolder(folder) 
folder = fsoFolder.ShortPath 

IconLocation 여전히 '% 시스템 드라이브 % \ PROGRA ~ 2 \ MyFolder에에 문자열을 조작합니다 \ myicon.ico '이지만 그 점에 대해서는 괜찮습니다.