Newsgroup: it.comp.lang.delphi
Titolo: Form sempre attiva: come?

Ho bisogno di controllare winamp da un programmino delphi che sto scrivendo.
Il fatto č che il programmino stesso viene controllato da tastiera, gestendo
l'evento OnKeypress della form e ad ogni tasto che premo il prog comanda
winamp per cui ho bisogno che la finestra del programma rimanga sempre
attiva per ricevere input da tastiera. Il problema č questo: molte volte,
quando faccio aprire un file a winamp con quest'api
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
HINSTANCE ShellExecute(
    HWND hwnd, // handle to parent window
    LPCTSTR lpOperation, // pointer to string that specifies operation to
perform
    LPCTSTR lpFile, // pointer to filename or folder name string
    LPCTSTR lpParameters, // pointer to string that specifies
executable-file  parameters
    LPCTSTR lpDirectory, // pointer to string that specifies default
directory
    INT nShowCmd  // whether file is shown when opened
   );
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
la form si disattiva a favore di quella di  winamp e nono posso piů
controllare il prog.
L'attivare o meno la finestra del programma che viene avviato da
ShellExecute (in questo caso winamp) dovrebbe essere comandato da nShowCmd
come da documentazione:
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
nShowCmd
If lpFile specifies an executable file, nShowCmd specifies how the
application is to be shown when it is opened.  This parameter can be one of
the following values:
Value Meaning
SW_HIDE Hides the window and activates another window.
SW_MAXIMIZE Maximizes the specified window.
SW_MINIMIZE Minimizes the specified window and activates the next top-level
window in the Z order.
SW_RESTORE Activates and displays the window. If the window is minimized or
maximized, Windows restores it to its original size and position. An
application should specify this flag when restoring a minimized window.
SW_SHOW Activates the window and displays it in its current size and
position.
SW_SHOWDEFAULT Sets the show state based on the SW_ flag specified in the
STARTUPINFO structure passed to the CreateProcess function by the program
that started the application. An application should call ShowWindow with
this flag to set the initial show state of its main window.
SW_SHOWMAXIMIZED Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE Displays the window as a minimized window. The active
window remains active.
SW_SHOWNA Displays the window in its current state. The active window
remains active.
SW_SHOWNOACTIVATE Displays a window in its most recent size and position.
The active window remains active.
SW_SHOWNORMAL Activates and displays a window. If the window is minimized or
maximized, Windows restores it to its original size and position. An
application should specify this flag when displaying the window for the
first time.
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Ii fatto č che con tutti i valori non c'č modo di risolvere il problema,
perchč non cambia assolutamente nulla!!!!
Come posso fare? Al limite potrei anche cambiare metodo di ricezione
dell'input da tastiera ma non ne conosco altri.

 wrote in message 3c206...@news.dada.it...

Tempo fa avevo un problema simile al tuo e l'ho risolto utilizzando gli Hook
di tastiera. Puoi trovare un'ampia documentazione sull'Help
<Win32 Programmer's Reference> di Delphi!
Ciao

 Ciao
Andrea