[リストへもどる]
一括表示

投稿時間:2004/06/11(Fri) 10:54
投稿者名:やまやま
URL :
タイトル:
VBアプリを特定のマシンでしか動かなくするには?
こんにちは、VB初心者です。
VBの話から少し逸れるのかもしれませんが、教えてください。

作成したEXEを、客先にてコピーして、他のマシンで使用できないようにしたいのですが、
どのような方法を取れば良いのでしょうか?

最悪、ユーザには知らせずに特定のフォルダにファイルをおいて置いて、
そのファイルの有無で、アプリ起動の可/不可を制御しようと思っていますが・・・。
(めちゃ、べたなやり方ですね・・・)

投稿時間:2004/06/11(Fri) 11:30
投稿者名:S.S
Eメール:
URL :
タイトル:
Re: VBアプリを特定のマシンでしか動かなくするには?
私ならレジストリに何か書き込んで、EXE起動時に参照しますね。
それか、マシンのIPアドレスかMACアドレスをDBに登録して起動時に参照・・・
ってところですか。
ディレクトリじゃちょっと不安なんで上記のどちらかにしそうです^^
もちろん、レジストリもDBもユーザには教えないで勝手にやってそうです^^

投稿時間:2004/06/11(Fri) 11:31
投稿者名:へいぽ
Eメール:
URL :
タイトル:
Re: VBアプリを特定のマシンでしか動かなくするには?
Form_Load / Main プロシージャで
GetComputerName API により実行PC名を取得して、
その取得したPC名と実行を許可するPC名が一致した場合のみ
次の処理に移るようにすればよいのでは?

投稿時間:2004/06/11(Fri) 11:37
投稿者名:N.Doi
Eメール:
URL :
タイトル:
Re: VBアプリを特定のマシンでしか動かなくするには?
> こんにちは、VB初心者です。
> VBの話から少し逸れるのかもしれませんが、教えてください。
>
> 作成したEXEを、客先にてコピーして、他のマシンで使用できないようにしたいのですが、
> どのような方法を取れば良いのでしょうか?
>
> 最悪、ユーザには知らせずに特定のフォルダにファイルをおいて置いて、
> そのファイルの有無で、アプリ起動の可/不可を制御しようと思っていますが・・・。
> (めちゃ、べたなやり方ですね・・・)

 Command$を使い、EXEの直接実行を制限する方法は?

投稿時間:2004/06/11(Fri) 13:51
投稿者名:やまやま
URL :
タイトル:
Re^2: VBアプリを特定のマシンでしか動かなくするには?
みなさん、色々教えていただいてありがとうございます。

お世話になりついでに、もう少しお伺いします。
(VBだけでなくパソコンの方も初心者でとても恥ずかしいですが・・・)

1.レジストリへの書き込み・参照はどのように行うのでしょうか?
  (普段よりレジストリファイルは全然触ったことがありません(~_~;)

2.今回のマシンはネットワークに一切繋がずに使用します。
  したがって、IPアドレスやホスト名はちゃんと割り振っていないと思うのですが、
  MACアドレスは、マシン固有の値として取得できるのでしょうか?
  (取得の仕方はAPIがある?)

3.ごめんなさい。Command$の利用って具体的に全然良く分からないです・・・(~_~;)

投稿時間:2004/06/11(Fri) 14:21
投稿者名:N.Doi
Eメール:
URL :
タイトル:
Re^3: VBアプリを特定のマシンでしか動かなくするには?
> みなさん、色々教えていただいてありがとうございます。
>
> お世話になりついでに、もう少しお伺いします。
> (VBだけでなくパソコンの方も初心者でとても恥ずかしいですが・・・)
>
> 1.レジストリへの書き込み・参照はどのように行うのでしょうか?
>   (普段よりレジストリファイルは全然触ったことがありません(~_~;)
>
> 2.今回のマシンはネットワークに一切繋がずに使用します。
>   したがって、IPアドレスやホスト名はちゃんと割り振っていないと思うのですが、
>   MACアドレスは、マシン固有の値として取得できるのでしょうか?
>   (取得の仕方はAPIがある?)
>
> 3.ごめんなさい。Command$の利用って具体的に全然良く分からないです・・・(~_~;)

 私の場合、良くDebug用のEXEを一緒に配布するため、ユーザーが
直接実行できない様に、引数的な情報を持たせています。
今回の質問内容とは違う用途ですねm(__)m
「ライセンス」的な処理なら、レジストリかファイル処理が簡単だと思います。

投稿時間:2004/06/11(Fri) 15:47
投稿者名:S.S
Eメール:
URL :
タイトル:
Re^3: VBアプリを特定のマシンでしか動かなくするには?

> 1.レジストリへの書き込み・参照はどのように行うのでしょうか?

APIを使わずに行うのであれば下記です。
書き込み・参照・削除に必要な関数はそれぞれ一度MSDN等で確認してください。
そのうち自分のスキルになりますので(^^
ちなみにAPIを使用すればどこにKEYを作成するかまで設定できます。

'レジストリに登録する(VB and VBA Progrm settingsの下に「License」を登録)
Dim nAPPNm As String
Dim MainNm As String
Dim SubNm As String
Dim KeyNm As String

  nAPPNm = "License"
  MainNm = "Main"
  SubNm = "SubKey_License"
  KeyNm = "True"

  SaveSetting nAPPNm, MainNm, SubNm, KeyNm

'レジストリに登録されている文字列を取得(License - Main - SubKey 下の値を取得)

Dim nAPPNm As String
Dim MainNm As String
Dim SubNm As String
Dim RetVal As String

  nAPPNm = "License"
  MainNm = "Main"
  SubNm = "SubKey_License"

  RetVal = GetSetting(nAPPNm, MainNm, SubNm)

'レジストリのキーを削除(今回の場合License)

Dim nAPPNm As String

  nAPPNm = "License"

  DeleteSetting nAPPNm

> 2.今回のマシンはネットワークに一切繋がずに使用します。
>   したがって、IPアドレスやホスト名はちゃんと割り振っていないと思うのですが、
>   MACアドレスは、マシン固有の値として取得できるのでしょうか?
>   (取得の仕方はAPIがある?)

下記はよく用いてます。

  strGetSQL = "SELECT * FROM Win32_NetworkAdapter WHERE MACAddress IS NOT NULL"
  For Each objWinmgmts In GetObject("winmgmts:").ExecQuery(strGetSQL)
    MsgBox "MACアドレス:" & objWinmgmts.MACAddress & vbCrLf & _
        "ポート名   :" & objWinmgmts.Name
  Next

> 3.ごめんなさい。Command$の利用って具体的に全然良く分からないです・・・(~_~;)

これは「Command」でMSDNを調べていただいたら一発で出てきます。
VB を使い始めて数年経ちますが、だいたいのことは C などに頼らなくても出来ますよ(^^

投稿時間:2004/06/11(Fri) 15:49
投稿者名:S.S
Eメール:
URL :
タイトル:
Re^4: VBアプリを特定のマシンでしか動かなくするには?

>   strGetSQL = "SELECT * FROM Win32_NetworkAdapter WHERE MACAddress IS NOT NULL&qu
ot;
>   For Each objWinmgmts In GetObject("winmgmts:").ExecQuery(strGetSQL)
>     MsgBox "MACアドレス:" & objWinmgmts.MACAddress & vbCrLf &
_
>         "ポート名   :" & objWinmgmts.Name
>   Next
>

すみません、変数を宣言してくださいね(^^;↓

    Dim objWinmgmts As Object
    Dim strGetSQL As String

投稿時間:2004/06/11(Fri) 18:30
投稿者名:やまやま
URL :
タイトル:
Re^4: VBアプリを特定のマシンでしか動かなくするには?
みなさん、色々ありがとうございます。

これだけ詳しく教えていただけたら、私でもできそうです。
ありがとうございましたm(__)m

投稿時間:2004/06/11(Fri) 13:22
投稿者名:まんたろー
URL :
タイトル:
Re: VBアプリを特定のマシンでしか動かなくするには?
それなりの工数かけたソフトなら以下を。
CADとかの数十万円以上のソフトにしか見たこと無いけど。


HASP
http://www.aladdin.co.jp

FlexLM
http://www.macrovision.com/japan/index.html