| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | App. frem i front Fra : Harald | 
  Dato :  21-04-06 16:49 |  
  |   
            Ganske enkelt, hvis programmet er skjult bag andre programmer så skal det 
 komme frem i front og være aktiv. Jeg har prøvet alverdens kombinationer af 
 Application.BringToFront, BringWindowToTop(), SetForegroundWindow() og 
 ShowWindow() men alle resultere bare i at mit program står og blinker i 
 proceslinien.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
           Flozzy (21-04-2006) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  21-04-06 17:49 |  
  |   
            
 "Harald" <nomail@noname.dk> skrev i en meddelelse 
 news:4448fef5$0$84038$edfadb0f@dtext01.news.tele.dk...
 > Ganske enkelt, hvis programmet er skjult bag andre programmer så skal det 
 > komme frem i front og være aktiv. Jeg har prøvet alverdens kombinationer 
 > af Application.BringToFront, BringWindowToTop(), SetForegroundWindow() og 
 > ShowWindow() men alle resultere bare i at mit program står og blinker i 
 > proceslinien.
 >
 > /HK
 >
 
 Skal programmet være i front permanent, sættes Formens FormStyle til 
 fsStayOnTop, ellers
 
     if IsIconic(h) then
       ShowWindow(h, SW_RESTORE);
     SetForegroundWindow(h);
 
 hvor h er handle til dit program.
 
 Mvh.  Flozzy 
 
 
  
            
             |   |   
            
        
 
            
         
           Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 18:00 |  
  |   
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:44490cfa$0$38637$edfadb0f@dread12.news.tele.dk...
 >
 > "Harald" <nomail@noname.dk> skrev i en meddelelse 
 > news:4448fef5$0$84038$edfadb0f@dtext01.news.tele.dk...
 >> Ganske enkelt, hvis programmet er skjult bag andre programmer så skal det 
 >> komme frem i front og være aktiv. Jeg har prøvet alverdens kombinationer 
 >> af Application.BringToFront, BringWindowToTop(), SetForegroundWindow() og 
 >> ShowWindow() men alle resultere bare i at mit program står og blinker i 
 >> proceslinien.
 >>
 >> /HK
 >>
 >
 > Skal programmet være i front permanent, sættes Formens FormStyle til 
 > fsStayOnTop, ellers
 >
 >    if IsIconic(h) then
 >      ShowWindow(h, SW_RESTORE);
 >    SetForegroundWindow(h);
 >
 > hvor h er handle til dit program.
 
 Ja det giver samme resultat dvs. programmet bliver hvor det er men blinker i 
 proceslinien.
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
            Flozzy (21-04-2006) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  21-04-06 18:52 |  
  |   
            Hej igen
 
 > Ja det giver samme resultat dvs. programmet bliver hvor det er men blinker 
 > i proceslinien.
 >
 > /HK
 
 Lyder virkelig mærkeligt. Det er jo til at blive vanvittig over. Der er vel 
 ikke andet for end tjekke Formens Properties og Events (evt. .dpr filen), om 
 ikke andet så for at se, om det skulle give et clue. Eftersom det blinker 
 skulle man næsten tro, at der er en Timer med i spillet, eller at der sker 
 noget "recursivt" et eller andet sted. Nu er jeg da for alvor blevet 
 nysgerrig.
 
 Mvh.  Flozzy
 
 
  
            
             |   |   
            
        
 
            
         
             Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 19:17 |  
  |   
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:44491be3$0$38721$edfadb0f@dread12.news.tele.dk...
 > Hej igen
 >
 >> Ja det giver samme resultat dvs. programmet bliver hvor det er men 
 >> blinker i proceslinien.
 >>
 >> /HK
 >
 > Lyder virkelig mærkeligt. Det er jo til at blive vanvittig over. Der er 
 > vel ikke andet for end tjekke Formens Properties og Events (evt. .dpr 
 > filen), om ikke andet så for at se, om det skulle give et clue. Eftersom 
 > det blinker skulle man næsten tro, at der er en Timer med i spillet, eller 
 > at der sker noget "recursivt" et eller andet sted. Nu er jeg da for alvor 
 > blevet nysgerrig.
 
 Jeg tog din kode og smed det ind i en helt ny application, en timer kører 
 koden efter 5 sek. hvorefter programmet blinker på proceslinien i stedet for 
 at komme frem i front. Er det et problem at gøre det i en timer?
 
 /HK
 
 
  
            
             |   |   
            
        
 
            
         
             Harald (21-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  21-04-06 19:23 |  
  |  
 
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:44491be3$0$38721$edfadb0f@dread12.news.tele.dk...
 > Hej igen
 >
 >> Ja det giver samme resultat dvs. programmet bliver hvor det er men 
 >> blinker i proceslinien.
 >>
 >> /HK
 >
 > Lyder virkelig mærkeligt. Det er jo til at blive vanvittig over. Der er 
 > vel ikke andet for end tjekke Formens Properties og Events (evt. .dpr 
 > filen), om ikke andet så for at se, om det skulle give et clue. Eftersom 
 > det blinker skulle man næsten tro, at der er en Timer med i spillet, eller 
 > at der sker noget "recursivt" et eller andet sted. Nu er jeg da for alvor 
 > blevet nysgerrig.
 Nå nu fattede jeg hvad du mener med blinker og timer, det at den blinker i 
 processlinien er noget windows gør, den blinker 4 gange hvorefter den får en 
 fast farve som ikke er magen til de andre:
 Se her:  www.kroning.dk/Image.jpg
/HK
            
              |   |   
            
        
 
            
         
              Flozzy (22-04-2006) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  22-04-06 02:28 |  
  |  
 
            Hej Harald
 > Nå nu fattede jeg hvad du mener med blinker og timer, det at den blinker i 
 > processlinien er noget windows gør, den blinker 4 gange hvorefter den får 
 > en fast farve som ikke er magen til de andre:
 > Se her:  www.kroning.dk/Image.jpg
>
 > /HK
 OK    - tilbage til problemet med at bringe i front. Er det lige specielt 
 denne App, der har det problem, eller også andre?
 Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 procedure TForm1.Button1Click(Sender: TObject);
 begin
      WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 end;
 procedure TForm1.Button2Click(Sender: TObject);
 var h: THandle;
 begin
      h := FindWindow('Notepad',nil);
      if h <> 0 then
      begin
        if IsIconic(h) then
          ShowWindow(h, SW_RESTORE);
        SetForegroundWindow(h);
      end;
 end;
 Mvh.  Flozzy 
            
              |   |   
            
        
 
            
         
               Harald (22-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  22-04-06 19:21 |  
  |  
 
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:444986bf$0$38686$edfadb0f@dread12.news.tele.dk...
 > Hej Harald
 >
 >> Nå nu fattede jeg hvad du mener med blinker og timer, det at den blinker 
 >> i processlinien er noget windows gør, den blinker 4 gange hvorefter den 
 >> får en fast farve som ikke er magen til de andre:
 >> Se her:  www.kroning.dk/Image.jpg
>>
 >> /HK
 >
 > OK    - tilbage til problemet med at bringe i front. Er det lige specielt 
 > denne App, der har det problem, eller også andre?
 > Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 >
 > procedure TForm1.Button1Click(Sender: TObject);
 > begin
 >     WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 > end;
 >
 > procedure TForm1.Button2Click(Sender: TObject);
 > var h: THandle;
 > begin
 >     h := FindWindow('Notepad',nil);
 >     if h <> 0 then
 >     begin
 >       if IsIconic(h) then
 >         ShowWindow(h, SW_RESTORE);
 >       SetForegroundWindow(h);
 >     end;
 > end;
 Ja det virker fint med notepad.
 Det er når jeg går ind i Delphi og kører koden i en helt ny og frisk 
 application at den bliker hvis jeg hvis have applicationen frem i front, 
 f.eks. hvis jeg sætter koden ind i en TTimer som aktivere koden efter 10 
 sekunder.
 /HK
            
              |   |   
            
        
 
            
         
                Flozzy (23-04-2006) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  23-04-06 03:58 |  
  |  
 
            >> OK    - tilbage til problemet med at bringe i front. Er det lige 
 >> specielt denne App, der har det problem, eller også andre?
 >> Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 >>
 >> procedure TForm1.Button1Click(Sender: TObject);
 >> begin
 >>     WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 >> end;
 >>
 >> procedure TForm1.Button2Click(Sender: TObject);
 >> var h: THandle;
 >> begin
 >>     h := FindWindow('Notepad',nil);
 >>     if h <> 0 then
 >>     begin
 >>       if IsIconic(h) then
 >>         ShowWindow(h, SW_RESTORE);
 >>       SetForegroundWindow(h);
 >>     end;
 >> end;
 >
 > Ja det virker fint med notepad.
 > Det er når jeg går ind i Delphi og kører koden i en helt ny og frisk 
 > application at den bliker hvis jeg hvis have applicationen frem i front, 
 > f.eks. hvis jeg sætter koden ind i en TTimer som aktivere koden efter 10 
 > sekunder.
 >
 > /HK
 Hmm - det bliver det ikke mindre mærkeligt af. Jeg har testet flere 
 muligheder på D4-5-6 på WinXP uden problemer. Jeg går ud fra via din 
 hjemmeside, at du bruger D7. Den kender jeg ikke, men kunne det tænkes, at 
 der er specielle opsætninger i Invironment Options? Sker det samme hvis du 
 kører en Build på programmet, lukker Delphi, og starter exe-filen direkte? 
 Brians svar fik mig til at tænke på, om der andet "aktivt" i baggrunden, som 
 kan hindre din App i at stige frem til overfladen.
 Mvh.  Flozzy 
            
              |   |   
            
        
 
            
         
                 Harald (23-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-04-06 07:32 |  
  |  
 
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:444aed6d$0$149$edfadb0f@dread16.news.tele.dk...
 >>> OK    - tilbage til problemet med at bringe i front. Er det lige 
 >>> specielt denne App, der har det problem, eller også andre?
 >>> Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 >>>
 >>> procedure TForm1.Button1Click(Sender: TObject);
 >>> begin
 >>>     WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 >>> end;
 >>>
 >>> procedure TForm1.Button2Click(Sender: TObject);
 >>> var h: THandle;
 >>> begin
 >>>     h := FindWindow('Notepad',nil);
 >>>     if h <> 0 then
 >>>     begin
 >>>       if IsIconic(h) then
 >>>         ShowWindow(h, SW_RESTORE);
 >>>       SetForegroundWindow(h);
 >>>     end;
 >>> end;
 >>
 >> Ja det virker fint med notepad.
 >> Det er når jeg går ind i Delphi og kører koden i en helt ny og frisk 
 >> application at den bliker hvis jeg hvis have applicationen frem i front, 
 >> f.eks. hvis jeg sætter koden ind i en TTimer som aktivere koden efter 10 
 >> sekunder.
 >>
 >> /HK
 >
 > Hmm - det bliver det ikke mindre mærkeligt af. Jeg har testet flere 
 > muligheder på D4-5-6 på WinXP uden problemer. Jeg går ud fra via din 
 > hjemmeside, at du bruger D7. Den kender jeg ikke, men kunne det tænkes, at 
 > der er specielle opsætninger i Invironment Options? Sker det samme hvis du 
 > kører en Build på programmet, lukker Delphi, og starter exe-filen direkte? 
 > Brians svar fik mig til at tænke på, om der andet "aktivt" i baggrunden, 
 > som kan hindre din App i at stige frem til overfladen.
 Jeg har prøvet at starte exe filen uden at Delphi kører, jeg har prøvet exe 
 filen på en anden computer og jeg har nu prøvet at lave det samme på en 
 Delphi 4 og kørt exe filen på 2 maskiner og det giver samme resultat. Så det 
 er egentlig lidt mystisk.
 /HK
            
              |   |   
            
        
 
            
         
                 Harald (23-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-04-06 07:48 |  
  |  
 
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:444aed6d$0$149$edfadb0f@dread16.news.tele.dk...
 >>> OK    - tilbage til problemet med at bringe i front. Er det lige 
 >>> specielt denne App, der har det problem, eller også andre?
 >>> Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 >>>
 >>> procedure TForm1.Button1Click(Sender: TObject);
 >>> begin
 >>>     WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 >>> end;
 >>>
 >>> procedure TForm1.Button2Click(Sender: TObject);
 >>> var h: THandle;
 >>> begin
 >>>     h := FindWindow('Notepad',nil);
 >>>     if h <> 0 then
 >>>     begin
 >>>       if IsIconic(h) then
 >>>         ShowWindow(h, SW_RESTORE);
 >>>       SetForegroundWindow(h);
 >>>     end;
 >>> end;
 >>
 >> Ja det virker fint med notepad.
 >> Det er når jeg går ind i Delphi og kører koden i en helt ny og frisk 
 >> application at den bliker hvis jeg hvis have applicationen frem i front, 
 >> f.eks. hvis jeg sætter koden ind i en TTimer som aktivere koden efter 10 
 >> sekunder.
 >>
 >> /HK
 >
 > Hmm - det bliver det ikke mindre mærkeligt af. Jeg har testet flere 
 > muligheder på D4-5-6 på WinXP uden problemer. Jeg går ud fra via din 
 > hjemmeside, at du bruger D7. Den kender jeg ikke, men kunne det tænkes, at 
 > der er specielle opsætninger i Invironment Options? Sker det samme hvis du 
 > kører en Build på programmet, lukker Delphi, og starter exe-filen direkte? 
 > Brians svar fik mig til at tænke på, om der andet "aktivt" i baggrunden, 
 > som kan hindre din App i at stige frem til overfladen.
 Her er lidt mere mystisk, jeg bruger en justone komponent, en der sikre at 
 kun et program startes op, og det virker fint så kommer programmet frem i 
 front. Men hvis jeg tager koden som den er fra komponenten:
 PrevInstHandle := FindWindow(nil, AppTitle);
      if PrevInstHandle <> 0 then
       if IsIconic(PrevInstHandle) then
        ShowWindow(PrevInstHandle, SW_RESTORE)
       else
        BringWindowToTop(PrevInstHandle);
       SetForegroundWindow(PrevInstHandle);
 og smider ind i et helt nyt program og aktivere koden med en timer efter 
 f.eks. 5 sek., ja så vil den bare blinke 4 gange på process linien og kommer 
 ikke i front.
 /HK
            
              |   |   
            
        
 
            
         
                 Harald (23-04-2006) 
         
	
            | Kommentar Fra : Harald | 
  Dato :  23-04-06 08:30 |  
  |  
 
            "Flozzy" <jje@venlig.dk> skrev i en meddelelse 
 news:444aed6d$0$149$edfadb0f@dread16.news.tele.dk...
 >>> OK    - tilbage til problemet med at bringe i front. Er det lige 
 >>> specielt denne App, der har det problem, eller også andre?
 >>> Hvad med f.eks. Notepad - kan den tvinges i front med denne kode:
 >>>
 >>> procedure TForm1.Button1Click(Sender: TObject);
 >>> begin
 >>>     WinExec('c:\windows\notepad.exe', SW_SHOWMINIMIZED);
 >>> end;
 >>>
 >>> procedure TForm1.Button2Click(Sender: TObject);
 >>> var h: THandle;
 >>> begin
 >>>     h := FindWindow('Notepad',nil);
 >>>     if h <> 0 then
 >>>     begin
 >>>       if IsIconic(h) then
 >>>         ShowWindow(h, SW_RESTORE);
 >>>       SetForegroundWindow(h);
 >>>     end;
 >>> end;
 >>
 >> Ja det virker fint med notepad.
 >> Det er når jeg går ind i Delphi og kører koden i en helt ny og frisk 
 >> application at den bliker hvis jeg hvis have applicationen frem i front, 
 >> f.eks. hvis jeg sætter koden ind i en TTimer som aktivere koden efter 10 
 >> sekunder.
 >>
 >> /HK
 >
 > Hmm - det bliver det ikke mindre mærkeligt af. Jeg har testet flere 
 > muligheder på D4-5-6 på WinXP uden problemer. Jeg går ud fra via din 
 > hjemmeside, at du bruger D7. Den kender jeg ikke, men kunne det tænkes, at 
 > der er specielle opsætninger i Invironment Options? Sker det samme hvis du 
 > kører en Build på programmet, lukker Delphi, og starter exe-filen direkte? 
 > Brians svar fik mig til at tænke på, om der andet "aktivt" i baggrunden, 
 > som kan hindre din App i at stige frem til overfladen.
 Problem løst. Med programmet Tweak UI fra MS kan man slå et punkt fra der 
 hedder "Prevent applications from stealing focus", dette punkt var åbenbart 
 blevet slået til på alle de 5 computere jeg havde testet på da det tidligere 
 havde virket på dem alle.
 Tak for hjælpen.
 /HK
            
              |   |   
            
        
 
            
         
                  Flozzy (23-04-2006) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  23-04-06 10:12 |  
  |   
            Godt det blev løst! Ikke noget at takke for - du løste selv problemet - og 
 jeg fik lært det også ;0)
 
 Mvh.  Flozzy
 
 > Problem løst. Med programmet Tweak UI fra MS kan man slå et punkt fra der 
 > hedder "Prevent applications from stealing focus", dette punkt var 
 > åbenbart blevet slået til på alle de 5 computere jeg havde testet på da 
 > det tidligere havde virket på dem alle.
 > Tak for hjælpen.
 >
 > /HK
 >
 > 
 
 
  
            
             |   |   
            
        
 
            
         
           Brian Andersen \(www~ (22-04-2006) 
         
	
            | Kommentar Fra : Brian Andersen \(www~ | 
  Dato :  22-04-06 08:09 |  
  |   
            Blinkeriet skyldes Windows. Jeg tror det er fra Windows 98, at Windows er 
 begyndt at signalere til brugeren, at en applikation gerne i front ved at 
 blinke i Tastbar'en. Dette skyldes, at brugeren jo kunne være i gang med at 
 indtaste i en anden applikation og så er det jo ikke så heldigt, at en anden 
 applikation pludselig bliver aktiv.
 
 Min computer er reinstalleret og min Delphi CD virker ikke )o:, så jeg kan 
 desværre ikke prøve og se om jeg kan løse problemet.
 
 /Brian 
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |