<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Вопросы по ListView]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16054&amp;type=atom" />
	<updated>2021-02-09T01:24:49Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16054</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146060#p146060" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>2) Добавить новое Gui с названием, вот и будет ещё одно без закрытия старого.</p></blockquote></div><p>Не получается<br /></p><div class="codebox"><pre><code>GuiContextMenu: ; Запускается в ответ на щелчок правой клавишей мыши или на нажатие клавиши Apps.
; Эта проверка производится по желанию и отображает меню
; только в результате щелчка в пределах элемента управления  ListView.
if A_GuiControl &lt;&gt; MyListView 

Gui Add, Button, x390 y705 w80 h23 gButtonClose, Закрыть

return

; Отображает меню согласно заданным координатам, A_GuiX и A_GuiY.
; Необходимость использования этих переменных объясняется тем,
; что меню появится в заданном месте даже при нажатии клавиши Apps:
Menu, MyContextMenu, Show, %A_GuiX%, %A_GuiY%
return
ButtonClose:
return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-09T01:24:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146060#p146060</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146039#p146039" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>1) Если есть задача скрыть пароль - так зачем его тогда отображать в списке?</p></blockquote></div><p>Чтобы видеть что оно вобще есть?<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>2) Добавить новое Gui с названием, вот и будет ещё одно без закрытия старого.</p></blockquote></div><p>попробуйю<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>3) Переменные нужно сначала заполнить данными, затем делать их сравнение.</p></blockquote></div><p>Нет, я сначала присваивал переменной некое значение при начале работы, а затем она менялась в процессе, но это сложно объяснить.<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>4) Шифровать файл думаю можно как угодно, главная задача сделать текст нечитабельным.</p></blockquote></div><p>Знать бы еще о методах шифрования<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>5) Ключ не должен храниться в самом файле, если потенциальному взломщику это будет известно - о безопасности можно забыть.</p></blockquote></div><p>Куда бы я его не поместил, потенциальный взломщик всё равно найдёт его если у него будет задача найти пароли, а если не будет он этого и не увидит.</p>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-08T00:28:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146039#p146039</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146034#p146034" />
			<content type="html"><![CDATA[<p>1) Если есть задача скрыть пароль - так зачем его тогда отображать в списке?<br />2) Добавить новое Gui с названием, вот и будет ещё одно без закрытия старого.<br />3) Переменные нужно сначала заполнить данными, затем делать их сравнение.<br />4) Шифровать файл думаю можно как угодно, главная задача сделать текст нечитабельным.<br />5) Ключ не должен храниться в самом файле, если потенциальному взломщику это будет известно - о безопасности можно забыть.</p><p>На форуме есть темы на каждый&nbsp; вопрос - поиск в помощь.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-07T16:53:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146034#p146034</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146016#p146016" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>сделать Gui окошко</p></blockquote></div><p>Само GUI есть, это просто дополнительная вкладка<br />Но я бы не против узнать как &quot;надокно&quot; создавать - над ним еще одно гуи без закрытия старого</p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Автоматический ввод не предусмотрен?</p></blockquote></div><p>Автоматический ввод предусмотрен только если стоит галочка, но сколько я не вводил зависимость от переменных от неё, она срабатывать не хочет.<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>но нужно и обезопасить саму базу данных. Например шифровать</p></blockquote></div><p>Я тоже об этом думал, и даже бы вторую колонку в самом листвью зашифровать для отображения чтобы при скринах или съёмке видео эта информация случано не попала</p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Например шифровать</p></blockquote></div><p>Сам ключ шифр можно хранить и в ini файле, т.к. он смежным файлом предусмотрен</p><p>Но также актуальным и остаётся вопрос: Как сделать доступной для редактирования вторую колонку из гуи?</p>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-07T11:48:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146016#p146016</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146008#p146008" />
			<content type="html"><![CDATA[<p>Я так понимаю задача сделать Gui окошко в котором будет выводится логины-пароли.<br />Далее сохранятся в один файл для удобства. Автоматический ввод не предусмотрен? Я например на F1 в разных окнах добавил авто-ввод логина-пароля.<br />Сама идея может и хороша, но нужно и обезопасить саму базу данных. Например шифровать, иначе любой доступ к этому файлу несёт потенциальную опасность для взлома.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-07T08:39:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146008#p146008</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145977#p145977" />
			<content type="html"><![CDATA[<p>Да, он не лучший вариант, потому что в нём нет прокрутки, ну и как заходить, придётся к каждой строке лепить отдельную кнопку</p>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-06T21:00:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145977#p145977</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145976#p145976" />
			<content type="html"><![CDATA[<p>Кодировку нужно менять. У меня по умолчанию скрипт создаёт нужную (Анси).</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-06T20:57:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145976#p145976</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145974#p145974" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Пример с использованием &#039;Edit&#039;. Не самый лучший вариант.</p></blockquote></div><p>Слушай а это лучший вариант чем у меня, <br />Только<br />̮䩭:Р<br />//Кракозябры<br />вот такие добавляет, не могу сообщение написать тут после них, кракозябры весь текст после себя &quot;съедают&quot;)</p>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-06T20:54:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145974#p145974</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145972#p145972" />
			<content type="html"><![CDATA[<p>Пример с использованием &#039;Edit&#039;. Не самый лучший вариант.</p><div class="codebox"><pre><code>#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
SetBatchLines -1

Name = Логин-Пароль
Settings = Passw.txt

Load:
Gui, Destroy
Gui Add, Text, x8 y8 w120 h23 +0x200, Логин:
Gui Add, Text, x136 y8 w120 h23 +0x200, Пароль:
I = 5	; Начальная позиция Y.
All =
Loop, Read, % Settings
{
 All++	; Кол-во полей.
 I += 24	; Смещение для позиции по вертикали.
 D := StrSplit(A_LoopReadLine, &quot;:&quot;)
 Gui Add, Edit, HwndhL%All% x8 y%I% w120 h21, % D[1]
 Gui Add, Edit, HwndhE%All% x136 y%I% w120 h21, % D[2]
}
Gui Add, Button, gSave x264 y8 w80 h23, Сохранить
Gui Add, Button, gAdd x264 y32 w80 h23, Добавить

Gui Show,, % Name
Return

GuiEscape:
GuiClose:
ExitApp


Save:
Text=
I=
Loop, % All
{
 I++
 ControlGetText, L, % &quot;Edit&quot; I, % Name
 ControlGetText, E, % &quot;Edit&quot; I+1, % Name
 I++
 Text .= L &quot;:&quot; E &quot;`n&quot;
}

File := FileOpen(Settings, &quot;w&quot;)		; Сохраняем в файл настроек.
File.Write(Text)
File.Close()
Return


Add:
GoSub, Save	; Сохранить текущий список.
FileAppend, % &quot;Логин:Пароль`n&quot; , % Settings
GoSub, Load	; Пересоздать окно.
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-06T20:48:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145972#p145972</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145966#p145966" />
			<content type="html"><![CDATA[<p>Криво написанный код - залог неверной работы скрипта.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-06T20:03:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145966#p145966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145962#p145962" />
			<content type="html"><![CDATA[<p>Пачиму эта кнопка не открывается более одного раза?</p><div class="codebox"><pre><code>AddLogin: ;gAddLogin
IfWinExist, Passw.txt
{
    WinActivate
}
else ;окно не существует
{
Run %A_ScriptDir%\Passw.txt,, UseErrorLevel

if ErrorLevel
	 Msgbox Невозможно открыть файл
     else
#IfWinActive Passw.txt
	 WinTitle = ahk_class  Notepad ahk_exe NOTEPAD.EXE
     WinWait Passw.txt
	 WinActivate Passw.txt
}
	;Passw.txt - развернуть, на передний план
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-06T19:45:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145962#p145962</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145958#p145958" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Вы пытаетесь программу для других создать? С вашим-то уровнем программирования?</p></blockquote></div><p>Я не исключаю что ей будут пользоваться другие, но и для себя пытаюсь сделать как удобнее, потому что это лишь часть её полезных функций, но не основная)</p><p>А пример на&nbsp; &#039;Edit&#039; есть?</p><p>Вобщем так: Если строка была выделена, а потом ListView теряет фокус и при нажатии на Button</p><div class="codebox"><pre><code>#SingleInstance force
Gui, Add, ListView, r10 w500 +Report +Grid vReplaceLV gLogin LV0x10 LV_DeleteCol(3) -Multi +Sort Count10, Login  | Password
Loop, Read, %A_ScriptDir%\Passw.txt
 LV_Add(&quot;&quot;, StrSplit(A_LoopReadLine, &quot;:&quot;)*)
LV_ModifyCol(1, 150)
LV_ModifyCol(2, 150)
Gui, Add, Button, x100 y205 w80 h23 gAdd, Add
Gui, Add, Button, x200 y205 w80 h23 gОк, Ок
Gui, Add, Button, x300 y205 w80 h23 gSave, Save
;LV_ModifyCol()
;LV_ModifyCol(2, &quot;Integer&quot;)
Gui, Show,
return

Add:
Return

Ок: ;gОк
{
IfWinExist, Блокнот
{
    WinActivate
}
else
{
MsgBox Запустите Блокнот
return
}
#IfWinActive Блокнот
WinTitle = ahk_class Notepad ahk_exe NOTEPAD.EXE
WinWait Passw.txt
    LV_GetText(Log, A_EventInfo, 1) ; Получаем текст строки из первого столбца.
	LV_GetText(Pass, A_EventInfo, 2)
	SendInput, %Log%
	SendInput, {Tab}
	SendInput, %Pass%
	SendInput, {Tab}
	SendInput, {Enter} ;Только вот на переменную enter почему-то не реагирует
	;goto, Lis
	;MsgBox %AutoIn%	
}
Return


Save:
ControlGet, Hwnd, Hwnd,, SysListView321, A	; Получаем индикатор ListView текущего окна.
ControlGet, ListText, List,,, ahk_id %hwnd%	; Весь видимый текст.
Text =

Loop, Parse, ListText, `n	; Парсим строки.
{
 StringReplace, T, A_LoopField, % A_Tab, : , All	; Заменяем делитель &#039;Tab&#039; на &#039;:&#039;.
 Text .= T &quot;`n&quot;
}

File := FileOpen(A_ScriptDir &quot;\Passw.txt&quot;, &quot;w&quot;)		; Сохраняем в файл настроек.
File.Write(Text)
File.Close()
Return


GuiEscape:
GuiClose:
ExitApp
Return</code></pre></div><p>Он возвращает названия столбцов, а не данные той строки. Как это обойти? Т.е. ПОЛУЧИТЬ ДАННЫЕ СТРОКИ НЕ В ФОКУСЕ?<br />Сохранять строки в отдельную переменную при выделении для отдельной кнопки?</p>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-06T18:53:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145958#p145958</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145957#p145957" />
			<content type="html"><![CDATA[<p>Мне лично ListView не особо нравится, если нужно заполнять поля я лучше буду использовать обычный &#039;Edit&#039;. С ним мороки меньше, легко получить / заменить данные. Но в текущем варианте ListView удобнее т.к. список может быть любой длины.</p><div class="quotebox"><blockquote><p>...развернуть на весь экран перед пользователями.</p></blockquote></div><p>Вы пытаетесь программу для других создать? С вашим-то уровнем программирования?</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-06T18:45:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145957#p145957</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145956#p145956" />
			<content type="html"><![CDATA[<p>Отлично! <br />А теперь как второй столбец то редактировать(Однократным щелчком или на кнопку разблокировать все поля для редактирования)? То как на евент выделенная строка, если она не в фокусе, даже на кнопку не реагирует, A_EventInfo содержит пустое значение. Он по прежнему нередактируем.</p><p>Если устанавливать на потерю фокуса ввода<br /></p><div class="codebox"><pre><code>if A_GuiEvent = f</code></pre></div><p>То тоже не помогает.</p><p>А то я ничего более умного не придумал, кроме как на запустить файл с паролями развернуть на весь экран перед пользователями.</p><p>т.е. должно быть что-то типа<br /></p><div class="codebox"><pre><code>if A_GuiEvent = e ;Закончено редактирование первого поля строки
;то открывается для редактирования вторая</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Lolykroly]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41424</uri>
			</author>
			<updated>2021-02-06T18:22:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145956#p145956</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Вопросы по ListView]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=145954#p145954" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#SingleInstance force
Gui, Add, ListView, r10 w500 +Report +Grid vReplaceLV gLogin LV0x10 LV_DeleteCol(3) -Multi +Sort Count10, Login  | Password
Loop, Read, %A_ScriptDir%\Passw.txt
 LV_Add(&quot;&quot;, StrSplit(A_LoopReadLine, &quot;:&quot;)*)
LV_ModifyCol(1, 150)
LV_ModifyCol(2, 150)
Gui, Add, Button, x100 y205 w80 h23 gAdd, Add
Gui, Add, Button, x200 y205 w80 h23 gSave, Save
;LV_ModifyCol()
;LV_ModifyCol(2, &quot;Integer&quot;)
Gui, Show,
return

Add:
Return

Login:
Return


Save:
ControlGet, Hwnd, Hwnd,, SysListView321, A	; Получаем индикатор ListView текущего окна.
ControlGet, ListText, List,,, ahk_id %hwnd%	; Весь видимый текст.
Text =

Loop, Parse, ListText, `n	; Парсим строки.
{
 StringReplace, T, A_LoopField, % A_Tab, : , All	; Заменяем делитель &#039;Tab&#039; на &#039;:&#039;.
 Text .= T &quot;`n&quot;
}

File := FileOpen(A_ScriptDir &quot;\Passw.txt&quot;, &quot;w&quot;)		; Сохраняем в файл настроек.
File.Write(Text)
File.Close()
Return


GuiEscape:
GuiClose:
ExitApp
Return
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-02-06T17:47:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=145954#p145954</id>
		</entry>
</feed>
