最新:
hwnd=win.find(null,picpickTitle)
::User32.PostMessage(hwnd,0x112/*_WM_SYSCOMMAND*/,0xF020/*_SC_MINIMIZE*/,0);
替代 win.show(hwnd,6/*_SW_MINIMIZE*/) ,彻底解决异常问题。
我的需求是截图后,调用picpick应用来编辑/预览截图。同时把它最小化。
或者如何置后窗口,让picpick在最后而不是置顶?
现在的问题是,如果截图时picpick未启动,截图预览窗口就会变得很小拇指大小。而最要命的问题是,我可能截几次,picpick再点击就不显示窗口了,准确的说是窗口不知道最小化到哪里去了。期望是最小化到任务栏,但实际是窗口给最小化了。
/*截图预览{{*/
var preview=function(name){
if(not winForm.checkbox.checked){
return ;
}
thread.invoke(
function(name){
//import console;
import process;
process.execute("picpick.exe",name);
import log4j;
logger = log4j.getLogger('printscreen') //参数为日志分类
//最小化
var obj = io.splitpath(name)
var filename=obj.name+obj.ext;
var title="PicPick - "+filename;
logger.info(title)
import win
var hwnd
var timer=0;
while(timer<20){
timer = timer+1
thread.delay(100)
hwnd=win.find(null,title)
if(hwnd){
thread.delay(100)
win.show(hwnd,6/*_SW_MINIMIZE*/)
logger.info("窗口最小化:"+title)
break
}else{
logger.info("找不到窗口,继续等待:"+timer)
}
}
},name
);
}
/*}}*/