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.
codice:
<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
e lo richiamo con
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
Ho inserito solo il codice della form dentro il servizio ma non va. Non riesco a capire il perchè
In allegato il progetto
Grazie