本文主要是介绍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,然后确定,点击左侧的电脑名称即可回到主界面,然后点击右侧的重新启动即可。
1.17版本以上
但是在1.17版本以上,使用注册码进行注册,生成的.krpanolicense已经不是在krpano目录下,因此,需要用其他方法进行。
最保险的方法,是每次生成全景之前使用代码进行注册一次,由于是一次执行,它能检测出在生成前当前用户进行了注册,自然就没有水印了。那么,如何使用代码注册呢?
在Krpano学习:在命令提示符(cmd)中生成全景中可以看到krpanotools.exe还有其他功能,其中就有注册。
再继续输入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();//等待进程退出
这样,每次调用函数时先注册再生成,生成时软件会认为当前是注册状态,就不会出现水印了。
如果谁有更好的方法,欢迎留言。
这篇关于Krpano学习:C#中生成全景功能发布在IIS上有水印(没有许可)的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!