Kod: Tümünü seç
WinExec('program.exe',sw_ShowNormal); // bu form dışı açıyor
Kod: Tümünü seç
ShellExecute(Handle, 'open', 'program.exe', '', nil, SW_SHOW);
her 2 kodda form dışında açıyo form içinde nasıl açarız yardım edersenız sevinirim?
Kod: Tümünü seç
WinExec('program.exe',sw_ShowNormal); // bu form dışı açıyor
Kod: Tümünü seç
ShellExecute(Handle, 'open', 'program.exe', '', nil, SW_SHOW);
Kod: Tümünü seç
var
Rec: TShellExecuteInfo;
fHandle : HWND;
const
AVerb = 'open';
AParams = '';
AFileName = 'Project2.exe';
ADir = '';
begin
FillChar(Rec, SizeOf(Rec), #0);
Rec.cbSize := SizeOf(Rec);
Rec.fMask := SEE_MASK_NOCLOSEPROCESS;
Rec.lpVerb := PChar( AVerb );
Rec.lpFile := PChar( AfileName );
Rec.lpParameters := PChar( AParams );
Rec.lpDirectory := PChar( Adir );
Rec.nShow := SW_HIDE;
ShellExecuteEx(@Rec);
WaitForInputIdle(Rec.hProcess, 5000);
fHandle := Windows.FindWindow( nil,'Form2' );//Formun Caption değerini biliyorsak bu şekilde kullanabiliriz.
Windows.SetParent( fHandle, PAnel1.Handle );
Resize;
ShowWindow(fHandle , SW_MAXIMIZE);
Kod: Tümünü seç
var
fHandle : HWND;
begin
if IsWindow(fHandle) then begin
SetWindowPos(fHandle, 0, 0, 0, ClientWidth, ClientHeight,
SWP_ASYNCWINDOWPOS);
end;
Konu dağılmasın diye cevabını burdan veriyorum.Xearth yazdı:Abi verdigin kodu çalıştıramadım birde şöyle açıklıyım ben formun içinde açmak istiyorum exe'yi formu kapatınca içinde çalışan exe'de kapanacak o yüzden , yardımcı olursanız sevinirim.
Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
Var
WindowsNumarasi : THandle;
WindowsAdi : String;
begin
WindowsNumarasi := FindWindow(nil, 'Hesap Makinası');
if WindowsNumarasi= 0 then begin
ShowMessage('pencere bulunamadı');
end else
Windows.Setparent( WindowsNumarasi, Form1.Handle );
end;
Kod: Tümünü seç
var
Rec: TShellExecuteInfo;
fHandle : HWND;// Handle id.
const
AVerb = 'open';//Uygulamayı açıyoruz.
AParams = '';//Parametreler
AFileName = 'xxx\Project9.exe';//Erişmek istediğimiz uygulamanın adı.
ADir = '';//Uygulamanın bulunduğu dizin
begin
FillChar(Rec, SizeOf(Rec), #0);
Rec.cbSize := SizeOf(Rec);
Rec.fMask := SEE_MASK_NOCLOSEPROCESS;
Rec.lpVerb := PChar( AVerb );
Rec.lpFile := PChar( AfileName );
Rec.lpParameters := PChar( AParams );
Rec.lpDirectory := PChar( Adir );
Rec.nShow := SW_HIDE;
ShellExecuteEx(@Rec);
WaitForInputIdle(Rec.hProcess, 5000);
fHandle := Windows.FindWindow( nil,'Form7' );//Caption değerini buradan alıyoruz. Uygulama adına göre çağırmak için parametrelerin yerini değiştirip uygulama adını yazmak gerekir.
Windows.SetParent( fHandle, PAnel1.Handle );
Resize;
ShowWindow(fHandle , SW_MAXIMIZE);
//http://www.delphiturkiye.com/forum/viewtopic.php?f=2&t=2094&start=0 (mrmarman)
Kod: Tümünü seç
var
fHandle : HWND;
begin
if IsWindow(fHandle) then begin
SetWindowPos(fHandle, 0, 0, 0, ClientWidth, ClientHeight,
SWP_ASYNCWINDOWPOS);
end;
Kod: Tümünü seç
Rec: TShellExecuteInfo;
Kod: Tümünü seç
Rec.fMask := SEE_MASK_NOCLOSEPROCESS;
Kod: Tümünü seç
var
fHandle : HWND;
begin
if IsWindow(fHandle) then begin
SetWindowPos(fHandle, 0, 0, 0, ClientWidth, ClientHeight,
SWP_ASYNCWINDOWPOS);
end;