任意のショートカットを作成する方法を自分なりに調べましたが、埒があきませんでした。ご教授お願いします。
(Programming Library の過去ログを検索したりしましたら、ちょうど以下のサイトへのリンクがあり、
http://www.geocities.co.jp/SilkRoad/4511/vb/shlink.htm
よく読んでみました。すると、興味深いこんなことが書かれてありました。
> その後、さるべーじさんが「猿頁」において、 IShellLink インターフェースを VB から使用する方法を紹介しておられるのを知りました。ショートカットの作成のみならず、「リンク先」「作業フォルダ」などの細かい情報の設定・取得も可能です。
そこで、「猿頁」ページへ「http://homepage3.nifty.com/salv/index.htm」ジャンプしてみたのですが、どこに書かれているのか分からなくて挫折しました。情けないです・・・)
ページを一番下まで行くと、"旧ページ"がありますね。
その中の"パソコンはおもちゃ"のページです。
私の作ったサンプルでも良ければ、以下を利用してみてください。
http://www.ocv.ne.jp/~oratorio/windev/vb/CreateShortcut.CAB
# といっても、その中身は、さるべーじさんが紹介されているものと
# 大して変わりませんけれども…。
あとは、このあたりとか。
http://groups.google.co.jp/groups?hl=ja&lr=&ie=UTF-8&oe=UTF-8&c2coff=1&selm=uyLvBMAVDHA.2364%40TK2MSFTNGP10.phx.gbl
それ以外のショートカット作成法としては、IShellLinkインターフェイスを、
参照設定無しで(つまり、COM APIを直接呼び出す事で)利用するという
VB6のサンプルを、K.J.K.さんが公開しておられたかと。
レスどうもありがとうございます。
>VB6のサンプルを、K.J.K.さんが公開しておられたかと。
「猿頁」ページ「http://homepage3.nifty.com/salv/index.htm」から「K.J.K.さん」のページへのリンクがありましたが「http://www.cmpk.or.jp/user/akiya/hobbyvb/index.html」、「Not Found」でした・・・。
さるべーじさんの「猿頁」においてご紹介されているショートカットの作成で、「SHELLLNK.TLB」やサンプルプログラム「TESTSLNK.VBG」などを、VS6.0 CD からみつけることが出来ました。
確かに、実に簡単にショートカット作成を実装されておられまして、あっけにとられています。「.TLB」ファイルは自分のEXEファイルと一緒に再配布する必要はないんですね。驚きです。
沢山のレスをいただいて、なんとか頑張れそうな気がしてきました。ありがとうございました。
> 「猿頁」ページ「http://homepage3.nifty.com/salv/index.htm」から
> 「K.J.K.さん」のページへのリンクがありましたが
> 「http://www.cmpk.or.jp/user/akiya/hobbyvb/index.html」、「Not Found」でした・・・。
yahooかgoogleにて、リンクページに書かれていたサイト名『趣味のVisual Basic』を検索してみてください。
> > > VB6のサンプルを、K.J.K.さんが公開しておられたかと。
これは、下記ですね。
http://www.koalanet.ne.jp/~akiya/vbindeep/ShlLink2.lzh
> > > VB6のサンプルを、K.J.K.さんが公開しておられたかと。
>これは、下記ですね。
>http://www.koalanet.ne.jp/~akiya/vbindeep/ShlLink2.lzh
この「ShlLink2.lzh」は、すごいですね。ソースを見ました。
' COMオブジェクトのメソッドを呼び出す関数。
Private Declare Function DispCallFunc Lib "oleaut32.dll" _
( _
ByVal pvInstance As Long, _
ByVal oVft As NCOMFunctionOffset, _
ByVal CallConv As NAutoCallConv, _
ByVal vtReturn As VbVarType, _
ByVal cActuals As Long, _
ByRef prgvt As Integer, _
ByRef prgpvarg As Long, _
ByRef pvargResult As Variant _
) As Long
「DispCallFunc」で何でもできてしまうみたいですね。勉強になります・・・。
ツイート | ![]() |