AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Scripts discussion (1)
Goto page Previous  1, 2, 3 ... 46, 47, 48 ... 95, 96, 97  Next
 
Post new topic   This topic is locked: you cannot edit posts or make replies.    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Tue Jan 04, 2011 10:13 pm    Post subject: Reply with quote

Последовательность "AkelPadScript:" + hInstanceDLL + ":" + WScript.ScriptName не обязательно уникальна, ибо все составные не уникальны глобально.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Tue Jan 04, 2011 10:46 pm    Post subject: Reply with quote

И сколько же потребуется запустить AkelPad'ов, чтобы hInstanceDLL совпали? Smile Вряд ли кто-то еще решит обозваться «AkelPadScript».
По крайней мере, ничего страшного при совпадении не произойдет.

Или нужно как-то там перебирать окна, созданные текущим процессом, наверное.
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Wed Jan 05, 2011 2:57 pm    Post subject: Reply with quote

Infocatcher wrote:
На первый взгляд, проще всего вот так:
Все равно это лучше предыдущего варианта. Обновлено:
goToLongestLine.js
AESCrypt.js *
converter.js
getHash.js
LinesFilter_mod2.js

* Вообще говоря, сейчас там всегда модальный диалог, но в коде предусмотрено открытие немодального диалога, так что пусть будет.


[Upd]
И, резюмируя предыдущее...
Будет ли что-нибудь из LinesFilter_mod.js/LinesFilter_mod2.js (см. http://akelpad.sourceforge.net/forum/viewtopic.php?p=10324#10324 + немного далее) и RenameFile_mod.js (http://akelpad.sourceforge.net/forum/viewtopic.php?p=10561#10561) включено в скрипты, поставляемые вместе с плагином?
«Безопасно» ли хранить скрипты в UTF-8/UTF-16 с BOM (см. http://akelpad.sourceforge.net/forum/viewtopic.php?p=10161#10161 и далее)? Точнее, кто при запуске скрипта читает файл, и где это будет работать.
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5533

PostPosted: Wed Jan 05, 2011 3:26 pm    Post subject: Reply with quote

Добавлено: поддержка x64.
Добавлено: возможность использовать bCatchEsc=true и запускать скрипт несколько раз.

Added: support for x64.
Added: ability to use bCatchEsc = true and run the script several times.

ChmKeyword.js v1.3
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5533

PostPosted: Wed Jan 05, 2011 3:28 pm    Post subject: Reply with quote

Infocatcher wrote:
«Безопасно» ли хранить скрипты в UTF-8/UTF-16 с BOM...
Да, с тех пор как AkelPad сам занимается обработкой скрипта (без WScript.exe).
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Wed Jan 05, 2011 5:18 pm    Post subject: Reply with quote

Instructor
И на кой тогда там все еще повсюду \u041D и прочие радости? Smile
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Wed Jan 05, 2011 7:15 pm    Post subject: Reply with quote

Instructor wrote:
ChmKeyword.js v1.3
Там в 108-й строке
Code:
      AkelPad.MemCopy(lpStructure + (_X64?8:8), lpKeywordBuffer, 2 /*DT_QWORD*/);  //HH_AKLINK.pszKeywords

Так и задумано?
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Wed Jan 05, 2011 7:20 pm    Post subject: Reply with quote

Infocatcher, да. Просто писалось по шаблону.
Code:
typedef struct tagHH_AKLINK
{
     int      cbStruct;
     BOOL     fReserved;
     LPCTSTR  pszKeywords;
     LPCTSTR  pszUrl;
     LPCTSTR  pszMsgText;
     LPCTSTR  pszMsgTitle;
     LPCTSTR  pszWindow;
     BOOL     fIndexOnFail;
} HH_AKLINK;
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5533

PostPosted: Thu Jan 06, 2011 5:51 am    Post subject: Reply with quote

FeyFre wrote:
Последовательность "AkelPadScript:" + hInstanceDLL + ":" + WScript.ScriptName не обязательно уникальна, ибо все составные не уникальны глобально.
hInstanceDLL может совпасть с hInstanceDLL другого процесса?

Infocatcher wrote:
И на кой тогда там все еще повсюду \u041D и прочие радости? Smile
Встроенные уже написаны Smile, а скрипты, что на форуме, без проблем могут быть скопированы и сохранены в Ansi кодировке, например, человеком из КНР.

Infocatcher wrote:
Будет ли что-нибудь из ... включено в скрипты, поставляемые вместе с плагином?
Включил наработки из RenameFile_mod.js.
Back to top
View user's profile Send private message Send e-mail
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Thu Jan 06, 2011 12:45 pm    Post subject: Reply with quote

Quote:
hInstanceDLL может совпасть с hInstanceDLL другого процесса?
Да.
HINSTANCE он же HMODULE он же указатель на место куда загружен образ:
1. Вспомните WIN16, int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow);
hPrevInstance - до сих пор описывается как дескриптор предыдущего загруженного экземпляра приложения(хоть и всегда ноль), а в те времена в MSDN прямо писалось что аргументы-HINSTANCE - адреса.
2. Так показывают различные вспомогательные утилиты, например VMMAP Руссиновича(посмотрите в отладке какой нибудь модуль, а потом в этом процессе с помощью VMMAP найдите что лежит по адресу - значению модуля).
3. Так пишет Рихтер, ну например в "Создание эффективных WIN32-приложений с учётом специфики 64-разрядной версии Windows" (ссылку я тут где-то писал).
4. Ну в крайнем случае загляните в в память самостоятельно (LPBYTE)hInstanceDLL - я там вижу старое доброе MZђ

Раз уж выяснили, что HINSTANCE - адрес в памяти, то что мешает загружать модуль в одно и то же место во всех процессах? Только занятость этого места, которая не гарантированна. Так что hInstanceDLL может и совпасть.
А вот если туда привлечь GetCurrentProccessId() то уникальность в разных экземплярах приложения гарантированна.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5533

PostPosted: Thu Jan 06, 2011 1:10 pm    Post subject: Reply with quote

FeyFre
Quote:
Раз уж выяснили, что HINSTANCE - адрес в памяти, то что мешает загружать модуль в одно и то же место во всех процессах?
Видимо не зря было придумано разделять память между процессами Smile
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Thu Jan 06, 2011 3:33 pm    Post subject: Reply with quote

FeyFre wrote:
Так что hInstanceDLL может и совпасть.
А вот если туда привлечь GetCurrentProccessId() то уникальность в разных экземплярах приложения гарантированна.
Заменить-то не проблема. Или даже добавить. Только я пока не понял, надо ли. Very Happy

Instructor wrote:
Infocatcher wrote:
Будет ли что-нибудь из ... включено в скрипты, поставляемые вместе с плагином?
Включил наработки из RenameFile_mod.js.
О, правильное восстановление выделения. Будем знать. Smile
А модифицированный LinesFilter.js долго изучать, или там что-то не понравилось?

[Upd]
И в SearchReplace.js надо сделать перевод фокуса на уже открытое окно при повторном вызове.
Back to top
View user's profile Send private message Visit poster's website
Infocatcher



Joined: 06 Aug 2007
Posts: 1650

PostPosted: Fri Jan 07, 2011 2:33 am    Post subject: Reply with quote

Instructor wrote:
Включил наработки из RenameFile_mod.js.

Code:
        //Close editing file
        if (AkelPad.SendMessage(hMainWnd, 273 /*WM_COMMAND*/, 4324 /*IDM_WINDOW_FILECLOSE*/, 0))
        {
          ...
          //Open file
          AkelPad.OpenFile(pNewFileFullName, 0, AkelPad.GetEditCodePage(hWndEdit), AkelPad.GetEditBOM(hWndEdit));

Эксперимент подтверждает, что hWndEdit уже закроется, и будут использованы параметры только что открытого документа.
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5533

PostPosted: Fri Jan 07, 2011 6:00 am    Post subject: Reply with quote

Infocatcher wrote:
И в SearchReplace.js надо сделать перевод фокуса на уже открытое окно при повторном вызове.
Сделано.
Quote:
Эксперимент подтверждает...
Исправлено.
Back to top
View user's profile Send private message Send e-mail
cnnnc



Joined: 12 Jan 2008
Posts: 116
Location: Shantou, China

PostPosted: Fri Jan 07, 2011 6:37 am    Post subject: Reply with quote

2KDJ
FileInfo.js is very good. But when I change the pString into Chinese, the result of stats isn't align like before.
Because of Chinese Character is DoubleByteChar, it seem a Chinese-Char's width equal two latin's.
I suggest one more line of code for support that, like this:
Code:
function Pad(pString, nLen, pType, pChar)
{
  nLen = nLen - pString.replace(/[\u0000-\u00ff]/g,"").length;
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   This topic is locked: you cannot edit posts or make replies.    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 46, 47, 48 ... 95, 96, 97  Next
Page 47 of 97

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group