<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Сохранение и открытие скрипта в редакторе]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12468</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12468&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Сохранение и открытие скрипта в редакторе».]]></description>
		<lastBuildDate>Tue, 28 Mar 2017 01:33:56 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114329#p114329</link>
			<description><![CDATA[<p><strong>Krot66</strong>, Спасибо! Но мне бы что-то попроще. Что-то вроде:<br /></p><div class="codebox"><pre><code>		If FileExist(&quot;saveTofile&quot;)
		{
			saveTofile := %saveTofile%_%A_Index%
		}</code></pre></div><p>Только в правильном синтаксисе и в нужном месте.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Tue, 28 Mar 2017 01:33:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114329#p114329</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114311#p114311</link>
			<description><![CDATA[<p>Вот функциия для такого автопереименовани (tab - число цифр с ведущими нолями).<br /></p><div class="codebox"><pre><code>
RenIfExist(f_path,tab=1)
{
	If !FileExist(f_path)
		return f_path
	SplitPath f_path, , dir, ext, file
	Loop % dir &quot;\&quot; file &quot;*.&quot; ext
	{
		n:=0
		RegExMatch(A_LoopFileName,&quot;(?&lt;=_)\d+?(?=\.[a-zA-Z0-9]{2,4}$)&quot;,n)
		If !n
			n_max:=0
		If (n&gt;n_max)
			n_max:=n
	}
	SetFormat float, % &quot;0&quot; tab
	return dir &quot;\&quot; file &quot;_&quot; n_max+1.0 &quot;.&quot; ext
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Mon, 27 Mar 2017 17:21:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114311#p114311</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114307#p114307</link>
			<description><![CDATA[<p>Помогите, пожалуйста, добавить условие на случай, если скрипт с выбранным названием уже существует. Например, добавлять в конец названия индексовое значение. Т.к. если сохранять несколько скриптов с одной и той же страницы, все сохраняется в один файл.</p><div class="codebox"><pre><code>^!vk43 Up::	; Quick Save Script
saveToFolder := &quot;&quot;	; Where to save scripts.
If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
		While (GetKeyState(&quot;Ctrl&quot;, &quot;P&quot;))
			Sleep, 10
	While (GetKeyState(&quot;Alt&quot;, &quot;P&quot;))
			Sleep, 10
	WinGetTitle, Title, A
	If InStr(Title, &quot;Серый форум&quot;){
		Title := RegExReplace(Title, &quot;i)(AHK:\s*)?(.*) \(Страница \d+\) — .*&quot;, &quot;$2&quot;)
	}
	Title := ValidName(Title)
	RegRead, editor, HKCR, AutoHotkeyScript\Shell\Edit\Command
	editor := StrReplace(editor, &quot;%SystemDrive%&quot;, SystemDrive)
	saveToFolder := &quot;&quot;
	savedClipboard := ClipboardAll
	Clipboard := &quot;&quot;
	SendInput ^{vk43}
	ClipWait, 0.5
	textToSave := &quot;#SingleInstance Force`rSetTitleMatchMode 2`r`r&quot;Clipboard
	Clipboard := savedClipboard
	InputBox, filename, Enter the name for the script&#039;s file:,,, 300, 100,,,,, %Title%
		if errorlevel
		{
			return
		}
	saveTofile := (saveToFolder ? saveToFolder : A_ScriptDir) &quot;\&quot; (filename ? filename : &quot;_test_&quot; A_Now) &quot;.ahk&quot;
	FileAppend, %textToSave%, %saveTofile%, UTF-8
	Run, % (editor ? StrReplace(editor, &quot;&quot;&quot;%1&quot;&quot;&quot;, &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) : notepad.exe  &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) 
	textToSave := filename := savedClipboard := saveTofile := &quot;&quot;
Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Mon, 27 Mar 2017 16:24:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114307#p114307</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114244#p114244</link>
			<description><![CDATA[<p>Эту штуку я делал под себя и довольно давно. Для меня ее смысл как раз в том, чтобы поменьше думать, поскольку для простых текстовых файлов я пользуюсь ей много. Можно, конечно, слепить меню, но ошибок от этого станет только больше. Тип сохранения выводится в заголовке окна - можно отменить и пересохранить, если не то.<br />Если будут вопросы, пишите в теме скрипта.</p>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Sun, 26 Mar 2017 16:01:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114244#p114244</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114242#p114242</link>
			<description><![CDATA[<p><strong>Krot66</strong>, спасибо! Но мне, например, удобнее использовать одну горячую клавишу. Даже если добавить периодическое обращение к сценариям на ином языке, я бы все равно оставил одну горячую клавишу, но расширил опциональность посредством чекбоксов, например.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Sun, 26 Mar 2017 15:35:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114242#p114242</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=114225#p114225</link>
			<description><![CDATA[<p>Более универсальный вариант того же самого:<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=114223#p114223">http://forum.script-coding.com/viewtopi … 23#p114223</a></p>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Sun, 26 Mar 2017 13:15:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=114225#p114225</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113985#p113985</link>
			<description><![CDATA[<p>После WinGetTitle<br /></p><div class="codebox"><pre><code>
Title:=ValidName(Title)
</code></pre></div><p>Саму функцию, естественно, дописать в конце скрипта!</p>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Fri, 24 Mar 2017 14:36:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113985#p113985</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113983#p113983</link>
			<description><![CDATA[<p><strong>Krot66</strong>, спасибо! Не понял, к сожалению, как использовать <em>ValidName</em>, т.к. у меня в результате использования данной функции, от заголовка ничего не остается.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Fri, 24 Mar 2017 14:26:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113983#p113983</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113962#p113962</link>
			<description><![CDATA[<p>Можно удалить имя приложения чем-нибудь вроде<br /></p><div class="codebox"><pre><code>
RegExReplace(t,&quot; - [^-]+$&quot;)
</code></pre></div><p>Еще понадобится функция для удаления некорректных символов (того же двоеточия в этом заголовке), не поддерживаемых операционной системой<br /></p><div class="codebox"><pre><code>
ValidName(n,r=&quot;&quot;) ; r - замена пробелов, например подчеркиванием
{
	n:=RegExReplace(n,&quot;(:|;|,|\.|\*|\?|\\|/|&lt;|&gt;|&quot;&quot;)&quot;,&quot; &quot;)
	n:=RegExReplace(n,&quot;\s+&quot;,&quot; &quot;)
	StringReplace n, n, |, -, All
	If r
		StringReplace n, n, % &quot; &quot;, % r, All
	return Trim(n)
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Fri, 24 Mar 2017 10:25:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113962#p113962</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113943#p113943</link>
			<description><![CDATA[<p><strong>Krot66</strong>, Спасибо! Я немного переделал для себя данный сценарий, а именно, оставил только одну горячую клавишу. Если окно для ввода названия оставить пустым, то название приводится по заданному шаблону. Также в начало добавляются установки: <em>#SingleInstance Force</em> и <em>SetTitleMatchMode 2</em>. По умолчанию, InputBox заполняется заголовком активного окна. хотелось бы, чтобы скрипт умел определять, что текущее окно - это страница данного форума и автоматически исключать из его заголовка все, кроме названия темы. Помогите реализовать, пожалуйста.</p><div class="codebox"><pre><code>^!vk43 Up::	; Quick Save Script (Ctrl+Alt+C)
If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
		While (GetKeyState(&quot;Ctrl&quot;, &quot;P&quot;))
			Sleep, 10
	While (GetKeyState(&quot;Alt&quot;, &quot;P&quot;))
			Sleep, 10
	WinGetTitle, Title, A
	RegRead, editor, HKCR, AutoHotkeyScript\Shell\Edit\Command
	editor := StrReplace(editor, &quot;%SystemDrive%&quot;, SystemDrive)
	saveToFolder := &quot;&quot;
	savedClipboard := ClipboardAll
	Clipboard := &quot;&quot;
	SendInput ^{vk43}
	ClipWait
	textToSave := &quot;#SingleInstance Force`rSetTitleMatchMode 2`r`r&quot;Clipboard
	Clipboard := savedClipboard
	InputBox, filename, Enter the name for the script&#039;s file:,,, 300, 100,,,,, %Title%
		if errorlevel
		{
			return
		}
	saveTofile := (saveToFolder ? saveToFolder : A_ScriptDir) &quot;\&quot; (filename ? filename : &quot;_test_&quot; A_Now) &quot;.ahk&quot;
	FileAppend, %textToSave%, %saveTofile%, UTF-8
	Run, % (editor ? StrReplace(editor, &quot;&quot;&quot;%1&quot;&quot;&quot;, &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) : notepad.exe  &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) 
	textToSave := filename := savedClipboard := saveTofile := &quot;&quot;
Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Thu, 23 Mar 2017 18:42:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113943#p113943</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113913#p113913</link>
			<description><![CDATA[<p>Путь к новому файлу не был заключен в кавычки. Строки 34-38 лучше заменить простым копированием и ожиданием наполнения буфера - эта идея с посылкой множественных нажатий может обернуться тем, что буква &quot;c&quot; будет посылаться в окно до бесконечности.<br /></p><div class="codebox"><pre><code>
/* QuickSaveThisScript.ahk
Version: 0.1
Last time modified: 2015.09.14 20:42

Description: a script to quickly save selected text to an *.ahk file and open it in the editor.

Script author: Drugoy a.k.a. Drugmix
Contacts: idrugoy@gmail.com, drug0y@ya.ru
https://github.com/Drugoy/Autohotkey-scripts-.ahk/tree/master/QuickSaveThisScript/QuickSaveThisScript.ahk
*/
SendMode, Input  ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance, Force
SetKeyDelay, 50

;{ Settings
saveToFolder := &quot;&quot;	; Where to save scripts. If blank - the scripts will get saved next to this script.
;}

RegRead, editor, HKCR, AutoHotkeyScript\Shell\Edit\Command	; Get user&#039;s editor assigned for AutoHotkey scripts.
editor := StrReplace(editor, &quot;%SystemDrive%&quot;, SystemDrive)
Return

^!vk43 Up::	; &quot;Ctrl+Alt+c&quot;	&lt; this will also open a prompt for file name.
!vk43 Up::	; &quot;Alt+c&quot;.
	;{ Make sure all the hotkey&#039;s keys got unpressed.
	If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
		While (GetKeyState(&quot;Ctrl&quot;, &quot;P&quot;))
			Sleep, 10
	While (GetKeyState(&quot;Alt&quot;, &quot;P&quot;))
		Sleep, 10
	;}
	savedClipboard := ClipboardAll	; Backup data from clipboard.
	Clipboard := &quot;&quot;
	While !Clipboard	; Try to copy selected (it may fail, and then we have to retry).
	{
		Send, {Ctrl Down}c{Ctrl Up}
		Sleep, 25
	}
	textToSave := Clipboard
	Clipboard := savedClipboard
	If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
	{
		InputBox, filename, Enter the name for the script&#039;s file:,,, 300, 100
		If ErrorLevel	; Flush the variable&#039;s contents in case user canceled or closed the input box.
			filename := &quot;&quot;
	}
	saveTofile := (saveToFolder ? saveToFolder : A_ScriptDir) &quot;\&quot; (filename ? filename : A_Now) &quot;.ahk&quot;
	FileAppend, %textToSave%, %saveTofile%, UTF-8	 ; Save selected into a file next to this script.
	Run, % (editor ? StrReplace(editor, &quot;&quot;&quot;%1&quot;&quot;&quot;, &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) : notepad.exe  &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) 
	textToSave := filename := savedClipboard := saveTofile := &quot;&quot;	; Restore clipboard from backup and clean temporary variables.
Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Krot66)]]></author>
			<pubDate>Wed, 22 Mar 2017 12:47:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113913#p113913</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Сохранение и открытие скрипта в редакторе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=112792#p112792</link>
			<description><![CDATA[<p>К сожалению, автор сценария не отдал отклика, поэтому, спрошу здесь. В сценарии <a href="https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/QuickSaveThisScript/QuickSaveThisScript.ahk">QuickSaveThisScript.ahk</a> подразумевается возможность ввода названия для сохраняемого файла, но если ввести название из нескольких слов, то сохраняется и открывается файл некорректно, а именно, каждое слово в новой вкладке редактора SciTE4AHK. Помогите с решением данной проблемы, пожалуйста. Спасибо! </p><div class="codebox"><pre><code>/* QuickSaveThisScript.ahk
Version: 0.1
Last time modified: 2015.09.14 20:42

Description: a script to quickly save selected text to an *.ahk file and open it in the editor.

Script author: Drugoy a.k.a. Drugmix
Contacts: idrugoy@gmail.com, drug0y@ya.ru
https://github.com/Drugoy/Autohotkey-scripts-.ahk/tree/master/QuickSaveThisScript/QuickSaveThisScript.ahk
*/
SendMode, Input  ; Recommended for new scripts due to its superior speed and reliability.
#SingleInstance, Force
SetKeyDelay, 50

;{ Settings
saveToFolder := &quot;&quot;	; Where to save scripts. If blank - the scripts will get saved next to this script.
;}

RegRead, editor, HKCR, AutoHotkeyScript\Shell\Edit\Command	; Get user&#039;s editor assigned for AutoHotkey scripts.
editor := StrReplace(editor, &quot;%SystemDrive%&quot;, SystemDrive)
Return

^!vk43 Up::	; &quot;Ctrl+Alt+c&quot;	&lt; this will also open a prompt for file name.
!vk43 Up::	; &quot;Alt+c&quot;.
	;{ Make sure all the hotkey&#039;s keys got unpressed.
	If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
		While (GetKeyState(&quot;Ctrl&quot;, &quot;P&quot;))
			Sleep, 10
	While (GetKeyState(&quot;Alt&quot;, &quot;P&quot;))
		Sleep, 10
	;}
	savedClipboard := ClipboardAll	; Backup data from clipboard.
	Clipboard := &quot;&quot;
	While !Clipboard	; Try to copy selected (it may fail, and then we have to retry).
	{
		Send, {Ctrl Down}c{Ctrl Up}
		Sleep, 25
	}
	textToSave := Clipboard
	Clipboard := savedClipboard
	If (A_ThisHotkey = &quot;^!vk43 Up&quot;)
	{
		InputBox, filename, Enter the name for the script&#039;s file:,,, 300, 100
		If ErrorLevel	; Flush the variable&#039;s contents in case user canceled or closed the input box.
			filename := &quot;&quot;
	}
	saveTofile := (saveToFolder ? saveToFolder : A_ScriptDir) &quot;\&quot; (filename ? filename : A_Now) &quot;.ahk&quot;
	FileAppend, %textToSave%, %saveTofile%, UTF-8	 ; Save selected into a file next to this script.
	Run, % (editor ? StrReplace(editor, &quot;%1&quot;, &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) : notepad.exe  &quot;&quot;&quot;&quot; saveTofile &quot;&quot;&quot;&quot;) 
	textToSave := filename := savedClipboard := saveTofile := &quot;&quot;	; Restore clipboard from backup and clean temporary variables.
Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Sat, 18 Feb 2017 16:11:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=112792#p112792</guid>
		</item>
	</channel>
</rss>
