<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=87038&amp;view=findpost&amp;p=1577807</guid>
        <pubDate>Thu, 24 May 2007 14:14:34 +0000</pubDate>
        <title>Стандартные диалоги Windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=87038&amp;view=findpost&amp;p=1577807</link>
        <description><![CDATA[B.V.: Способ №2:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; Const SEE_MASK_INVOKEIDLIST = &amp;HC</div><div class="code_line">&nbsp;&nbsp; Const SEE_MASK_NOCLOSEPROCESS = &amp;H40</div><div class="code_line">&nbsp;&nbsp; Const SEE_MASK_FLAG_NO_UI = &amp;H400</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Private Type SHELLEXECUTEINFO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;cbSize As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;fMask As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;hwnd As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpVerb As String</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpFile As String</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpParameters As String</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpDirectory As String</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;nShow As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;hInstApp As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpIDList As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;lpClass As String</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;hkeyClass As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;dwHotKey As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;hIcon As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;hProcess As Long</div><div class="code_line">&nbsp;&nbsp; End Type</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Private Declare Function ShellExecuteEx Lib &quot;shell32.dll&quot; Alias &quot;ShellExecuteEx&quot; (SEI As SHELLEXECUTEINFO) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Sub ShowProps(FileName As String, OwnerhWnd As Long)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Dim SEI As SHELLEXECUTEINFO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Dim r As Long</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;With SEI</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.cbSize = Len(SEI)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.fMask = SEE_MASK_NOCLOSEPROCESS Or _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; SEE_MASK_INVOKEIDLIST Or SEE_MASK_FLAG_NO_UI</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.hwnd = OwnerhWnd</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.lpVerb = &quot;properties&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.lpFile = FileName</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.lpParameters = vbNullChar</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.lpDirectory = vbNullChar</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.nShow = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.hInstApp = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.lpIDList = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;End With</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;r = ShellExecuteEX(SEI)</div><div class="code_line">&nbsp;&nbsp; End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; Private Sub Form_Load()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ShowProps &quot;c:\config.sys&quot;, Me.hwnd</div><div class="code_line">&nbsp;&nbsp; End Sub</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>B.V.</author>
        <category>Формы, окна, диалоги, десктоп</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=87038&amp;view=findpost&amp;p=645822</guid>
        <pubDate>Tue, 15 Mar 2005 15:54:53 +0000</pubDate>
        <title>Стандартные диалоги Windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=87038&amp;view=findpost&amp;p=645822</link>
        <description><![CDATA[SpawnProduction: Здесь представленны некоторые недокументированные API функции для вызова диалогов.<br>
<br>
<span class='tag-size' data-value='12' style='font-size:12pt;'>Вызывает диалог выключения компьютера</span><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Declare Function SHShutDownDialog Lib &quot;shell32&quot; Alias &quot;#60&quot; _ </div><div class="code_line">(ByVal hOwner As Long) As Long</div></ol></div></div></div></div><br>
<br>
<span class='tag-size' data-value='12' style='font-size:12pt;'>Вызывает диалог перезагрузки компьютера</span><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Declare Function SHRestartSystem Lib &quot;shell32&quot; Alias &quot;#59&quot; (ByVal hOwner As Long, _</div><div class="code_line">ByVal sPrompt As String, ByVal uFlags As Long) As Long</div></ol></div></div></div></div><br>
<br>
<span class="tag-color tag-color-named" data-value="red" style="color: red">Новые параметры вступят в силу после перезагрузки</span><br>
Строка Prompt вставляется ПЕРЕД стандартной фразой. <br>
Парамметр uFlags аналогичен соответствующему параметру функции ExitWindowsEx. Значения флагов можно взять из Api Viewer:<br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">EWX_LOGOFF = 0</span><br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">EWX_SHUTDOWN = 1</span><br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">EWX_REBOOT = 2</span><br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">EWX_FORCE = 4</span><br>
<br>
Возвращает <span class="tag-color tag-color-named" data-value="blue" style="color: blue">vbYes</span> или <span class="tag-color tag-color-named" data-value="blue" style="color: blue">vbNo</span> в зависимости от нажатой кнопки. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">hOwner</span> - хэндл родительского окна - в обоих приведенных выше функциях не влияют на положение окна диалога - оно расположено в центре десктопа, а используются для получения сообщения <span class="tag-color tag-color-named" data-value="blue" style="color: blue">WM_QUIT</span>, которое можно обработать перед выходом.<br>
<br>
<span class='tag-size' data-value='12' style='font-size:12pt;'>Вызывает диалог &quot;Выполнить&quot;</span><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Declare Function SHRunDialog Lib &quot;shell32&quot; Alias &quot;#61&quot; (ByVal hOwner As Long, _</div><div class="code_line">ByVal hIcon As Long, ByVal sDir As String, ByVal sTitle As String, ByVal sPrompt As String, _</div><div class="code_line">ByVal uFlags As Long) As Long</div></ol></div></div></div></div><br>
<br>
Передаваемые параметры: <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">hOwner</span> - хэндл родителя. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">hIcon</span> - хэндл иконки, которую можно поместить вместо стандартной (окошко программ с песочными часами) <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">sDir</span> - рабочий каталог, можно передать 0 (об&#39;явив как Long) - тогда каталог, в котором расположена программа. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">sTitle</span> и <span class="tag-color tag-color-named" data-value="brown" style="color: brown">sPrompt</span> - соответственно заголовок и подсказка диалога. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">uFlags</span> - передаваемые параметры <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">Run_NOBROWSE = 1</span> Убрать кнопку Найти <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">Run_NODEFAULT = 2</span> Оставить тект бокс чистым. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">Run_CALCDIRECTORY = 4</span> Получить рабочую директорию из имени файла <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">Run_NOLABEL = 8</span> Убирает надпись перед текст боксом.<br>
<br>
<span class='tag-size' data-value='12' style='font-size:12pt;'>Вызывает диалог выбора иконки (как при смене значка на десктопе)</span><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Declare Function SHChangeIconDialog Lib &quot;shell32&quot; Alias &quot;#62&quot; (ByVal hOwner As Long, _</div><div class="code_line">ByVal sFilename As String, ByVal nBuf As Long, nIconIndex As Long) As Long</div></ol></div></div></div></div><br>
<br>
Параметры <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">hOwner</span> - хэндл родителя. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">sFileName</span> - полный путь файла с иконками (должен существовать). Если в указанном файле нет иконок, вызываются иконки Shell32.dll. <span class="tag-color tag-color-named" data-value="brown" style="color: brown">sFileName</span> должен быть максимальной длинны, например, так <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">sFileName = sFileName &amp; String$(260 - Len(sFileName), 0)</div></ol></div></div></div></div><br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">nBuf</span> - буфер для имени файла, если имя максимальной длины, то можно передавать 0, если нет - максимальный размер <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">nIconIndex</span> - до выполнения - 0, после выполнения функции возвращает номер иконки в файле. Далее эту иконку можно вытащить с помощью вполне документированной функции <span class="tag-color tag-color-named" data-value="blue" style="color: blue">ExtractIconEx</span> из той же библиотеки.<br>
<br>
<span class='tag-size' data-value='12' style='font-size:12pt;'>Функция вызывает диалог &quot;Свойства&quot;</span><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Private Declare Function SHObjectProperties Lib &quot;shell32&quot; Alias &quot;#178&quot; (ByVal hOwner As Long, _</div><div class="code_line">ByVal uFlags As Long, ByVal sName As String, ByVal sParam As String) As Long</div></ol></div></div></div></div><br>
<br>
Параметры <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">hOwner</span> - хэндл родителя. <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">uFlags</span> - может принимать два значения - 1 для свойств принтера, 2 - для файла <br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">sName</span> - имя принтера или файла. Если вместо имени файла указаны папка или диск, вызывается соответствующее окно свойств. Если указано &quot;&quot; - появляются свойства Системы.<br>
<span class="tag-color tag-color-named" data-value="brown" style="color: brown">sParam</span> - название вкладки на пропертях, которую надо показать. Если предать пустую строку или несуществующую вкладку - будет показана первая вкладка.<br>
<br>
<br>
<br>
Важное замечание, автор <a class='tag-url' href='http://forum.sources.ru/index.php?showuser=20357' target='_blank'>Super-Vadim</a> <br>
<br>
В функции &quot;Диалог &quot;Свойства&quot;&quot; параметры имени файла и вкладки, нужно передавать предварительно отъюникодив (в XP точно), а то работать не будет...<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39;Command1 – кнопка</div><div class="code_line">&#39; - - - - - -</div><div class="code_line">&#39;Код формы</div><div class="code_line">&nbsp;</div><div class="code_line">Private Declare Function ShowPropertiesObj Lib &quot;shell32&quot; Alias &quot;#178&quot; (ByVal hOwner As Long, ByVal uFlags As Long, ByVal fFileName As String, ByVal fTabName As String) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Private Function ShowProperties(ByVal hOwnerForm As Long, ByVal pFileName As String, Optional ByVal pTabName As String = &quot;&quot;) As Long</div><div class="code_line">&nbsp;&nbsp;pFileName = StrConv(pFileName, vbUnicode)</div><div class="code_line">&nbsp;&nbsp;pTabName = StrConv(pTabName, vbUnicode)</div><div class="code_line">&nbsp;&nbsp;ShowProperties = ShowPropertiesObj(hOwnerForm, 2, pFileName, pTabName)</div><div class="code_line">End Function</div><div class="code_line">&nbsp;</div><div class="code_line">Private Sub Command1_Click()</div><div class="code_line">&nbsp;&nbsp;ShowProperties Form1.hWnd, &quot;C:\file.txt&quot;, &quot;общие&quot; &#39;(&quot;общие&quot;, &quot;сводка&quot; и т.д.)</div><div class="code_line">&nbsp;&nbsp;ShowProperties Form1.hWnd, &quot;C:\&quot;</div><div class="code_line">&nbsp;&nbsp;ShowProperties Form1.hWnd, &quot;C:\Папка&quot;</div><div class="code_line">End Sub</div></ol></div></div></div></div>]]></description>
        <author>SpawnProduction</author>
        <category>Формы, окна, диалоги, десктоп</category>
      </item>
	
      </channel>
      </rss>
	