3

VB6を使用してAdobe Readerがインストールされているかどうかを検出したい。また、インストールされていないことが検出された場合、最善の解決策は何ですか?

4

3 に答える 3

1

大まかな方法​​(プログラムファイルディレクトリのファイルをチェックする)がありますが、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から呼び出すことができるプログラムです。

于 2008-11-13T23:45:41.723 に答える
1

「HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader」にアクセスし、そのサブキーを列挙します。これにより、このコンピュータに存在する「Adobe Reader」(以前の「Acrobat Reader」) のインストールのバージョン番号が取得されます。

http://pdftohtml.sourceforge.net/も参照し てください。pdf ファイルを解析できるアプリケーションが見つからない場合は、それを html に変換して、ほとんどの Web ブラウザで利用できる Web ブラウザでアクセスすることもできます。オペレーティングシステム。

于 2008-12-07T16:20:35.950 に答える
0

チェックインします

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つ少ないステップで同じことを達成できます。

于 2009-02-16T14:05:37.730 に答える