我正在尝试获取当前正在运行的Python脚本的名称.
例如,我有一个调用的脚本foo.py,我想在其中执行类似的操作:
print Scriptname
Run Code Online (Sandbox Code Playgroud)
得到:foo.py.
我正在尝试为低成本的USB显微镜设计自动对焦系统.我一直在开发硬件方面,配备精密PAP电机,可以调整显微镜中的聚焦旋钮,现在我处在困难的部分.
我一直在考虑如何实现该软件.硬件有两个USB端口,一个用于显微镜摄像头,另一个用于电机.我最初的想法是在C#中编写一个能够从显微镜获取图像并向前和向后移动电机的应用程序,到目前为止一切都很好:)
现在我需要一些自动对焦的帮助,如何实现它?这有什么好的算法吗?或者也许是一个图像处理库,可以帮助我完成任务?
我一直在googleling但没有成功...我会感谢任何帮助/想法/推荐!
非常感谢 :)
编辑:谢谢你的答案,我会尝试所有选项,并回到这里与结果(或更多的问题).
我正在编写一个脚本来制作文本块并通过短信发送.今天早些时候,我正在审查一些代码,将字符串拆分成块,然后我看到了一些我以前从未见过的东西.我在谈论";" 在片段的en后面的"}"之后.
为什么这个结肠?我知道它有效,但我不知道它是否为解释器添加了一些语义或一些指令,任何人都知道这是为了什么?
while(1)
{
$length = (strlen($output)+strlen($words[$i]));
if($length>$new_max)
{
if(count($words) > 0)
{
$out_array[] = $output;
$output = '';
}
else
{
break;
}
}
else
{
$output = $output." ".$words[$i];
++$i;
};
};
Run Code Online (Sandbox Code Playgroud)
编辑:看起来很清楚分号和多个分号一起对结果没有影响,但是,你知道它是否对解释器有一些影响?它解析它时是在做什么(内部)?
我有一个使用MySQL作为数据存储引擎的Visual Studio 2005项目(C#),我想创建一个安装应用程序的MSI包,并在安装MySQL后静默.我一直在调查它,但我找不到太多信息.
我已经静默安装了MySQL软件包,并在CMD中配置了这两个语句
安装:
msiexec /qb /i "c:\mysql.msi" /l* d:\log_mysql_test.txt INSTALLDIR=d:\mysql_test_mdps
Run Code Online (Sandbox Code Playgroud)
配置:
D:\mysql_test_mdps\bin\MySQLInstanceConfig.exe -i -q "-lD:\mysql_config_log.txt" "-pD:\mysql_test_mdps\bin" "-tD:\mysql_test_mdps\my-template.ini" "-cD:\mysql_test_mdps\my.ini" -v5.5.9 ServerType=DEVELOPMENT DatabaseType=MIXED ConnectionUsage=DSS Port=53306 ServiceName=MySQL_AGM RootPassword=root1234 SkipNetworking=no AddBinToPath=yes
Run Code Online (Sandbox Code Playgroud)
但是现在我不知道如何说Visual Studio在安装我的应用程序之前或之后做它.我一直在谷歌,但我找不到任何有用的帮助.
我希望你能指导我:)
编辑:我一直在使用自定义操作解决方案,我发现这篇文章使用自定义安装程序类来执行自定义操作.它看起来很好,但我得到一个问题,因为当我的MSI包尝试启动第二个MSI安装程序(MySQL)时,我收到错误,代码为2869,显示"拒绝访问".
我一直在寻找这个问题,看起来当第一个MSI尝试运行第二个MSI时,它没有应用正确的权限,安装失败......
你知道我能做什么吗?或者我如何启动第二个MSI安装程序?具有完全权限(或至少与第一个安装程序相同)
这是我用来创建Process对象的代码.
string arg1 = "/qb /i \"" + filepath + "\" /l* \"" + Path.Combine(installpath, logfile) + "\" INSTALLDIR=\"" + installpath + "\"";
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = arg1;
p.Start();
Run Code Online (Sandbox Code Playgroud)