j'ai réussi à obtenir le fichier sélectionné dans le dossier de travail en cours à partir de Windows Explorer à l'aide SystemAccessibleObject de http://mwinapi.sourceforge.net/Obtenir l'extension d'objet de AccessibleObjectFromWindow?
Je veux obtenir le nom du fichier avec l'extension, mais si vous activez l'option « Masquer les extensions des types de fichiers connus » alors il n'y aura que le nom de fichier Je suis coincé sur cette étape.
Mon code:
SystemAccessibleObject currentWorkingWindow = SystemAccessibleObject.FromWindow(new SystemWindow(GetForegroundWindow()), AccessibleObjectID.OBJID_WINDOW).Children.Where(c => c.RoleString.Equals("client")).FirstOrDefault();
if (null != currentWorkingWindow)
{
SystemWindow addressBar = currentWorkingWindow.Window.AllDescendantWindows.Where(w => w.ClassName.Equals("ComboBox")).FirstOrDefault();
if (null != addressBar)
{
string addressBarContent = addressBar.Content.LongDescription;
Match m = Regex.Match(addressBarContent, "Address \\[push button\\]\\n[A-Z]: \\n[A-Z]: ([A-Z]:\\\\[^/:*?<>|\"\\r\\n\\t]+)");
if (null != m || null != m.Groups[1])
{
SystemWindow currentListView = currentWorkingWindow.Window.AllDescendantWindows.Where(w => w.ClassName.Equals("SysListView32")).FirstOrDefault();
if (null != currentListView)
{
SystemAccessibleObject currentListViewItems = SystemAccessibleObject.FromWindow(currentListView, AccessibleObjectID.OBJID_WINDOW).Children.Where(c => c.RoleString.Equals("list")).FirstOrDefault();
if (null != currentListViewItems)
{
SystemAccessibleObject[] selectedItems = currentListViewItems.SelectedObjects;
string currentWorkingFolderPath = m.Groups[1].Value;
if (0 != selectedItems.Count())
{
string[] fileNames = currentListView.Content.PropertyList.Select(p => p.Value).ToArray();
}
}
}
currentListView = null;
}
m = null;
}
addressBar = null;
}
currentWorkingWindow = null;
Tout aide serait appréciée!
Merci pour votre commentaire, mais il ne peut pas m'aider. Je veux utiliser cette fonction sur le dossier de travail actuel, pas le dossier prédéfini. – ByulTaeng