Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] servizio windows e interazione con desktop

    Salve a tutti,
    sono ormai due giorni che sbatto la testa contro il muro al fine di installare il mio servizio windows con proprietà di interagire con il desktop, opzione necessaria al fine di lanciare un programmino fatto da me.

    Ho trovato una classe che dovrebbe fare al caso mio ma non mi cambia nulla, la posto qui sotto, magari qualcuno la conosce e può aiutarmi:

    Public Class Interactive

    Private Declare Function OpenWindowStation Lib "user32.dll" Alias "OpenWindowStationA" (ByVal lpszWinSta As String, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Int32) As Int32
    Private Declare Function OpenDesktop Lib "user32.dll" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Int32, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Int32) As Int32
    Private Declare Function SetProcessWindowStation Lib "user32.dll" (ByVal hWinSta As Int32) As Int32
    Private Declare Function SetThreadDesktop Lib "user32.dll" (ByVal hDesktop As Int32) As Int32


    Public Sub MakeServiceInteractive()

    Dim lngDefaultDesktop As Int32
    Dim lngWinSta0 As Int32
    lngWinSta0 = OpenWindowStation("WinSta0", False, &H37F)
    Dim fatto1 = SetProcessWindowStation(lngWinSta0)
    lngDefaultDesktop = OpenDesktop("Default", 0&, False, &H10000000)
    Dim fatto = SetThreadDesktop(lngDefaultDesktop)

    Shell("c:\TrueUpdateClient.exe", AppWinStyle.NormalFocus, False)

    End Sub


    End Class

    L'unica cosa che funzionano sono le msgbox

    Installo il mio servizio in sistema locale.

    Quando lo avvio non da errori e nel taskmanager mi trovo processo del programma che voglio aprire: TrueUpdateClient.exe

    Se imposto io manualmente la proprietà di interazione con desktop funziona tutto correttamente.

    Qualcuno può aiutarmi, come posso impostare la proprietà automaticamente in fase di installazione del mio servizio?????


    saluti e grazie in anticipo per l'aiuto
    http://www.puntoexewld.com

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nell'installer devi aggiungere le istruzioni per fare in modo che il valore di questa chiave

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\TuoServizio\Type

    sia aumentata di 256 (esegui una OR con 256 e il valore precedente).

    Ovviamente

    TuoServizio

    sara' il nome del tuo servizio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    GRANDISSSSSIMO !!!!!

    Veramente grazie mille per la dritta !!!!!!

    http://www.puntoexewld.com

  4. #4
    Putroppo il mio entusiamo è stato prematuro.

    Settando in installazione la chiave da te descritta ottengo il check di opzione nelle proprietà del servizio ma non il corretto funzionamento.
    Se infatti avvio il servizio non mi viene lanciato il programma se non nel taskmanager.

    A questo punto tolgo l'opzione e la rimetto manualmente e in avvio del servizio mi viene avviato anche il programma.



    Di seguti il codice che utilizzo per aumentate la chiave di 256:

    Dim registryKey1 As RegistryKey
    registryKey1 = Registry.LocalMachine
    Dim registrySubKey1 As RegistryKey
    registrySubKey1 = registryKey1.OpenSubKey("SYSTEM\CurrentControlSet\ Services\mioServizio", True)
    Dim valueChiave1 = CInt(registrySubKey1.GetValue("Type")) + 256
    registrySubKey1.SetValue("Type", valueChiave1)

    Ho effettuato anche il seguente test: confronto mediante un utility il registro prima e dopo l'abilitazione manuale dell'opzione e l'unica differenza riscontrata è quella da te segnalata quindi anocra una volta mi sono arenato!
    http://www.puntoexewld.com

  5. #5
    Ho trovato una soluzione al problema, la scrivo per chi ne avesse bisogno in futuro.

    Dopo l'installazione del servizio occorre riavviare la macchina.

    Ciao a tutti
    http://www.puntoexewld.com

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.