Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Termina applicazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21

    Termina applicazione

    Ho sviluppato un piccolo exe che controlla i programmi aperti su un pc in modo da intercettare quelli che per qualche ragione si sono bloccati.
    Cercavo un sistema per simulare il tasto Ctrl + ALt + Canc ed effettuare il termina applicazione in modo tale da essere sicuro che il programma venga chiuso qualunque sia il suo stato.
    Ho trovato un piccolo esempio di vb con funzioni API che intercetta i fogli Excel ma il programma fallisce se sul foglio Excel è stata apportata una modifica (in quanto si pare la finestra per salvare il file) oppure se il foglio Excel ha qualche finestra aperta (Stampa, Salva, etc).
    Sicuramente è possibile forzare la chiusura ma non so proprio come fare: chi mi può aiutare?!?!

    Allego il codice che ho utilizzato

    'Dichiarazione funzioni

    Private Const WM_CLOSE = &H10
    Private Const INFINITE = &HFFFFFFFF

    Private Declare Function apiPostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function apiFindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function apiWaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function apiIsWindow Lib "user32" Alias "IsWindow" (ByVal hWnd As Long) As Long
    Private Declare Function apiGetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hWnd As Long, lpdwProcessID As Long) As Long

    'SUB di chiusura

    Dim lngRet As Long, hWnd As Long, pID As Long

    hWnd = apiFindWindow("XLMAIN", vbNullString)

    If (hWnd) Then
    lngRet = apiPostMessage(hWnd, WM_CLOSE, 0&, ByVal 0&)
    Call apiGetWindowThreadProcessId(hWnd, pID)
    Call apiWaitForSingleObject(pID, INFINITE)
    fCloseApp = Not (apiIsWindow(hWnd) = 0)
    End If

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    mancano linguaggio e versione nel titolo


    ps: per essere più leggibile il codice va incluso nel tag [*code]..[*/code]
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Originariamente inviato da MMarzia
    mancano linguaggio e versione nel titolo


    ps: per essere più leggibile il codice va incluso nel tag [*code]..[*/code]
    sembra un tema
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

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.