- PR -

[VB.NET]ショートカットを作成する方法

1
投稿者投稿内容
あき
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 72
投稿日時: 2003-10-23 12:43
こんにちは。
VB.NETを利用して、実行ファイルのショートカットを作成しようとしています。
ショートカットのリンク先に、
"c:\User\t001\pn.exe" u45k539u SQLSV14
などを格納して複数のショートカットを生成しようとしています。
どのようなコーディングになるのでしょうか?
どうぞよろしくお願いします。

用途は、ターミナルサービスに接続するユーザ毎に実行パラメータを変えたいためです。
ユーザが約1500人いて、手作業では手におえませんので、バッチ化を考えました。
よろしくお願いします。
あき
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 72
投稿日時: 2003-10-23 14:23
自己レスです。
いろいろと探していたら、マイクロソフトに「プログラムでショートカットを作成する方法」
というのがありました。
http://www.microsoft.com/japan/msdn/vs_previous/vbasic/Resource/tips.htm
こちらで、解決しそうなので、試してみます。

Declare Function fCreateShellLink Lib "STKIT432.DLL" _
(ByVal lpstrFolderName as String _
ByVal lpstrLinkName as String _
ByVal lpstrLinkPath as String _
ByVal lpstrLinkArgs as String ) As Long

iLong = fCreateShellLink( _
"ショートカットを作成するフォルダのパス", _
"ショートカットの名称", _
"ファイルのパス", _
"ショートカットに付けたい引数")
注:「ショートカットを作成するフォルダのパス」が「スタートメニューの プログラムフォルダを基点とした相対パス」になる。


cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-10-23 15:45
以下のようにするとデスクトップにメモ帳へのショートカットができます。
コード:

Imports System.Environment
Imports IWshRuntimeLibrary

Public Module Module1
Sub Main()
Dim d As String = GetFolderPath(SpecialFolder.DesktopDirectory)
Dim f As String = d + "\メモ帳へのショートカット.lnk"
Dim wsc As WshShellClass = New WshShellClass
Dim ws As WshShortcut = CType(wsc.CreateShortcut(f), WshShortcut)
ws.TargetPath = GetFolderPath(SpecialFolder.System) + "\notepad.exe"
ws.IconLocation = "notepad.exe, 0"
ws.Description = "メモ帳へのショートカット"
ws.WorkingDirectory = d
ws.Save()
End Sub
End Module


参照の追加で、COMの「Windows Script Host Object Model」を追加して下さい。

[ メッセージ編集済み 編集者: cats 編集日時 2003-10-23 15:50 ]
あき
ベテラン
会議室デビュー日: 2003/07/23
投稿数: 72
投稿日時: 2003-10-23 18:28

CATSさま、アドバイスありがとうございました。
STKIT432.DLLを使用すると、イベント起動時に不思議な動きをしているので(1回目のイベントでショートカットが作成されない)、WSHのほうへ切り替えます。

1

スキルアップ/キャリアアップ(JOB@IT)