Autor Beitrag
myLord
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 29.06.05 11:57 
Hallo,

ich habe ein Programm geschrieben, dass ein anderes aufrufen soll. Nun habe ich das Problem, dass das eigentliche Programm in dem aufgerufenen Programm bestimmte Sachen mit der Maus machen soll. z.B. soll Paint aufgerufen werden und eine Blume gezeichnet werden. In Paint ist es noch kein Problem, da man es im Vollbildmodus starten kann, aber es gibt andere Programme, die kein Vollbild zulassen. Sagen wir mal der Windows eigene Taschenrechner in dem was vorgerechnet werden soll. Mit

ausblenden Delphi-Quelltext
1:
ShellExecute (Handle, NIL, PCHAR('calc.exe'), NILNIL, SW_SHOWNORMAL);					


wird der Taschenrechner aufgerufen, leider ist er bei jedem Aufruf an einer andren Stelle. Gibt es nun eine Möglichkeit, dass das Programm in der linken oberen Ecke gestartet wird, also (0|0)?

Moderiert von user profile iconmatze: Code- durch Delphi-Tags ersetzt.
Moderiert von user profile iconTino: Topic aus Dateizugriff verschoben am Mi 29.06.2005 um 13:52
direction4delphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
BeitragVerfasst: Mi 29.06.05 12:02 
WINAPI Funktion
SetWindowPlacement mit dem Handle des zu setztenden Fensters

MFG
MILLI
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.06.05 12:54 
myLord Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 30.06.05 13:05 
aber wo bekomm ich denn das Handle des fensters her, dass ich mit delphi aufgerufen habe?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 30.06.05 13:14 
FindWindow bzw. FindWindowEx
direction4delphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
BeitragVerfasst: Do 30.06.05 13:17 
Function FindWindow


Syntax

HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);


mfg
MILLI
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 30.06.05 13:23 
user profile icondirection4delphi hat folgendes geschrieben:
Function FindWindow


Syntax

HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);


mfg
MILLI

In C-Syntax???
Ob ihm das hilft?!?
direction4delphi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 84

WIN 95, WIN 98, WIN ME, WIN NT, WIN 2000, WIN XP, VISTA
D2 Prof, D4 Prof,D2005 Prof, Delphi4Php
BeitragVerfasst: Do 30.06.05 13:46 
user profile iconjaenicke hat folgendes geschrieben:
user profile icondirection4delphi hat folgendes geschrieben:
Function FindWindow


Syntax

HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);


mfg
MILLI

In C-Syntax???
Ob ihm das hilft?!?


Dachte das sollte doch verständlich sein aber einfacher gehts auch

ausblenden Delphi-Quelltext
1:
FindWindow(nil,PChar('FensterTitel'));					


Hoffe es ist so besser verständlich

mfg
MILLI
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 30.06.05 13:53 
Was ich nur meinte ist: Wer LPCTSTR noch nie gesehen hat, der hat keine Ahnung, was das ist (@myLord: PChar), auch wenn klar sein sollte, dass es sich um den Variablen-Typ handelt, selbst wenn man C++ nicht kennt.
myLord Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 30.06.05 14:16 
hmm... dann sollte der folgende Code doch den Windows Taschenrechner aufrufen, das Handle des Fensters suchen, als ontop und mit der Position 0,0 versehen, oder?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
var 
  hApp: HWND;
begin
ShellExecute (Handle, NIL, PCHAR('calc.exe'), NILNIL, SW_SHOWNORMAL);
hApp:=FindWindow(nil,PChar('Rechner'));
SetWindowPos(hApp, HWND_TOPMOST, 00, Width,
             Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
end;


nur leider geht das nicht
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 30.06.05 14:21 
SWP_NOMOVE

Denk mal drüber nach. ;)