Что нового

[Окна, Диалоги] Открыть окно "Свойство файла"

erlik

Продвинутый
Сообщения
317
Репутация
84
Не получается открыть системное окно "Свойства файла".
Поначалу вообще не знал как это делается- потом прочитал описание ShellExecute() и увидел, что она должна уметь это делать. Но вот так не получается - ShellExecute("d:\test.doc", "", "", "properties") - выдается системное сообщение,что данное приложение не сопоставлено с файлом. И как же быть?При этом с open или edit все нормально.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
Код:
_FileDisplayProperties(@ScriptDir)
;~ Sleep(5000)

Func _FileDisplayProperties($sCallFile, $iWait = 1)
	If Not FileExists($sCallFile) Then Return SetError(1, 0, 0)
	
	Local $iReturn = DllCall("shell32.dll", "int", "SHObjectProperties", "hwnd", 0, "dword", 0x00000002, "wstr", $sCallFile, "wstr", 0)
	
	If $iWait = 1 Then
		Local $sCaption = StringRegExpReplace($sCallFile, "^.*\\(.*)|\.[^\.]*$", "\1")
		If @extended = 0 Or $sCaption = "" Then $sCaption = ".*"
		
		$sCaption = "[CLASS:#32770;REGEXPTITLE:(?i).*?" & $sCaption & ".*?]"
		
		WinWaitActive($sCaption, "", 3)
		If Not WinActive($sCaption) Then $sCaption = "[CLASS:#32770]"
		
		WinWaitClose($sCaption)
	EndIf
	
	Return $iReturn[0]
EndFunc
 

VladUs

Скриптер
Сообщения
621
Репутация
180
Или так :

Код:
$sPath     = "C:\boot.ini"
 $oshellApp = ObjCreate("shell.application")
 $ObjFile   = $oshellApp.namespace(0)
 $sFile     = $ObjFile.parsename($sPath)
 $sVerb     = $sFile.invokeverb("Properties")
 Sleep(5000)


Или так:

Код:
#Include <WinAPIEx.au3>
_WinAPI_ShellObjectProperties("C:\Boot.ini")
While 1
    Sleep(100)
WEnd
 
Верх