バージョン情報の取得には興味がありません。私がしたいのは、アプリケーションが正規バージョンのWindowsでのみ実行され、海賊版では実行されないようにすることだけです。 Windowsはこれを決定するためにいくつかのトリックを使用しますが、いくつかの制限はありますが、海賊版の実行を継続できます。
それで、アプリケーションが合法的な正規のWindowsバージョンにインストールされているかどうかを確認する方法はありますか? (少なくとも、ビスタ以上です。)
はっきりさせておきますが、マイクロソフトは、ユーザーが検証されていないバージョンや違法なバージョンのオペレーティングシステムを使用することを禁止していません。したがって、そのようなバージョンでアプリケーションをブロックする理由もありません。しかし、アプリケーションに不正なバージョンを認識させ、Windowsバージョンが検証されていないことをユーザーに警告したいと思います。多分彼は忘れていたかもしれません、多分彼は検証したくないでしょう。これには多くの理由が考えられますが、私はそれらをブロックしたくありません。Windowsバージョンの問題を認識させるだけです。
また、誰かが有効でないバージョンのWindowsを使用している場合、それが商用製品である場合は、自分のソフトウェアのより厳密な検証チェックを実行したい場合があります。私の無料の製品では、1日に1回だけ表示される迷惑なポップアップが必要です。
検証されていないWindowsバージョンの主な問題は、追加のスパイウェアやその他のマルウェアが含まれている可能性があり、必要なすべての更新を取得できない可能性があることです。これらのWindowsバージョンは、検証済みのWindowsバージョンよりも保護が弱くなります。私のアプリケーションのいくつかは機密データを使用しているので、マルウェアがこの機密データを漏らしたくないのです。
さらに、私は海賊版ソフトウェアが無料の代替手段にとって有害であると考えています。 LinuxとFreeBSDは、ローミングしている海賊版Windowsのすべてのバージョンがなければ、はるかに人気があったでしょう。海賊版ソフトウェアを使用している人は、そもそも製品を購入した可能性は低いですが、代わりに無料の代替品を使用することをお勧めします。海賊版ソフトウェアはマイクロソフトに少し害を及ぼしますが、人々をそれらの商用製品に接続し続けるので、無料コミュニティにさらに害を及ぼします...
Microsoftでさえこれを確実に行うことはできません。マイクロソフトがWGAを回避するためにほとんど何もする必要がないように見える人々に対して、WGAを更新しているため、これは絶え間ない軍拡競争です。これは、ビジネス顧客である可能性のある顧客を煩わせないように、OSのコピーを事前にインストールして検証する必要があるOEMのニーズによって悪化します。 I thinkこれに関する「ハック」の多くはOEMマスターキーに関係していると思います。
基本的に、海賊版ソフトウェア(Windowsとソフトウェアを含む)は、技術的な問題ではなく、社会的な問題です。ソフトウェアベンダー(imho)としてできる最悪のことは、正当な顧客を海賊版にするまで海賊を阻止しようとして、正当な顧客を苛立たせることです。例:一部のゲームでは、ルートキットをインストールし、アクティベーションの数を制限しています(例:Spore)。
特にアクティベーションを制限することは悪い習慣です。人々はこれらのことについて生来の公平感を持っています。何かのアクティベーションが2つあり、Windows XPを実行していて、Windows 7 RCに切り替えてから、リリース時に実際のバージョンのWindows 7に切り替える場合は、制限を超えています。 Sporeの場合と同様に、電話で追加のアクティベーションをリクエストできますが、この種のことは人々を間違った方法でこすります。そのような制限を回避することでかなり正当化されると感じる人もいます。
あなたの質問に反対票を投じることに関しては、おそらく私が上に挙げたのと同様の理由で、人々があなたの意図を気に入らないからだと思います。
それは興味深い質問ですが、間違った態度です。ユーザーの業務をチェックするのはあなたの仕事ではありません。
またはあなたもそうかもしれません:
あなたのソフトウェアを彼らに売る前に彼らの税申告を要求する
彼らが前科を持っていない警察からの書面による証拠(または彼らは再び法律を破ってあなたのソフトウェアを海賊行為する傾向があるかもしれません)
トレントソフトウェアがインストールされているかどうかを確認します(もちろん、合法的に使用できますが、インストールされているという事実は、誤用する可能性があることを意味します)
ウイルス対策ソフトウェアがインストールされているかどうかを確認します(社会的な認識を高め、スパムボットネットワークとの戦いを支援するため)
信用履歴レポート(彼らがすぐに請求書を支払い、ソフトウェアの支払いも忘れないようにするため)
末期疾患がないことを家族の医師から証明します(非難されていると感じている人は法律に違反し、ソフトウェアを海賊版にする可能性があります)
どこに向かっているのか分かりますか?
ソフトウェアを開発するための重要なルールの1つ-ソフトウェアは有用であり、ユーザーを満足させ、障壁をできるだけ少なくする必要があります。
あなたはおそらく知ることができず、気にするべきではありません。
インストールの法的ステータスは、ディスク上のものとはまったく関係ありません。同じインストールを今すぐライセンス解除し、マシンに変更を加えることなく次の分にライセンスを取得できます。
これはMicrosoftが心配していることです。あなたではありません。
Microsofは小さなAPIを提供していますが、MSDNは、使用されているDLLがクライアントシステムにどのようにインストールされているかについては何も述べていません。WindowsUpdateのSP2またはWGAユーティリティに付属していると思います。 。
これは、APIの MSDNページ です。
海賊版のPhotoshopが実行されていないことも確認してみませんか?または半減期? Microsoft Officeはどうですか?
私がこれでどこに行くのか分かりますか?現状の著作権侵害チェックには特に同意しませんが、頭痛の種を減らすために、自分のソフトウェアが著作権侵害されているかどうかだけを心配し、必要な手段(ライセンスキー、自宅への電話、あなたが望むどんな悪質で邪魔な方法でも!)。したがって、Windowsを海賊版にした人は、あなたのソフトウェアも海賊版にする可能性があります。ソフトウェアがWindowsの海賊版を実行していることを検出した場合にソフトウェアの使用をブロックするつもりなら、それは悪い習慣です。検証ソフトウェアにバグがある、または正しくない、またはSOMEBODY ELSEがこの人物の合法的に購入したライセンスキーを使用したためにソフトウェアが海賊版であると報告した場合はどうなりますか?
特にWindowsは、あなたのビジネスではないことを除けば、Windowsの正当なコピーが海賊版であると誤って報告することが知られています。あなたは誰かの検証ツールを信頼するべきではありませんが、あなた自身のものを信頼するべきです(そしてそれでもあなたはくだらない検証ツールをコーディングしたかもしれません!)。不正な著作権侵害の報告を引き起こす可能性のあるものはたくさんあります。私はこのアプローチを避けたいと思います。
私の見方では、他人の検証システムが十分に正確であるとは信じられないので、自分のソフトウェアを使用しないように人々を締め出すことができます。
どこから来たのかはわかりますが、MSにWindowsの検証について心配させることをお勧めします。
さらに、マシン自体を介してインストールの真の法的ステータスを知る方法は実際にはありません。確かに、「検証」とそのすべてのジャズがありますが、それは真実の文脈ではほとんど意味がありません。
技術的な部分を尋ねるだけで、あなたの理由/哲学を省くことはあなたに直接の答えを与えたでしょう。