<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5997&amp;type=atom" />
	<updated>2011-07-12T09:18:59Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5997</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49821#p49821" />
			<content type="html"><![CDATA[<p>Вот, что в итоге получилось<br /></p><div class="codebox"><pre><code>SetTitleMatchMode, 2 
SendMode, input
GroupAdd, RenameGroup
GroupAdd, RenameGroup, Program Manager ahk_class Progman
GroupAdd, RenameGroup, ahk_class CabinetWClass

#IfWinActive ahk_group RenameGroup
$F2::
   Islnk:=0
   Clipboard =
   Send ^{vk43}
   ClipWait
   IsDir := InStr(FileExist(Clipboard), &quot;D&quot;) ? 1 : 0
   If (not IsDir) and (RegExReplace(Clipboard, &quot;.*\.(.*)&quot;, &quot;$1&quot;)=&quot;lnk&quot;)
         Islnk:=1
   If (IsDir or IsLnk)
  {
    send {F2}
    return
  }
   i := k := 0
   ControlGetFocus, Control, A
   if InStr(Control, &quot;Edit&quot;)
      ControlGetText, FileName, %Control%, A
   else 
   {
      WinGet, ControlList, ControlList, A
      Loop, parse, ControlList, `n
         if InStr(A_LoopField, &quot;Edit&quot;)
            i++
      Send {F2}
      While k - i != 1
      {
         Sleep, 15
         k := 0
         WinGet, ControlList, ControlList, A
         Loop, parse, ControlList, `n
            if InStr(A_LoopField, &quot;Edit&quot;)
               k++
      }
      Control = Edit%k%
      ControlGetText, FileName, %Control%, A
   }
   FileNameNoExt := RegExReplace(FileName, &quot;(.*)\..*&quot;, &quot;$1&quot;)
   NameLengh := StrLen(FileNameNoExt)
   SendMessage, EM_SETSEL := 0xB1, 0, NameLengh, %Control%, A
   Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-07-12T09:18:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49821#p49821</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49818#p49818" />
			<content type="html"><![CDATA[<p><strong>InFlames</strong>, с точки зрения корректности — всё верно: папка тоже может иметь расширение. Единственное, что отличает папку от файла — один атрибут. В принципе, всё, что находится после последней точки — и есть расширение.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-07-11T21:42:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49818#p49818</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49813#p49813" />
			<content type="html"><![CDATA[<p>Наверно, только так:<br /></p><div class="codebox"><pre><code>!1::
   Clipboard =
   Send ^{vk43}
   ClipWait
   MsgBox, % InStr(FileExist(Clipboard), &quot;D&quot;) ? &quot;Папка&quot; : &quot;Файл&quot;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-07-11T18:59:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49813#p49813</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49812#p49812" />
			<content type="html"><![CDATA[<p>Отлично работает, но если в имени папки есть точка, то скрипт выделяет всё до точки. Как определить, что выделенный элемент папка?</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-07-11T18:48:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49812#p49812</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49808#p49808" />
			<content type="html"><![CDATA[<p>А вот так надёжнее, и без посыла клавиш, кроме F2:<br /></p><div class="codebox"><pre><code>!1::
   i := k := 0
   ControlGetFocus, Control, A
   if InStr(Control, &quot;Edit&quot;)
      ControlGetText, FileName, %Control%, A
   else 
   {
      WinGet, ControlList, ControlList, A
      Loop, parse, ControlList, `n
         if InStr(A_LoopField, &quot;Edit&quot;)
            i++
      Send {F2}
      While k - i != 1
      {
         Sleep, 50
         k := 0
         WinGet, ControlList, ControlList, A
         Loop, parse, ControlList, `n
            if InStr(A_LoopField, &quot;Edit&quot;)
               k++
      }
      Control = Edit%k%
      ControlGetText, FileName, %Control%, A
   }
   FileNameNoExt := RegExReplace(FileName, &quot;(.*)\..*&quot;, &quot;$1&quot;)
   NameLengh := StrLen(FileNameNoExt)
   SendMessage, EM_SETSEL := 0xB1, 0, NameLengh, %Control%, A
   Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-07-11T16:47:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49808#p49808</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49807#p49807" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Наверно, имеются ввиду значки на рабочем столе, когда название написано в несколько строк.</p></blockquote></div><p>Именно.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2011-07-11T16:26:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49807#p49807</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49806#p49806" />
			<content type="html"><![CDATA[<p>Для выделения имени файла пользуюсь таким:<br /></p><div class="codebox"><pre><code>!1::
   i = 0
   ControlGetFocus, Control, A
   if InStr(Control, &quot;Edit&quot;)
      ControlGetText, FileName, %Control%, A
   else 
   {
      WinGet, ControlList, ControlList, A
      Loop, parse, ControlList, `n
         if InStr(A_LoopField, &quot;Edit&quot;)
            i++
      Send {F2}
      Sleep, 50  ; на всякий случай, у меня работает и без этого
      ControlGetText, FileName, % &quot;Edit&quot; ++i, A
   }
   FileNameNoExt := RegExReplace(FileName, &quot;(.*)\..*&quot;, &quot;$1&quot;)
   NameLengh := StrLen(FileNameNoExt)
   SendInput, ^{Home}+{Right %NameLengh%}
   Return</code></pre></div><div class="quotebox"><cite>InFlames пишет:</cite><blockquote><p>Что за большие значки?</p></blockquote></div><p>Наверно, имеются ввиду значки на рабочем столе, когда название написано в несколько строк.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2011-07-11T16:07:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49806#p49806</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49805#p49805" />
			<content type="html"><![CDATA[<p>Что за большие значки?</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-07-11T16:04:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49805#p49805</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49804#p49804" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>К сожалению, для Проводника точка не является границей слова <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />, т.е., «Ctrl+Shift+Left» отрабатывает не так, как ожидалось. Наверное, придётся считать с конца — до точки.</p></blockquote></div><p>Блин, действительно. Тогда нужно забирать в буфер всё имя, разбирать его в коде посимвольно (искать точку с конца), а затем посылать «Shift+Left» или что-там ещё уже столько раз, сколько нужно.</p><p>Кстати, в случае больших значков и клавиша Home тоже может сработать не так как нужно, видимо.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2011-07-11T15:47:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49804#p49804</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49803#p49803" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>F2</p></blockquote></div><p>Начать переименование файла/папки в Проводнике.<br /></p><div class="quotebox"><blockquote><p>Home</p></blockquote></div><p>Перейти в начало имени, одновременно сняв выделение.<br /></p><div class="quotebox"><blockquote><p>Ctrl+Shift+End</p></blockquote></div><p>Выделить до конца текста.<br /></p><div class="quotebox"><blockquote><p>Ctrl+Shift+Left</p></blockquote></div><p>Убрать выделение с расширения.<br /></p><div class="quotebox"><blockquote><p>Shift+Left</p></blockquote></div><p>Убрать дополнительно выделение с точки.</p><p>К сожалению, для Проводника точка не является границей слова <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />, т.е., «Ctrl+Shift+Left» отрабатывает не так, как ожидалось. Наверное, придётся считать с конца — до точки.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-07-11T15:16:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49803#p49803</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49802#p49802" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>The gray Cardinal пишет:</cite><blockquote><p>А вообще, наверное, можно послать клавиши: F2, затем Home, затем Ctrl+Shift+End, затем Ctrl+Shift+Left, затем Shift+Left.</p></blockquote></div><p>А что при этом должно происходить? Попробовал - выделить имя без расширения не получилось.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2011-07-11T14:41:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49802#p49802</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49797#p49797" />
			<content type="html"><![CDATA[<p>Да. Именно так это и было реализовано. Можно и самому написать. Просто я вспомнил, что была такая тема, и хотел воспользоваться уже готовым решением.</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-07-11T08:54:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49797#p49797</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49796#p49796" />
			<content type="html"><![CDATA[<p>Темы такой не помню (это не значит, что её нет).<br />Разные версии Windows ведут себя по-разному при нажатии F2 в Проводнике, вроде. Т.е. где-то будет выделено всё имя, а где-то — имя без расширения.<br />А вообще, наверное, можно послать клавиши: F2, затем Home, затем Ctrl+Shift+End, затем Ctrl+Shift+Left, затем Shift+Left.</p>]]></content>
			<author>
				<name><![CDATA[The gray Cardinal]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=2</uri>
			</author>
			<updated>2011-07-11T06:44:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49796#p49796</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: переименование файла в Windows (выделение имени без расширения)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=49794#p49794" />
			<content type="html"><![CDATA[<p>Когда только попал на этот форум, видел тут скрипт, позволяющий переименовывать файл в Windows (двойной клик или F2), не выделяя расширение.<br />Т.е. выделяем файл, нажимаем F2, и скрипт выделяет только имя файла, не затрагивая расширение.<br />Не могу найти эту тему на форуме. Если не удалили ее, поделитесь ссылкой.</p>]]></content>
			<author>
				<name><![CDATA[InFlames]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24849</uri>
			</author>
			<updated>2011-07-11T05:21:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=49794#p49794</id>
		</entry>
</feed>
