Accedi a WPF-Elements da altri processi

1

Sto usando un'applicazione, che so, è c # con WPF. Voglio prendere i dati da alcune delle sue finestre. In dettaglio, voglio prendere una griglia con tutto il contenuto e l'intestazione. Se faccio copia + incolla, ottengo solo tutto il contenuto, ma non le intestazioni.

C'è un modo per connettersi al processo e ottenere un handle per il controllo e accedere ai dati dei controlli (senza fare ocr o qualche altra cosa che cattura lo schermo) nativo in .net?

So come ottenere un handle per la finestra, e il modulo stesso contiene solo questa griglia, quindi se ho la finestra come qualsiasi tipo di .net-object, otterrò presto la griglia. La domanda è, se riesco ad arrivare alla finestra come .net- "nativo" -oggetto.

    
posta swe 30.09.2016 - 16:29
fonte

2 risposte

1

Che intendi con:

The question is, if I can get to the window as .net-"native"-object.

Tutta la finestra WPF è implementata come oggetto .NET. Pertanto, qualsiasi oggetto posizionato nella finestra WPW è oggetto .NET, purché l'oggetto sia anche oggetto .NET. Non esiste un oggetto nativo .NET, poiché nativo in .NET significa API nativa di Microsoft Windows (o API OS sottostante).

Puoi collegarti a un'applicazione .NET (ed esaminare tutti gli oggetti all'interno dell'applicazione) finché è eseguibile e non compilato in .NET Core. Ma l'aggancio in un'applicazione .NET è un compito molto difficile e noioso, e puoi agganciare qualsiasi applicazione .NET più facilmente usando il debugger di Visual Studio perché quello che stai cercando di realizzare è in realtà la creazione di un debugger. Il debugger di Visual Studio può essere collegato a qualsiasi applicazione in esecuzione .NET, inclusi WPF e Windows Form.

    
risposta data 28.12.2016 - 04:38
fonte
0

Non tutti i controlli WPF hanno maniglie Window, solo alcuni controlli alla base dello stack visivo li hanno (come la Finestra). Di conseguenza, qui non puoi usare il modo pinvoke di getwindowtext ecc.

Dal momento che alcune "tecnologie assistive" come gli screen reader potrebbero dover accedere ai contenuti, suggerirei di esaminare questo campo per avere ulteriori idee su come accedere ai controlli.

    
risposta data 28.03.2017 - 10:09
fonte

Leggi altre domande sui tag