2010-11-21 29 views
0

私のプログラムをUSBメモリスティックに移動したい。それはメモリスティックでのみ実行され、コピーされません(C#で書かれ、データベースは約3GBあります)。 どこでそれを見つけることができますか、それをどうすればいいですか?USBメモリで動作するプログラムを作成する

+3

実際の問題は何ですか?なぜあなたはいつもプログラムを書くのですか?このプログラムは、実行された後、HDDからメモリにロードされたのかUSBドライブからロードされたのかを知ることさえできず、それはOSのビジネスだ。ファイルの相対パスを使用すれば、それだけです。 – Kos

+0

どうすればいいですか?独自のオペレーティングシステムを作成するか、3GBデータベースと一緒にUSBスティックに収まるOSを見つけてください。 – stillstanding

+0

実際の問題は、そのプログラムをメモリースティック上でのみ実行する方法です。ハードドライブや他の場所にはコピーしないでください。ユーザーがhddにコピーしても、それは動かされるべきではありません。 – Savas

答えて

1

あなたが説明したことは、合理的に行うことはできません。ユーザーがプログラムを実行できる場合は、そのプログラムを実行できます。彼らはあなたのUSBスティックからそれをロードしたかどうかは関係ありません。あなたはそれがUSBスティックから(@ Kosのコメントに従って相対パスで)実行されていると仮定して書くことができますが、それは人々がハードドライブにコピーして実行することを妨げません。 USBスティックがどこにマウントされるかわからないので、絶対パスを使用することさえできません。

+0

私はプログラムをメモリスティックに配布したいと思っています。私は単純にそれをコピーし、コピーを避ける方法はありません。 – Savas

+0

@Savas:かなり。 drmスキームにお金を使うことはできますが、うまくいきません。 – nmichaels

1

nmichaelsに同意できない場合は、リムーバブルストレージまたはハードドライブから実行している場合はC#でチェックすることができます。
このスレッドをチェック:How to detect if any specific drive is a hard drive?
しかし、それを逆にしてハードドライブ上で実行するのは簡単すぎます。
追加保護として、USBドライブのシリアルを読み取ることができます。一致しない場合は、プログラムを強制終了します。
...ハードコアで、特定のUSBドライブモデルを使用し、VID/PID、またはチップ自体(量産ツールのチェック)を読みたい場合は、
最終的には、プログラムがそれに値する場合、誰かがそれを元に戻して保護スキームを破るでしょう:)

+0

私は覚えているように、私はそれをやったと思う:) – Savas

関連する問題