tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルProcess.Startメソッドの戻り値を取得できなくて困っています。
記事No1120
投稿日: 2004/10/25(Mon) 20:42
投稿者ysue
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003
Process.StartメソッドのProcess型戻り値を取得できなくて困っています。
引数には次の様にショートカットファイルを指定していますが、戻り値はNothingです。
 Dim prcPrc As Process
 prcPrc=Process.Start("c:\Documents and Settings\ysue\デスクトップ\010メモ帳.lnk")
実行ファイル名を指定すると戻り値はしっかり取得できます。
  prcPrc = Process.Start("notepad.exe")
メモ帳は既起動しています。
どなたかアドバイスお願いします。

[ツリー表示へ]
タイトルRe: Process.Startメソッドの戻り値を取得できなくて困っています。
記事No1121
投稿日: 2004/10/27(Wed) 10:30
投稿者るしぇ
> メモ帳は既起動しています。

Process.Start メソッドのヘルプに書いてある内容は確認しましたか?。
>プロセスが既に実行されている場合、追加のプロセス リソースは
>起動されません。代わりに、既存のプロセス リソースが再利用され、
>新しい Process コンポーネントは作成されません。この場合、
>新しい Process コンポーネントが返される代わりに、
>Start は呼び出し元のプロシージャに null 参照
>(Visual Basic では Nothing) を返します。

[ツリー表示へ]
タイトルアドバイスありがとうございます。
記事No1124
投稿日: 2004/10/27(Wed) 21:16
投稿者ysue
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003  
るしぇさんへ
 アドバイスありがとうございます。それとすいませんでした。
「メモ帳は既起動しています。」はご記入で、正しくは
「メモ帳は起動しています。」でした。
メモ帳は
 prcPrc=Process.Start("c:\Documents and Settings\ysue\デスクトプ\010メモ帳.lnk")
で起動するのですが、戻り値が返ってこないのです。
GDNJ掲示板、InSide.NET会議室にも質問してまして、お蔭様で解決の方向はわかったのですが、
実力不足でなかなか思うように行きません。
それは
「IShellLinkインターフェイスを用いることで、ショートカットの作成・読み込みができる。」
です。ショートカットファイルから実行ファイル名を取得できれば解決なのです。
詳しくはGDNJ掲示板、InSide.NET会議室を参照して下さい。
自分は今上記の解読やWindowsScriptHostで同じ事が出来ないものかと色々試しているのですが、
うまくいっていません。
これからもよろしくお願いします。


[ツリー表示へ]
タイトルこれまででわかったことを報告します。
記事No1133
投稿日: 2004/10/29(Fri) 00:08
投稿者ysue
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003
 これまででわかったことを報告します。
    1.Process.Startメソッドは引数にlnkファイルを指定しても戻り値を返さない。
    2.lnkファイルのリンク先を引数にすれば可能。
    3.lnkファイルからリンク先を取得するにはIShellLinkインターフェイスを用い
    るとよい。
    4.Windows Script Hostでもlnkファイルからリンク先を取得できそう。(?)
  です。
  このところはWindows Script Hostでlnkファイルのリンク先を取得しようとして
  いるのですが、膠着状態で、VB.NETからWindows Script Host ObjectModel
  の使い方をよく理解してないからだと思っています。
  いい情報がありましたらお願いします。 

[ツリー表示へ]