2010-08-16 3 views
0

나는 winform 응용 프로그램을 C#으로 작성했습니다. 이 응용 프로그램을 한 대의 컴퓨터에만 설치하도록하겠습니다. M1. 사용자가 응용 프로그램을 M2에 설치하려고하면 "....로 인해 설치가 중단되었습니다."라는 오류 메시지가 나타납니다.내 Winform을 단일 컴퓨터에서만 작동하도록하려면 어떻게해야합니까?

MAC 주소 및 컴퓨터 이름이 응용 프로그램에서 하드 코딩 된 것과 일치하면 계속 확인해야합니다. 그렇지 않으면 설치를 종료하십시오.

어떤 단계를 거쳐야하는지,이 스 니펫을 어디에 넣어야합니까?

+1

그래서 한 컴퓨터와 한 컴퓨터에만 wokrs가있는 프로그램을 원하십니까? – JaredPar

+1

MAC 주소와 더 일반적으로 컴퓨터 이름을 변경할 수 있음을 알아 두십시오. – FrustratedWithFormsDesigner

+0

예 한 대의 컴퓨터 만 해당 ... 사용자가 IT 관련 정보를 얻지 못했다고 가정합니다. –

답변

0

당신이 코드를 삽입해야하는 위치에 관해서는 - 프로그램 시작 방법에 넣어 :

다른 사람들이 자신의 의견에 지적으로
public static void Main() 
{ 
    if (licenced) 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new YourForm()); 
    } 
    else 
    { 
     // Display error 
    } 
} 

- 상대적으로 쉽게 제거 할 수 있습니다,하지만 당신은 확실 경우 사용자가 코드를 변경하지 않으면 작업을 수행해야합니다.

디스크 ID, CPU ID 등을 확인할 수 있습니다. Code Project 문서를 참조하십시오. 조합을 확인하면 누군가가 당신이 검사하고있는 모든 가치를 바꾸는 것을 방해하게 될 가능성이 적어집니다.

이 정보를 얻으려면 먼저 컴퓨터에 액세스해야하지만 사용자가 하드웨어를 변경하면 프로그램이 작동하지 않는다는 것을 의미합니다.

+0

하드웨어 장치의 ID를 포함하면 하드웨어를 업그레이드 한 경우 앱이 손상 될 것이라고 생각합니다. CPU 업그레이드는 드물기는하지만 기술적 인 사용자가 아닌 경우에도 그래픽 카드와 하드 드라이브가 자주 교체됩니다. – FrustratedWithFormsDesigner

+0

@Frustrated - 좋은 지적. – ChrisF

-1

사용자가 완전히 기술적이지 않다고 가정하면 설정 파일을 통해이 모든 것을 제어 할 수 있습니다. 앱이 처음 실행될 때 MAC 주소와 컴퓨터 이름을 가져 와서 파일에 저장합니다. 파일이 암호화되어 있어야합니다. 그 후에 앱이 시작될 때마다 해당 파일을보고 해당 파일이 실행중인 컴퓨터 이름과 해당 컴퓨터의 MAC 주소가 파일에있는 것과 일치하는지 확인해야합니다.

이 구성표는 MAC 주소 또는 컴퓨터 이름을 변경하면 손상 될 수 있습니다. 앱이 중단 될 수 있습니다. 시스템 이름/MAC 주소를 가진 파일이 MAC 주소/시스템 이름을 변경 한 다른 사용자에게 제공되면이 체계가 무효화 될 수 있습니다. 아마 내가 생각조차하지 않은 다른 방법이있을 것입니다.

코드 스 니펫이 어디로 가야하는지 묻기 때문에 앱 시작과 가까운 곳에 있어야한다고 말하지만 코드를 보지 않고는 그 이상을 말할 수 없습니다.

+1

다른 컴퓨터에서 실행중인 프로그램을 중지하지 않습니다. – ChrisF

+0

@ChrisF : 왜 downvote? 나는이 계획에 결함이 있다고 지적했다. 대부분은 기술적이지 않은 사용자에게는 적용되지 않지만, 해킹 할 가능성이있는 유형이 아니기 때문에 OP의 목적으로 작동 할 것입니다. – FrustratedWithFormsDesigner

+0

나는 downvote하지 않았다. 요점은 답을 향상시키는 것입니다. – ChrisF

1

컴퓨터 이름 (쉽게 변경할 수 있음) 또는 MAC 주소 (쉽게 원하는 MAC 주소로 가상 네트워크 카드를 만들 수 있음)를 조합하여 소프트웨어를 보호하면 장기간 작동하지 않습니다.

나는 당신이 HASP 키를 사용하는 것이 좋습니다 :

http://www.aladdin.com/

을 또는이 저렴하지만, 소프트웨어가 인터넷 연결을 통해 컴퓨터에 있어야한다 ... 온라인 인증

그리고 소프트웨어를 보호하는 것이 정말로 중요하다면 직접 해보지 마십시오. 전문적인 솔루션을 사용하십시오. 여기에 정확히 원하는 것을하는 방법이 있습니다 : http://www.eziriz.com/intellilock.htm

+1

그리고 소프트웨어가 매우 적은 수의 사람들에게 판매되는 경우이 모든 작업이 가능합니다 (예를 들어, 산업별로 매우 구체적입니다). 귀하의 소프트웨어가 전세계에서 널리 사용된다면, 귀하가 사용하는 보호 기능에 관계없이 금이 갈 것입니다. –

+0

네, 제 신청서는 매우 구체적입니다 ... –

+0

얼마나 많은 사본을 팔겠습니까? –

관련 문제