<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Контекстное меню безопасного удаления]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8251&amp;type=atom" />
	<updated>2013-04-26T07:22:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8251</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71677#p71677" />
			<content type="html"><![CDATA[<p>Пока не было времени заниматься этим, но думаю, проблема заключается в неверной передаче SDelete.exe команды на удаление сразу несколько объектов &quot;RunWait, sdelete.exe -s &quot;%A_LoopField%&quot;, , hide&quot;.</p><p>SDelete.exe упорно не хочет удалять через скрипт несколько объектов. Не могу понять причину.<br />Пробовал передать в командной строке команду:<br />sdelete.exe -s &quot;D:\xxx\111.xxx&quot; &amp;&amp; sdelete.exe -s &quot;D:\xxx\222.xxx&quot; &amp;&amp; sdelete.exe -s &quot;D:\xxx\333.xxx&quot; - это все работает.</p><p>Кажется я понял. RunWait передает команду на ожидание завершения работы SDelete.exe, но не на ожидание завершения удаления каждого из нескольких файлов? Надо реализовать последовательное удаление нескольких объектов после удаления предыдущего, как в команде, обозначенной выше?</p><p>Скорее всего, надо копать в этом направлении ....</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-26T07:22:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71677#p71677</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71657#p71657" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Кстати, что-то компактнее этого появилось?</p></blockquote></div><p> Для окон проводника:<br /></p><div class="codebox"><pre><code>ExplorerGetSelection(hwnd := &quot;&quot;) {
; всего лишь пример. 
    (hwnd) || hwnd := WinExist(&quot;A&quot;)
    WinGetClass winClass, ahk_id %hwnd%

    if (winClass != &quot;CabinetWClass&quot; &amp;&amp; winClass != &quot;ExploreWClass&quot;)
        return

    for explorerWindow in ComObjCreate(&quot;Shell.Application&quot;).Windows {
        if (explorerWindow.hwnd != hwnd)
            continue

        for selectedItem in explorerWindow.Document.SelectedItems
            itemList .= selectedItem.path . &quot;`n&quot;
    }
    explorerWindow := selectedItem := &quot;&quot;
    return Rtrim(itemList) ; возвращается строка включающая пути выделенных файлов. разделитель `n
}</code></pre></div><p>Как получить список выделенных файлов на рабочем столе&nbsp; — по ссылке.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-25T08:06:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71657#p71657</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71629#p71629" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>MsgBox сообщает, что файл<strong>ы</strong> xxxxx.xxx удален<strong>ы</strong>.</p></blockquote></div><p>В коде сообщения #14 нет Msgbox с таким сообщением.<br /></p><div class="quotebox"><blockquote><p>и какой вариант лучше?</p></blockquote></div><p>Тот, который работает. В данный момент у вас есть один вариант.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-22T15:01:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71629#p71629</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71603#p71603" />
			<content type="html"><![CDATA[<p>Большое спасибо, creature.ws! Теперь все заработало, как хотелось, но при множественном выделении почему-то удаляется только по одному файлу, хотя MsgBox сообщает, что файлы xxxxx.xxx удалены. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p><div class="quotebox"><cite>creature.ws пишет:</cite><blockquote><p>Список файлов из проводника можно получать с помощью COM, механизм «безопасного удаления» sdelete — реализовать на autohotkey. FileWipe и GetFileList используют способ предложенный в первом сообщении.</p><p>«Глюки», вероятно, возникали при множественном запуске скрипта и sdelete.</p></blockquote></div><p>А как это все реализовать и какой вариант лучше? ... Я пока еще не &quot;догоняю&quot;. Если Вам не сложно, пожалуйста! Мне легче понять это из кода скрипта, чем искать в справке ....</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-22T07:23:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71603#p71603</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71600#p71600" />
			<content type="html"><![CDATA[<p>Off:<br /></p><div class="quotebox"><cite>creature.ws пишет:</cite><blockquote><p><span style="color: #C3C3C3">Список файлов из проводника можно получать с помощью COM</span></p></blockquote></div><p><span style="color: #C3C3C3"><br />Кстати, что-то <a href="http://www.autohotkey.com/board/topic/60985-get-paths-of-selected-items-in-an-explorer-window/">компактнее этого</a> появилось?</span></p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-22T02:27:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71600#p71600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71598#p71598" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#NoEnv
#NoTrayIcon
#SingleInstance Ignore
SetBatchLines -1

if !fileList := GetFileList()
    ExitApp

loop Parse, fileList, `n
{
    Splitpath, A_LoopField, fileName
    fileNameList .= fileName . &quot;`n&quot;
}

MsgBox, 4, ContextDeleteMenu, Удалить безвозвратно:`n`n%fileNameList%`n`nПродолжить?
IfMsgBox, No, ExitApp

loop Parse, fileList, `n
    FileWipe(A_LoopField)

FileWipe(ByRef filePath) {
    RunWait sdelete.exe -s &quot;%filePath%&quot;,, hide UseErrorLevel
    if !ErrorLevel
        MsgBox, 32, ContextDeleteMenu, Удалено`r`n%filePath%, 1.5
}

GetFileList() {
    clipboard := &quot;&quot;
    Send, ^{vk43}
    ClipWait, 2
    return Clipboard
}

</code></pre></div><p>Список файлов из проводника можно получать с помощью COM, механизм «безопасного удаления» sdelete — реализовать на autohotkey. FileWipe и GetFileList используют способ предложенный в первом сообщении.</p><p>«Глюки», вероятно, возникали при множественном запуске скрипта и sdelete.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-21T21:11:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71598#p71598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71597#p71597" />
			<content type="html"><![CDATA[<p>Я понял, .... что ничего не понял. Извините. Благодарю за помощь!</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-21T18:19:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71597#p71597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71596#p71596" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>- это что означает?</p></blockquote></div><p>Вам были заданы вопросы в 5 посте, из ответов на которые можно было бы сделать выводы.... </p><p>Остальные ваши &quot;текста&quot;, увы не возвращают мне сути по сабжу.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-21T18:16:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71596#p71596</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71595#p71595" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p><a href="http://forum.script-coding.com/viewtopic.php?pid=71589#p71589">Return</a></p></blockquote></div><p> - это что означает? Можно разжевать чайнику? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-21T18:12:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71595#p71595</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71594#p71594" />
			<content type="html"><![CDATA[<p>В принципе, этот скрипт нужен для того, чтобы случайно безвозвратно не удалить нужный файл. Можно непосредственно в реестр добавить вместо ContextDeleteMenu.exe - sdelete.exe. Все работает, но без запроса на удаление объектов ...</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-21T18:10:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71594#p71594</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71593#p71593" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?pid=71589#p71589">Return</a></p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-21T18:08:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71593#p71593</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71592#p71592" />
			<content type="html"><![CDATA[<p>... ну может не так выразился, извиняюсь. Это MsgBox</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-21T18:05:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71592#p71592</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71591#p71591" />
			<content type="html"><![CDATA[<p>А что такое &quot;PopUp окна&quot;?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-21T18:02:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71591#p71591</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71590#p71590" />
			<content type="html"><![CDATA[<p>ОК. Добавляю в реестр этот регфайл:</p><div class="codebox"><pre><code>Windows Registry Editor Version 5.00

#####################
# ContextDeleteMenu #
#####################

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ContextDeleteMenu]
&quot;MUIVerb&quot;=&quot;Безопасное удаление&quot;
&quot;Icon&quot;=&quot;SHELL32.dll,131&quot;

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\ContextDeleteMenu\command]
@=&quot;ContextDeleteMenu.exe&quot;</code></pre></div><p>Получаю в контекстном меню проводника пункт &quot;&quot;Безопасное удаление&quot;.</p><p>Далее в C:\Windows\ или C:\Windows\System32\ (не имеет значения) ложу программу SDelete.exe и рядом скомпилированный в exe скрипт AHK ContextDeleteMenu.exe который будет выдавать запрос на подтверждения удаления объектов и в случае подтверждения, будет передавать команду программе SDelete.exe на их удаление ...</p><p>Надеюсь, теперь внятно написал .... </p><p>Мигают (открываются и закрываются) поочередно все PopUp окна ... пока не остановишь вручную работу скрипта. Это в случае выделения и удаления двух и более объектов.</p>]]></content>
			<author>
				<name><![CDATA[Dr.Jekyll]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30028</uri>
			</author>
			<updated>2013-04-21T17:58:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71590#p71590</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Контекстное меню безопасного удаления]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=71589#p71589" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>я только учусь</p></blockquote></div><p>Вы выбрали отличный способ познать новое, игнорируя вопросы...<br /></p><div class="quotebox"><blockquote><p>Посмотрите так есть проблемы при показе выделенного?:</p></blockquote></div><div class="quotebox"><blockquote><p>Чего вы ждёте командой WinWaitClose, ContextDeleteMenu?</p></blockquote></div><div class="quotebox"><blockquote><p>Попробуйте просто RunWait, sdelete.exe -s &quot;%A_LoopField%&quot;, , hide</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-21T17:47:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=71589#p71589</id>
		</entry>
</feed>
