Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako maximizovati neki drugi program ?

[es] :: Pascal / Delphi / Kylix :: Kako maximizovati neki drugi program ?

[ Pregleda: 2431 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Kako maximizovati neki drugi program ?10.06.2004. u 13:03 - pre 241 meseci
Imam program koji koristi mutekse kako bi ogranicio broj instanci.
E sad, ako je vec jedna instanca startovana, zelim da kad user startuje opet program da se ona prethodna instanca maximizuje/dobije fokus...
Kako to uraditi ?
Pretpostavljam da ima veze sa FindWindow i SendMessage...
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.teleportgroup.net

Sajt: www.diy-fever.com


+1 Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 01:30 - pre 241 meseci
moze tako, samo ne znam tacne parametre za sendmessage, mozda mozes da napravis malu client\server komunikaciju i da kad mu ovaj drugi "kaze" ovaj stariji da se maximizuje :) mozda je glupo, ali lako za implementaciju, mozes sa dde, nesto novije ili najobicniji WinSock, neka se konektuje sa 127.0.0.1 i posalje komandicu...drugo ne mogu da se setim bas :)
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

neor
Nenad Orlovic

Član broj: 26828
Poruke: 74
*.panline.net



Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 08:54 - pre 241 meseci
Evo kako to mozes da uradis. Moras samo da zaobidjes problem s time sto je to isti program pa su ti obicno klasa i naslov prozora isti (na primer promeni naslov u runtime ili nemoj da koristis main form).
Code:

var h:HWND;
begin
  h := FindWindow('TForm1','Form1');
  SetForegroundWindow(h);
end;
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 11:06 - pre 241 meseci
Uradio sam ovako kako neor kaze, kod sam stavio pre Application.Initialize i Application.CreateForm, ali mi FindWindow funkcija vraca result 0...
Glavna forma mi se zove MainWindow i stavio sam
h := FindWindow('TMainWindow', 'MainWindow')
Iako imam startovanu vec jednu instancu programa (u kojoj je kreiran MainWindow), FindWindow iz druge, mladje instance ne nalazi nista...
 
Odgovor na temu

neor
Nenad Orlovic

Član broj: 26828
Poruke: 74
*.panline.net



Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 12:18 - pre 241 meseci
Moralo bi da radi. Da li ti je naslov sigurno MainWindow?
Takodje posle SetForegroundWindow potpuno preskoci deo sa inicijalizacijom i kreiranjem forme. Na primer
Code:

  h := FindWindow('TForm1','Form1');
  if h <> 0 then
    SetForegroundWindow(h)
  else begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end;
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 13:48 - pre 241 meseci
Ma znam sve to, ali ipak nece.

Evo koda :

Code:

  If WaitForSingleObject(CreateMutex(nil, FALSE, PChar('CDClub v' + MainWindow.Version + 'M00T3X by Ex3cut0r')), 0) = wait_TimeOut Then
  Begin
    SetForegroundWindow(FindWindow('TMainWindow', 'MainWindow'));
    Exit;
  End;

  With Application Do
  Begin
    Initialize;
    CreateTables;
    CreateForm(TMainWindow, MainWindow);
    Title := 'CDClub v' + MainWindow.Version;
    ShowIntro;
    Run;
  End;


Naravno, probao sam i da promenljivoj tipa HWND dodelim result funkcije FindWindow pa da onda pozovem SetForegroundWindow, ali nece...
 
Odgovor na temu

neor
Nenad Orlovic

Član broj: 26828
Poruke: 74
*.panline.net



Profil

icon Re: Kako maximizovati neki drugi program ?11.06.2004. u 17:34 - pre 241 meseci
Jedino sta mi je sumljivo je sto koristis MainWindow.Version pre CreateForm.
Proveri jos jednom sta ti je naslov prozora. Da li si siguran da je MainWindow.Caption = 'MainWindow'?
Ako je source isti onaj za koji si link ostavio na temi o CD klubu onda tamo pise da je MainWindow.Caption = 'CDClub v1.0 by MarkoSoft' pa bi to trebalo da je drugi parametar u FindWindow.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Kako maximizovati neki drugi program ?12.06.2004. u 00:08 - pre 241 meseci
xexe, ja sam mislio da govorimo o MainWindow.Name
Evo sad cu da probam.

Poz, Marko.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako maximizovati neki drugi program ?

[ Pregleda: 2431 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.