Хочу предложить сделать миниокно клиента, которое постоянно on top.
Вот пример такого окна из инжекта:
Зачем? Следить за чаром, который на скрипте, пока смотришь фильм, играешь вторым окном и т.д.
Re: Заявка на новые возможности, либо на исправление старых
Posted: 19.01.2014 15:06
by Vizit0r
стелс тут не нужен, это вполне можно сделать отдельным несложным приложением.
но у меня и без того дел хватает, на первоочередные проблемы даже времени нет.
Re: Заявка на новые возможности, либо на исправление старых
Posted: 19.01.2014 17:45
by CxC
Vizit0r wrote:стелс тут не нужен, это вполне можно сделать отдельным несложным приложением.
какие такие приложения? Поделись, пожалуйста. На работе было бы очень удобно
Re: Заявка на новые возможности, либо на исправление старых
Posted: 19.01.2014 20:01
by Vizit0r
поделиться чем? как по хендлу чужого окна делать скрин и показывать его в маленьком окне? велика проблема.
Re: Заявка на новые возможности, либо на исправление старых
Posted: 19.01.2014 21:12
by drabadan
подумывал такое написать, руки-ноги не добрались, не дошли!
Напишешь, поделись кодом, очень интересно!
Re: Заявка на новые возможности, либо на исправление старых
Re: Заявка на новые возможности, либо на исправление старых
Posted: 29.01.2014 12:47
by CxC
Vizit0r, drabadan, я далек от программирования У Визитора нет времени совсем, может ты напишешь, драбадан?
Re: Заявка на новые возможности, либо на исправление старых
Posted: 29.01.2014 12:55
by drabadan
CxC wrote:Vizit0r, drabadan, я далек от программирования У Визитора нет времени совсем, может ты напишешь, драбадан?
а давай это сделаем вместе!
писать тут надо будет внешний скрипт, я бы выбрал делфи, ибо C# не понимаю на том уровне, на котором понимаю делфю.
Хотя, я тоже очень далек от программирования - думаю, можно попытаться.
Тебе хочется получить просто результат или научится?
Re: Заявка на новые возможности, либо на исправление старых
Posted: 29.01.2014 12:58
by CxC
drabadan wrote:
CxC wrote:Vizit0r, drabadan, я далек от программирования У Визитора нет времени совсем, может ты напишешь, драбадан?
а давай это сделаем вместе!
писать тут надо будет внешний скрипт, я бы выбрал делфи, ибо C# не понимаю на том уровне, на котором понимаю делфю.
Хотя, я тоже очень далек от программирования - думаю, можно попытаться.
Тебе хочется получить просто результат или научится?
ок, стучу в личку
Re: Заявка на новые возможности, либо на исправление старых
Posted: 30.01.2014 0:22
by drabadan
получилось у меня очень криво и мрачно! Не хватает моска, пока буду спать, вдруг кто обрадует помощью.
Нужна помощь зала:
Re: Заявка на новые возможности, либо на исправление старых
Posted: 30.01.2014 11:00
by Vizit0r
1) PrintWindow декларируется в Winapi.WinSpool а не в Winapi.Windows
2)
tbmp.SaveToFile('c:\1.bmp');
зачем?
сразу подключаешь к Timage и вперед.
Re: Заявка на новые возможности, либо на исправление старых
Posted: 30.01.2014 11:03
by drabadan
Vizit0r wrote:1) PrintWindow декларируется в Winapi.WinSpool а не в Winapi.Windows
2)
tbmp.SaveToFile('c:\1.bmp');
зачем?
сразу подключаешь к Timage и вперед.
так отож, не получается у меня без сохранения!
Re: Заявка на новые возможности, либо на исправление старых
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DwmApi, Vcl.StdCtrls, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
CheckBox1: TCheckBox;
Panel1: TPanel;
ComboBox1: TComboBox;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Procedure EnumWindowsProc;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.EnumWindowsProc;
var
Wnd : hWnd;
buff : array [0..127] of Char;
wclass : string;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do
begin
setLength(wclass,12);
GetClassName(wnd,@wclass[1],Length(wclass)+1);
if (Wnd <> Application.Handle) and IsWindowVisible(Wnd) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0) and (wclass<>'TApplication')
then
begin
GetWindowText(Wnd, buff, sizeof(buff));
//str :=StrPas(buff);
ComboBox1.Items.Add(StrPas(buff));
// form1.wndBox.Items.Add(StrPas(buff));
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnumWindowsProc;
end;
procedure TForm1.Button1Click(Sender: TObject);
var PH: PHTHUMBNAIL;
Props: DWM_THUMBNAIL_PROPERTIES;
ProgmanHandle: THandle;
begin
ProgmanHandle := 0;
if ComboBox1.Text > '' then
ProgmanHandle := FindWindow(nil, PChar(ComboBox1.Text))
else
ShowMessage('Nothing checked!');
if ProgmanHandle > 0 then
begin
if Succeeded(DwmRegisterThumbnail(Handle,ProgmanHandle,PH))then
begin
Props.dwFlags:=DWM_TNP_SOURCECLIENTAREAONLY or DWM_TNP_VISIBLE or
DWM_TNP_OPACITY or DWM_TNP_RECTDESTINATION;
Props.fSourceClientAreaOnly:=false;
Props.fVisible:=true;
Props.opacity:=255;
Props.rcDestination:=Form1.Panel1.ClientRect;
if Succeeded(DwmUpdateThumbnailProperties(PH^,Props))then
//ShowMessage('Thumbnail готов')
else
ShowMessage('DwmUpdateThumbnailProperties false');
end
else
begin
ShowMessage('DwmRegisterThumbnail False ');
end;
end;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Form1.FormStyle := fsStayOnTop;
end;
end.
Re: Миниследилка за окном клиента УО
Posted: 31.01.2014 13:11
by drabadan
Кажись написал! Ссылка на дропбокс!
Кому не лень потестить прошу\молю!
Вносите свои предложения, будем перепиливать код!
Растягивая окошко, а потом нажимая на старт, можно выбрать себе оптимальный размер!