VB6を使用してAdobe Readerがインストールされているかどうかを検出したい。また、インストールされていないことが検出された場合、最善の解決策は何ですか?
3 に答える
大まかな方法(プログラムファイルディレクトリのファイルをチェックする)がありますが、http://www.windowsdevcenter.com/pub/a/windows/2004のようにフルレジストリ関数(vbからのgetSettingではない)を宣言することをお勧めします/ 06/15/ VB_Registry_Keys.htmlおよびフェッチ
HKEY_CLASSES_ROOT \ .pdf
それがあれば、PDFを読むことができるものがあります(これはあなたが望むものですよね?)。
ボーナスとして、HKEY_CLASSES_ROOT \ .pdf \ OpenWithListには、.pdfファイルを開く登録済みアプリケーションのリスト(すごい)があります...そのリストのキー名は、shell( "start" + OpenAppName)を使用してvbから呼び出すことができるプログラムです。
「HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader」にアクセスし、そのサブキーを列挙します。これにより、このコンピュータに存在する「Adobe Reader」(以前の「Acrobat Reader」) のインストールのバージョン番号が取得されます。
http://pdftohtml.sourceforge.net/も参照し てください。pdf ファイルを解析できるアプリケーションが見つからない場合は、それを html に変換して、ほとんどの Web ブラウザで利用できる Web ブラウザでアクセスすることもできます。オペレーティングシステム。
チェックインします
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
そのリストに目を通すと、インストールされているすべてのプログラムが表示されます。通常、アプリケーション固有のレジストリエントリの検索は機能しますが、アプリケーションをアンインストールするときに、それらが残される場合があります。
クラスルートは、PDFリーダーがインストールされているかどうかを示すのに適しています。
また、デフォルトのアプリケーションを使用してPDFを処理するだけの場合は、次のことができます。(これはVBScriptにありますが、VB6でも同じように機能するはずです)
File = <PDF FILE HERE>
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & File & Chr(34)
コメントへの回答
vb6のレジストリにアクセスするには、いくつかの方法があります。RegReadはその1つです。 WMIは別の方法です。サブキーを簡単に列挙できるので、WMIを使用します。
HKEY_CLASSES_ROOTを読み取ることには何の問題もありませんが、デフォルトのpdfハンドラーを起動するだけの場合は、上記のWshShell.Runコマンドを使用して実行してみませんか?1つ少ないステップで同じことを達成できます。