アプリ版:「スタンプのみでお礼する」機能のリリースについて

どなたか教えてください。
あるサイトでショートカット作成方法を発見し、作ってみました。
ファイルのショートカットは作成できるのですがフォルダのショートカットがうまくいきません。
どなたか教えていただけませんか。よろしくお願いします。

<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="shortcut">
<?job error="true" debug="true" ?>
<object id="objFs" progid="Scripting.FileSystemObject" />
<script language="VBScript">
<![CDATA[
' ショートカットの情報を記述した設定ファイルの格納場所
' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある
Const CONFIG="C:\config.dat"
Set objTs=objFs.OpenTextFile(CONFIG,1,False)
' config.datの情報に基づいて、ショートカットを作成する
' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。
Do While Not objTs.AtEndOfStream
aryDat=Split(objTs.readLine,Chr(9))
Set objShl=WScript.CreateObject("WScript.Shell")
Set objCut=objShl.CreateShortcut(objFs.BuildPath(objShl.SpecialFolders("Desktop"),aryDat(0) & ".lnk")) ' デスクトップ上にショートカットを作成
objCut.Description=aryDat(1) ' コメント
objCut.TargetPath=aryDat(2) ' リンク先のパス
objCut.Hotkey=aryDat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+)
' 作業フォルダ(My Documents)
'objCut.WorkingDirectory=objShl.SpecialFolders("MyDocuments")'
objCut.Save ' 生成したショートカットを保存
Loop
objTs.Close
]]>
</script>
</job>
</package>

A 回答 (2件)

「うまくいかない」 とは?


ファイルへのショートカットは正しく作られているということですか?
WSF ファイルを実行するユーザーと対象フォルダーへのアクセス権限の関係とかは確認されましたか?

当方 Windows 7 x64 ですが、VBScript にしてみて試したところファイル、フォルダーとも正常にショートカット ファイルが作成されましたよ。ちなみに管理者権限を持っているユーザーで実行しています。

Config.DAT の中身
メモ帳.lnk[TAB]メモ帳[TAB]C:\Windows\System32\notepad.exe[TAB]Ctrl+Alt+A
Tools.lnk[TAB]Toolsフォルダー[TAB]D:\Tools[TAB]Ctrl+Alt+B

test.vbs の中身
Option Explicit
Const CONFIG = "d:\config.DAT"
Dim fso, ts
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(CONFIG, 1, False)
Dim aryDat
Dim shellObject, shortCutObject
Do While Not ts.AtEndOfStream
aryDat = Split(ts.ReadLine, Chr(9))
Set shellObject = WScript.CreateObject("WScript.Shell")
Set shortCutObject = shellObject.CreateShortcut(fso.BuildPath(shellObject.SpecialFolders("Desktop"), aryDat(0) & ".lnk"))
shortCutObject.Description = aryDat(1)
shortCutObject.TargetPath = aryDat(2)
shortCutObject.Hotkey = aryDat(3)
shortCutObject.Save
Loop
ts.Close
    • good
    • 0

上記のままだですと動作確認がとれません。



まず、VBスクリプト部分を別ファイルに抜き出して実験しました。

もしくは Excel のVBエディッタで デバッグもできます。


以下は VBS 部分です。 別ファイルで 「TEST.vbs」という名前で保存してください。

ご希望通りに動作します。(デバッグ済です)

==========================================================================
MsgBox "ショートカット作成プログラム"

Set objShl = WScript.CreateObject("WScript.Shell")

Set OBJfs = CreateObject("scripting.FileSystemObject")

LocDeskTOP = objShl.SpecialFolders("Desktop") 'ショートカットの作成場所
LocMYDOC = objShl.SpecialFolders("MyDocuments") '作業フォルダ(My Documents)

' ショートカットの情報を記述した設定ファイルの格納場所
' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある

Const CONFIG = "C:\config.dat"

Set objTs = OBJfs.OpenTextFile(CONFIG, 1, False)
' config.datの情報に基づいて、ショートカットを作成する
' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホット・キーが定義されているものとする。

StrREC = objTs.readLine 'レコードの読み込み

Do While Not objTs.AtEndOfStream

arydat = Split(StrREC, vbTab)

StrCutname = LocDeskTOP & "\" & Trim(arydat(0)) & ".lnk"

Set objCut = objShl.CreateShortcut(StrCutname)

With (objCut)
.Description = arydat(1) ' コメント
.TargetPath = arydat(2) ' リンク先のパス
.Hotkey = arydat(3) ' ホット・キー(Alt+、Ctrl+、Shift+、Ext+)

.WorkingDirectory = objShl.SpecialFolders(LocMYDO) '作業フォルダ(My Documents)

MsgBox "ショートカット:" & StrCutname & vbCrLf & _
"コメント:" & arydat(1) & vbCrLf & _
"リンク先のパス:" & arydat(2) & vbCrLf & _
"ホット・キー:" & arydat(3)


.Save ' 生成したショートカットを保存

End With

StrREC = objTs.readLine
Loop

objTs.Close

==========================================================================


あとは XSLファイルに実装してください。

これで動かなければ XMLおよびXSLのどちらかの問題となります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!