Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1

    [delphi] chiusura di una applicazione

    ciao a tutti!!! ho come sistema operativo windows e vorrei sapere se esiste una API che restituisce un valore ( o qualcosa del genere ), appena una applicazione( diversa dalla form corrente ovviamente) viene chiusa... ( giochi.exe, mozilla.exe ... ), e se esiste me la potreste spiegare un attimo? grazie in anticipo

  2. #2
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679

    Re: [delphi] chiusura di una applicazione

    Originariamente inviato da maluz1
    ciao a tutti!!! ho come sistema operativo windows e vorrei sapere se esiste una API che restituisce un valore ( o qualcosa del genere ), appena una applicazione( diversa dalla form corrente ovviamente) viene chiusa... ( giochi.exe, mozilla.exe ... ), e se esiste me la potreste spiegare un attimo? grazie in anticipo
    AFAIK no

  3. #3
    Io invece ho trovato su internet la findwindow o findwindowex... Che aggira il mio problema controllando se e ancora in funzione... Pero sinceramente non c ho capito molto...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La findwindow non fa quello che hai chiesto. Ecco perché ti hanno detto che non c'è.

    Quella funzione deve essere chiamata esplicitamente dal tuo programma per effettuare una ricerca della window. Non attiva nulla "automaticamente".
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Be scusa allora se mi sono spiegato male comunque da quello che ho letto credo che possa fare al caso mio... Sapresti un po spiegarmela per favore?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come da documentazione

    "Retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search."

    puoi fare la ricerca dell'handle della finestra (top) di un'applicazione.

    Se l'applicazione in questione ha una finestra e se la trovi, vuol dire che l'applicazione è attiva.

    Ma fatta la ricerca non è che se l'applicazione viene chiusa puoi avere un avviso. Dovrai fare un'altra ricerca per capire se è stata chiusa.

    Penso che su internet esistano tonnellate di esempi di applicazione di questa API, penso anche in Delphi.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Se vuoi notifiche sulla chiusura di finestre puoi installare una hook CBT, se si parla di processi invece, come detto dagli altri, non mi pare ci sia nulla di pronto, sostanzialmente devi fare polling sulla lista dei processi (controlli ogni tot e vedi se il processo che ti interessa è sparito).
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Ma scusa ma se io metto in un timer la findwindow, appena l applicazione vieni chiusa, dovrebbe risultarmi il null o qualcosa del genere , quindi appena mi risulta null o quella roba li, il problema e risolto... No?

    Invece non ho capito molto dei parametri che devo passare alla findwindow... ?

  9. #9
    Grazie mille a entrambi... Ma quindi per vedere se un processo e ancora in esecuzione o meno come potrei fare..?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da maluz1
    Ma scusa ma se io metto in un timer la findwindow, appena l applicazione vieni chiusa, dovrebbe risultarmi il null o qualcosa del genere , quindi appena mi risulta null o quella roba li, il problema e risolto... No?
    Sì ... ed è quello che ti dicevo ... devi essere tu periodicamente a chiamare la API, non la API a chiamare te.

    Potresti usare anche l'hook ma te lo sconsiglio per la maggiore difficoltà di implementazione e il peso sul sistema.

    Invece non ho capito molto dei parametri che devo passare alla findwindow... ?
    Cosa non capisci dei parametri dalla documentazione ?

    Parameters
    lpClassName [in, optional]
    Type: LPCTSTR

    The class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero.
    If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.
    If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.


    lpWindowName [in, optional]
    Type: LPCTSTR

    The window name (the window's title). If this parameter is NULL, all window names match.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.