Newsgroup: it.comp.lang.delphi
Titolo: Programmi su W2000

Salve a tutti
volevo chiedere di una incongruenza che ho notato in W2000 nella
gestione dei programmi attivi, non so se č legato a Delphi.
Praticamente ho un applicativo composto da tanti eseguibili lanciati
da un exe che fa da menů. Ora se dal menů lancio un programma
sotto W95/98/NT il nuovo exe lanciato mette la form in primo piano
mentre sotto W2000 mi va sotto a quella del menů e devo andare
a ripescarla con Alt+Tab o altro.
Capita anche a voi? č rimediabile?
Grazie
Mirko

 ha scritto nel
messaggio news:MpkU6.5908$Vk3....@news2.tin.it...
: Salve a tutti

cosě a memoria... dai un'occhiata a "SetWindowPos"
ciao
giuliano

Intanto grazie per l'attenzione,
Ho provato SetWindowPos e i vari SetForegroundWindow ecc. ma niente,
o meglio prima il programma lanciato era tutto sotto mentre adesso nella
barra
delle applicazioni mi viene evidenziato il programma lanciato che lampeggia.
Pensavo fosse dovuto a come eseguo il programma e cioè con:
  ShellExecute(0, nil, PChar(Percorso), PChar(Parametro), nil,
SW_SHOWDEFAULT);
ma ottento lo stesso anche dopo averla sostituita con:
  CreateProcess(PChar(Percorso), nil, nil, nil, Flag, 0, nil, nil, SUInfo,
PInfo);
Nota che Flag è false mentre di SUInfo e PInfo non ho impostato niente, è
qui che sbaglio?
Dove metteresti, e con quale comando, una chiamata per forzare
l'applicazione
in primo piano?
Ciao
Mirko
n.b.: se setto la Form a StayOnTop mi viene davanti a tutto ma senza il
fuoco.

 l'applicazione in primo piano?
Ciao,
quando è "toccato a me" c'ho perso na settimana... :)
  SendMessage (GetDesktopWindow, WM_SYSCOMMAND, SC_HOTKEY, WindowHandle);
  SendMessage (GetDesktopWindow, WM_SYSCOMMAND, SC_RESTORE, WindowHandle);
dovrebbe funzionare (a me va)... in pratica chiedi al desktop di attivarti
l'applicazione. :)
Ciao, Davide DG.

 l'applicazione. :)
tempo fa cercavo un modo per resettare il PC, ora ce l'ho... :-)
Si, eseguendo i tuoi comandi, il secondo in particolare, mi si resetta
all'istante la macchina. Nota che li ho provati in vari punti e cioč
nell'OnShow della form del programma lanciato oppure dal programma
lanciante dopo lo shellexecute; ho scritto esattamente quello che mi
hai postato tu, dovevo modificare qualcosa?
Conosco poco le API  ma spulciando l'help non capisco se manchino
parametri e se il riferimento agli hotkey sia giusto.
Grazie e ciao
Mirko
ps. avevo deciso di eliminare W2000 e reinstallare NT4 ma mi
spiacerebbe perchč sembra l'ambiente piů stabile di mamma MS

all'istante la macchina.
Eh... pare che in W2k non vada molto ... :PP  l'ho provato ora su un pc con 
2k ... a me fa piantare il taskmanager ... :=(
Io presumo sia un errore di Windows... visto che č inammissibile che un SO 
si pianti per una chiamata ad una SUA api ... cmq... resta il fatto che non 
abbiamo risolto il tuo problema ... 
Prova cosě :
  Application.Restore;
  SendMessage (GetDesktopWindow, WM_SYSCOMMAND, SC_HOTKEY, Handle);
l'ho provato su W2k (noservicepack) e mi funziona... spero anche da te!
Ciao! Davide DG.

 l'ho provato su W2k (noservicepack) e mi funziona... spero anche da te!
Ok grazie mille, così sembra funzionare bene.
Mi dispiaceva di non poter dare ai miei clienti la stabilità, almeno
apparente, di Win2000,
Mirko