• ベストアンサー

コピーできないようにしたい。

 昔作ったソフトというかプログラムがあるんです。タイマーを作ったんです。(windows95でVisualBasicで作りました。自主的に作り始めたわけではなくて、デザイン以外には興味は全くなかったので、作り方もほとんど忘れてしまったのですが)  それを友達にコピーしてあげることになりました。しかし、そのコピーしてあげた友達から、次の人にコピーされるのが嫌なんです。特別すごいもの、というわけではなく普通のタイマーなんですが、デザインに力を込めたので思い入れがあるんです。わたしの持ってる元のやつから以外からはコピーできないようにする方法はありますか?  フロッピーを預かってコピーしてあげる約束なんです。友達はあまりコンピュータに詳しくないので、ちょっとしたことをして普通に(例えば、右クリック→コピー)コピーできなくすることができればいいんですが。ちょっとコンピュータができる人ならコピーできてしまう程度でかまいません。  もし方法があれば教えてください。なければ、「絶対にコピーしないでね」と言って渡すつもりです。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.5

下記間違いなので修正します。 申し訳ありません。 -------------------------------- Dim fn As Integer Dim sFilepath As String Dim sPassword As String Dim sTimer As String sFilepath = "C:\ori_tokei.ini" 'FILE指定先は任意に変えてください。 sPassword = "aaaaa" 'このパスワードも任意に変えてOKです。 sTimer = "20020425" '期限で切りたい日付をYYYYMMDDで指定します。 fn = FreeFile If Format(Now, "YYYYMMDD") < sTimer Then '日付比較 Open sFilepath For Input As #fn If sPassword <> StrConv(InputB(LOF(1), #fn), vbUnicode) Then End Close #fn Enf If Else Open sFilepath For Output As #fn Print #fn, sPassword End If Close #fn

cherry_blossom
質問者

お礼

何度もありがとうございました。 早速試してみることにします。 将来は自分でできるようになりたいです☆

その他の回答 (4)

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.4

Dim fn As Integer Dim sFilepath As String Dim sPassword As String Dim sTimer As String sFilepath = "C:\ori_tokei.ini" 'FILE指定先は任意に変えてください。 sPassword = "aaaaa" 'このパスワードも任意に変えてOKです。 sTimer = "20020425" '期限で切りたい日付をYYYYMMDDで指定します。 fn = FreeFile If Format(Now, "YYYYMMDD") < sTimer Then '日付比較 Open sFilepath For Input As #fn If sPassword <> StrConv(InputB(LOF(1), #fn), vbUnicode) Then End Close #fn Else Else Open sFilepath For Output As #fn Print #fn, sPassword End If Close #fn ---------------------------------- こんな感じで。 これを改造して使ってください。 起動時にこの処理を入れれば、制御がかかります。 ※テスト未なので実行できるかどうかは保証しません。

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.3

面白そうな話ですね。 一つアイデアを。 (1)インストーラをつくり、Exeを指定フォルダに展開 (2)展開するフォルダとは別の場所(Windowsフォルダとか)にiniファイルを作成 (3)iniファイルにそこにパスワードを記録し、Exe起動時は毎回そのファイルを参照に行く。 (4)友人の家にFDで持っていき、インストーラは回収する。 インストーラをつくるのがめんどくさい場合には ○年○月○日以前の起動にはiniファイル作成機能を動作させて ○年○月○日以降の起動からはiniファイルを読む機構を入れる。 友人にFDを渡して3日後くらいにその期限が切れるようにすれば、それ以降のコピーはできません。 iniファイルを側に置くとばれるので、Windowsフォルダとかに指定してやればいいです。 (他の機能のiniファイルを書き換えないように注意!) これならexeのコピーだけでは動作しません。 さらに 友人とあなたのPC環境がインターネット常時接続であれば、 もっと完璧なものも作れるとは思います。 Exe起動時に、あなたのマシンへアクセスし、起動鍵を取得。 接続元IPが指定のもの以外には起動鍵を発行しない。 というパターンも考えられますね。

cherry_blossom
質問者

補足

細かくありがとうございました。しかし、わたしの頭では教えていただいたことの半分以下もわかりません。(ToT) もう少し簡単に教えていただきたいのですが‥‥。すみません。 >○年○月○日以前の起動にはiniファイル作成機能を動作させて >○年○月○日以降の起動からはiniファイルを読む機構を入れる。 >友人にFDを渡して3日後くらいにその期限が切れるようにすれば、それ以降のコピーはできません。 というのがいいな、と思ったんですが全く理解できなかったんです。 iniファイルってなにか、というところからサッパリです。 具体的に簡単に教えていただけますか?こんなわたしでもできますか? 今使っているのは私も友人もXPです。 お願いします。

  • ceita
  • ベストアンサー率24% (304/1218)
回答No.2

ふつーの方法じゃ無理なのではないでしょうか? 力技のアイデアなんですが。 コピーさせないプログラムを他に作って、 その友人のパソコンに仕込むというのはどうでしょう? すべてのイベントをフックして、 コピーや移動などに関連して、 なおかつそれがタイマープログラムに対して行われそうになったら、 メニューを書き換えてしまう。 というのが作れればいけそうな気がします。 (僕にはとても作れませんが・・・) 友人を信じる! これだけで十分な気がします。

cherry_blossom
質問者

お礼

わたしにも作れません! そんな技術はとてもありません‥‥。 信じてはいるんですが過去にほかの友人にやられたことがあるので、ついつい用心してしまうんです。 ありがとうございました。

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.1

プログラムにユーザー名を埋め込むとか・・ >(例えば、右クリック→コピー)コピーできなくすること おぉ、これはすごく難しそうな気がします。 他の方の回答が楽しみです。

cherry_blossom
質問者

お礼

やっぱり難しいことなんでしょうね‥‥。 わたしのレベルでは無理な気がします(×_×) ありがとうございました。

関連するQ&A