PDA

View Full Version : سوال: بستن پنجره پوشه باز شده



mbshareat
پنج شنبه 02 خرداد 1398, 20:37 عصر
سلام
من تصویر حافظه رو می گیرم و با فرمت jpg ذخیره می کنم.بعد پوشه تصاویر رو نمایش میدم.اگر پوشه از قبل باز نباشه می تونم با ShellExecute فایل تصویر رو هم در حالت انتخاب قرار بدم.اما اگر پوشه از قبل باز باشه با ShellExecute به اون روش که بلدم نمیشه.
در هر صورت سه ثانیه طول میکشه که پنجره فایل رو به انتهای فایلها اضافه کنه.
گفتم پنجره رو ببندم.اما چند راه رو امتحان کردم هیچیک جواب نداد:
var
H:THandle;
begin
H:=FindWindow('CabinetWClass','Boot');
if H<>0 then
Begin
ShowMessage('Found!');
CloseWindow(H);
DestroyWindow(H);
ShellExecute(H,'Close','Explorer','Boot','',SW_Hid e);
ShellExecute(H,'Close','Boot','','',SW_Hide);
SendMessage(H,WM_Close,0,0);
End;
end;


کسی راهی سراغ داره؟

mbshareat
پنج شنبه 02 خرداد 1398, 23:24 عصر
داشتم نا امید می شدم.جواب اینه:
SendMessage(H, WM_SYSCOMMAND,SC_CLOSE,0);


عجیبه اگه پنجره پوشه باز باشه سه ثانیه طول می کشه رفرش بشه.وقتی خودم رفرش رو با برنامه انجام میدم هم طول می کشه.
اما اگر پنجره بسته و باز بشه اصلا طول نمی کشه:
H:=FindWindow('CabinetWClass',PChar(BookNum+'Jpgs' ));
if H<>0 then
Begin
SendMessage(H, WM_SYSCOMMAND,SC_Close,0);
// SendMessage(H, WM_SYSCOMMAND,SC_Restore,0);
// sendMessage(H,WM_KEYDOWN,VK_F5,0);
// CloseWin(H);
//Sleep->æÞÊí äÌÑå ÊÕÇæíÑ ÈÇÒå¡ÈíÝÇíÏå ÈæÏ ÈÑ ÏÇÔÊãÔ
//Sleep(3000);
{ShellExecute(Handle, 'Refresh',Pchar('explorer.exe')
,Pchar('/select,'+JpgDir+'\'+ReverseString(ClipText)+'.jpg' ),'',SW_NORMAL) ;}
//sleep(1000);
ShellExecute(Handle, 'Open',Pchar('explorer.exe')
,Pchar('/select,'+JpgDir+'\'+ReverseString(ClipText)+'.jpg' ),'',SW_NORMAL) ;