salve,
ho scaricato una demo per creare un servizio ed installato con "installutil". Tutto funziona bene.
Il servizio controlla l'esistenza di un file e lo trascrive in un log.
Ho creato un una form dove mi legge le cartelle aperte usando "user32". Tutto funziona bene.
e lo richiamo concodice:<DllImport("user32.dll", EntryPoint:="FindWindow", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function FindWindowByCaption( ByVal zero As IntPtr, ByVal lpWindowName As String) As IntPtr End Function <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean End Function
Ho inserito solo il codice della form dentro il servizio ma non va. Non riesco a capire il perchècodice:Const WM_CLOSE As Long = &H10 Dim zero As IntPtr = IntPtr.Zero Dim windowName As String = "nome_della_cartella_da_cercare" Dim dialogHandle As IntPtr = FindWindowByCaption(zero, windowName) writeTxtFile(blnCheckExists(strControlPath & strEndCodeFile).ToString(), dialogHandle) If dialogHandle <> 0 Then 'ho trovato la cartella aperta e la chiudo PostMessage(dialogHandle, WM_CLOSE, 0&, 0&) Else 'non trovo la cartella aperta End If
In allegato il progetto
Grazie

Rispondi quotando