acmodeu
http://sharebee.com/e1106536 или
http://www.foobar2000.ru/files/comment.php?dlid=58
хотя с 0.9.5 не проверял.. но должно
c 0.9.4.5 воркает
Список разделов › foobar2000 › Плагины
С 0.9.5.1 b1 не работает... с другими версиями тоже не работало. Есть альтернативы? Может в настройках что-где упустил?zencd:так зачем ждать ... нужно писать :-)
я и не знал что линки померли
с 0.9.5 работает, да
Да, действительно проще самому написать...так зачем ждать ... нужно писать
library foo_minimize_on_close;
uses
Windows,Messages;
function get_version:Integer; stdcall;
begin
Result:=$47;
end;
function get_service_list:Pointer; stdcall;
begin
Result:=nil;
end;
procedure get_config(p_stream:Pointer;p_abort:Pointer); stdcall;
begin
end;
procedure set_config(p_stream,p_abort:Pointer); stdcall;
begin
end;
procedure set_library_path(path,Name:PChar); stdcall;
begin
end;
procedure services_init(val:Boolean); stdcall;
begin
end;
function is_debug:Boolean; stdcall;
begin
Result:=False;
end;
var
Hook:HHook;
FakeClass:array[0..6] of Pointer=(@get_version,@get_service_list,
@get_config,@set_config,@set_library_path,@services_init,@is_debug);
Inst:Pointer=@FakeClass;
OldWndProc:Pointer;
function NewWndProc(Wnd:HWND;Message:Integer;wParam:wParam;lParam:lParam):Integer; stdcall;
begin
if Message=WM_CLOSE then begin
ShowWindow(Wnd,SW_MINIMIZE);
Result:=0;
end
else
Result:=CallWindowProc(OldWndProc,Wnd,Message,wParam,lParam);
end;
function HookProc(nCode:Integer;wParam:wParam;lParam:lParam):Integer; stdcall;
var
Buf:array[0..255] of Char;
begin
if nCode=HC_ACTION then
with PCWPSTRUCT(lParam)^ do
if Message=WM_CLOSE then begin
Buf[GetClassName(HWND,@Buf,SizeOf(Buf))]:=#0;
if lstrcmp(Buf,'{97E27FAA-C0B3-4b8e-A693-ED7881E99FC1}')=0 then
OldWndProc:=Pointer(SetWindowLong(HWND,GWL_WNDPROC,Integer(@NewWndProc)));
end;
Result:=CallNextHookEx(Hook,nCode,wParam,lParam);
end;
function foobar2000_get_interface(p_api:Pointer;hIns:HMODULE):Pointer; cdecl;
begin
Hook:=SetWindowsHookEx(WH_CALLWNDPROC,@HookProc,0,GetCurrentThreadId);
Result:=@Inst;
end;
exports
foobar2000_get_interface;
begin
end.
Переделал (в архиве оба плагина, так как foo_minimize_on_close был чуточку исправлен):Может Вы еще и "foo_snap" переделаете?
А что оно вообще делает?Может Вы еще и "foo_snap" переделаете?
А он не работал? В чём изменения?_DRON_:Может Вы еще и "foo_snap" переделаете?
Переделал
Наоборот, это одной строчкой делается, надо было сразу так и делать, но не сообразил:Кстати, я понимаю что это врядли
Потому что это вообще не компоненты, а "обманки" которые глупый фубар загружает при запуске. Нормальные компоненты можно писать только с использованием SDK и компилятора от Microsoft, а я по большей части использую Borland и данные "компоненты" вообще написаны на Delphi. Так что никаких настроек и вообще что нибудь кроме издевательства над окошком фубара, таким способом не добавить.И еще вопрос: а почему эти компоненты не отображаются в соответствующем разделе настроек?
К автору фубара, но думаю он ничего делать не будет, потому что всё не так просто как кажется: когда вы нажимаете иконку в трее, то фокус переходит к трею и фубар ВСЕГДА будет не в фокусе. Можно конечно проверять является ли текущее окно треем, но это тоже не слишком надёжно.Я тут недоработочку обнаружил, не знаю, правда, к кому с ней обращаться.
А для какой цели все эти махинации? Хочется свернуть - жми кнопку "Свернуть", а если закрыть - кнопку "Закрыть".Merak:Согласитесь, что и на "Свернуть" и на "Закрыть" повесить одинаковое действие - свернуть в трей, как-то
не логично (и не нужно).