Autor |
Beitrag |
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 17:16
|
|
jaenicke
Beiträge: 19273
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 14.03.12 17:32
Da fehlen aber noch ein paar absolute Grundlagen...
Du rufst eine Funktion (FindWindow) auf, castest den Rückgabewert auf den Typ HWND, wirfst den Rückgabewert aber weg.
Zudem hat FindWindow zwei Parameter:
msdn.microsoft.com/e...esktop/ms633499.aspx
Dann rufst du SetWindowPos auf, übergibst HWND (einen Variablentyp ) als Fensterhandle, übergibst 1280 und 720 als Position, gibst aber dann im Flag mit SWP_NOMOVE an, dass die Position nicht verändert werden soll.
Auch da sind dir die Parameter offenbar nicht wirklich klar:
msdn.microsoft.com/e...esktop/ms633545.aspx
|
|
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 17:34
Habe erst von ca. 4 Wochen damit in Informatik angefangen. Sorry
Nur was soll denn bei lpClassName hin ? Ich bekomme vom Edit doch nur den Fensternamen.
Und beim SetWindowPos hab ich was übersehen ;D
|
|
jaenicke
Beiträge: 19273
Erhaltene Danke: 1740
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 14.03.12 18:06
Für diesen Beitrag haben gedankt: Premaider
|
|
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 18:11
Jetzt sieht es so aus
Delphi-Quelltext 1: 2: 3:
| HWND (FindWindow(nil, Edit1.Text)); SetWindowPos(HWND,HWND_TOPMOST,0,0,1280,720,SWP_NOMOVE); end; |
Und dann kommen diese Fehler:
Delphi-Quelltext 1: 2: 3: 4:
| [Fehler] Unit1.pas(34): Inkompatible Typen: 'TCaption' und 'PAnsiChar' [Fehler] Unit1.pas(35): '(' erwartet, aber ',' gefunden [Fehler] Unit1.pas(35): Anweisung erforderlich, aber Ausdruck vom Typ 'Integer' gefunden [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 14.03.12 18:43
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var HWND:THandle; begin HWND := FindWindow(nil, PChar(Edit1.Text)); SetWindowPos(HWND,HWND_TOPMOST,0,0,1280,720,SWP_NOMOVE); end; |
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Für diesen Beitrag haben gedankt: Premaider
|
|
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 18:47
Jetzt noch ein Problem.
Delphi rechnet die Ränder hinzu. Wenn ich jetzt mit Fraps aufnehme hat das Video nur 1264x682 Pixel. Man könnte jetzt natürlich einfach die Differenz dazuzählen. Aber es soll ja auch auf XP und Vista funzen, aber da sind die Ränder anders groß
€: Kann man theoretisch auch den Fensternahmen eines externen Programmes ändern ? Also z.b. von Minecraft zu Blockspiel ?
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 14.03.12 19:01
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 19:11
Oh sorry, wusste ich nicht ;D
Showmessage(IntToStr(Height - ClientHeight - GetSystemMetrics(SM_CYMIN)));
Showmessage ? Ich will doch garnicht das da eine Message erscheint Oo
€: Funktioniert auch nicht, mit oder ohne Showmessage
|
|
bummi
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 14.03.12 19:27
ist nur ein Beispiel ... GetSystemMetrics(SM_CYMIN) müsstet Du auf die Höhe des gewünschten Clientbereichs aufschlagen ..
GetSystemMetrics bei Google eingeben der erste msdn - Link erklärt was wofür verwendbar ist
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Premaider
Beiträge: 51
|
Verfasst: Mi 14.03.12 19:37
Also müsste ich
GetSystemMetrics(SM_CYMIN);
und das dann noch von der gewünschten Höhe und Breite abziehen. Nur wie ? Sorry kenn mich kaum aus :S
|
|