[Delphi] Nastaveni X,Y pozice cizi aplikace
Zdar,
snazim se napsat program ktery nastavi okna aplikaci na dane souradni X,Y
na obrazovce,
ale stale mi nechce vzdy fungovat fce SetWindowPos
rozhodne vim ze probehne, protoze se dari nastavit dany program do popredi,
ale menit souradnice X,Y se mi podarilo zatim jen u notepad a wordpad
nema nekdo zkusenost jak na to?
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Na MSDN pisi jeste o funkci:
Kód:
BOOL MoveWindow(
HWND hWnd,
int X,
int Y,
int nWidth,
int nHeight,
BOOL bRepaint
);
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Citace:
Původně odeslal
MEluZíNa
Na MSDN pisi jeste o funkci:
Kód:
BOOL MoveWindow(
HWND hWnd,
int X,
int Y,
int nWidth,
int nHeight,
BOOL bRepaint
);
Tu jsem zkousel take, ale efekt je ze vykresli jen ducha premistovane aplikace,
takze je asi dobrey tak na okna v ramci vlastni aplikace, ale smerem k cizi se to chova strasne divne a spis to zpusobi zatuh dane aplikace.
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Mě movewindow fachá dobře, používam ho takhle:
Kód:
movewindow(findwindow('notepad',nil),x,y, sirka,vyska,true);
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Ještě další možnost vidím ve funkci SetWindowPos:
Kód:
SetWindowPos( findwindow('notepad',nil),HWND_TOP,x,y,0,0,SWP_NOSIZE);
S tím parametrem SWP_NOSIZE se nemusí řešit nová velikost okna, myslím, že by to takhle mohlo fungovat :-)
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Citace:
Původně odeslal
Smitka
Ještě další možnost vidím ve funkci SetWindowPos:
Kód:
SetWindowPos( findwindow('notepad',nil),HWND_TOP,x,y,0,0,SWP_NOSIZE);
S tím parametrem SWP_NOSIZE se nemusí řešit nová velikost okna, myslím, že by to takhle mohlo fungovat :-)
Jo example s NOTEPAD funguje, ale problem je libovolna aplikace.
a abychom nemluvili na vode:
program AppPosXY;
// napr.: notepad "a.txt - Poznámkový blok" 200 100
// {$APPTYPE CONSOLE}
uses
SysUtils, Windows;
var
Wnd : HWND;
s1, s2 : string;
X, Y : integer;
begin
try
s1 := ParamStr(1);
s2 := ParamStr(2);
X := StrToInt(ParamStr(3));
Y := StrToInt(ParamStr(4));
except
Exit;
end;
if s2 = 'nil' then
Wnd := FindWindow(PChar(s1), nil)
else
Wnd := FindWindow(PChar(s1), PChar(s2));
SetWindowPos(Wnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_SHOWWINDOW);
SetWindowPos(Wnd, 0, X, Y, 0, 0, SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOZORDER);
end.
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Pouzivat Delphi 6 Personal edition (SP2+RTL3)
Dalsim trapnym zjistenim je:
vytvorim holou formularovou aplikaci a ani ta mi nejde presouvat !!!
Jinak notepad, wordpad i totalcmd ano
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Problem byl v tom ze jsem nevedel nazev tridy (class) dane aplikace se kterou jsem chtel hybat
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Na to je dobrý Winspector
Re: [Delphi] Nastaveni X,Y pozice cizi aplikace
Citace:
Původně odeslal
Smitka
Diky