Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法

krpano注册机制

  krpano的1.17版本以上,是打开krpano Tools.exe输入注册码进行注册,注册成功后在C:\Users\username\AppData\Roaming\krpano下可以看到.krpanolicense这个文件(username是你的用户名),也即是,只要你注册一次,不论你的电脑里有多少个krpano,放在什么位置,只要你电脑当前登录的用户名为这个username,那么所有的软件就都注册了。

IIS无法通过许可

1.17版本以下

  由于IIS无法通过license许可(没有该类型),因此,在C#中生成全景依旧有水印。
  在krpano1.17版本以下,由于是使用注册文件进行注册,因此,可以在krpano目录下找到krpano.license。打开IIS,双击MIME类型,在分组依据处右键,然后点击添加,文件扩展名写.license(注意有个点),MIME类型写application/octet-stream,然后确定,点击左侧的电脑名称即可回到主界面,然后点击右侧的重新启动即可。
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第1张图片
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第2张图片
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第3张图片
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第4张图片

1.17版本以上

  但是在1.17版本以上,使用注册码进行注册,生成的.krpanolicense已经不是在krpano目录下,因此,需要用其他方法进行。
  最保险的方法,是每次生成全景之前使用代码进行注册一次,由于是一次执行,它能检测出在生成前当前用户进行了注册,自然就没有水印了。那么,如何使用代码注册呢?
  在Krpano学习:在命令提示符(cmd)中生成全景中可以看到krpanotools.exe还有其他功能,其中就有注册。
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第5张图片
  Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法_第6张图片
  再继续输入krpanotools64.exe register “123456”即可

//注册 123456为注册码
krpanotools64.exe register “123456”
//查看注册信息
krpanotools64.exe register show
//移除注册信息,成功后即是未注册状态
krpanotools64.exe register remove

  根据Krpano学习:C#操作命令提示符(cmd),在C#中生成全景的方法,在生成全景前,先进行注册:

using System.Diagnostics;  

//注册
string argreg = @"register ""123456""";
Process regProcess = new Process();
regProcess.StartInfo.FileName = krpanopath + "krpano/krpanotools64.exe";
regProcess.StartInfo.Arguments = argreg;
regProcess.Start();
regProcess.Close();

//生成
private Process panoProcess = new Process();  
string arguments = "makepano " + markidconfig + " " + picturepath + "-panotype=sphere -hfov=360";  
panoProcess.StartInfo.FileName = krpanopath + "krpano/krpanotools64.exe";  
panoProcess.StartInfo.Arguments = arguments;  
panoProcess.EnableRaisingEvents = true;//为true时为进程终止时激发System.Diagnostics.Process.Exited事件  
//进程退出时执行,此处即全景生成成功后执行  
panoProcess.Exited += (object sender, EventArgs args) =>  //Lambda表达式  
{  
    ……  //生成成功后执行
};  
panoProcess.Start();//启动程序  
panoProcess.WaitForExit();//等待进程退出  

  这样,每次调用函数时先注册再生成,生成时软件会认为当前是注册状态,就不会出现水印了。
  如果谁有更好的方法,欢迎留言。

你可能感兴趣的:(Windows,C#,Krpano)