Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№1360109-08-2019 18:43:57

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 68.0

Re: Custom Buttons

Andrey_Krropotkin, спасибо!

Отсутствует

 

№1360209-08-2019 19:47:57

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 52.0

Re: Custom Buttons

solombala пишет

Типа, if -  первый код ОК! , тогда и этот второй проходит

Что-то мне эта идея не нравится. А если во вкладках
какое-нибудь добро с beforeunload и передумаешь.
Или если руками всё закрыто, то не надо что ли.

Вместо простого и безопасного скрытия неугодных элементов,
ты меня склоняешь «Сессию стереть» при выходе.
Нет, ну могу попробовать сочинить какую-нибудь стиралку, но не советую.

скрытый текст

Выделить код

Код:

((topic, id) => {
    var obs, getObserver = () => {
        for(var o of Services.obs.enumerateObservers(topic)) {
            var res = o.wrappedJSObject;
            if (res && id in res) return res;
        }
    }
    addDestructor(reason => {
        if (reason[5] != "e") return;
        var obs = getObserver();
        obs && obs.destroy();
    });
    (obs = getObserver()) || Services.obs.addObserver(obs = {
        [id]: true, __proto__: null, destroyed: false,
        destroy() {
            Services.obs.removeObserver(this, topic);
            this.destroyed = true;
        },
        get wins() {
            return Array.from(Services.wm.getEnumerator("navigator:browser"))
                .filter(win => win.toolbar.visible);
        },
        observe(cancelQuit, t, data) {
            data != "restart" && !cancelQuit.data && this.onQuit(true);
        },
        handleEvent() {
            this.destroyed || this.onQuit();
        },
        onQuit(fromObs) {
            var {wins} = this, multi = wins.length > 1;

            if (multi) return fromObs && this.destroy();
            this.destroy();

            var {tabs} = wins[0].gBrowser;
            if (tabs.length > 1 ) return;

            var es = JSON.parse(SessionStore.getTabState(tabs[0])).entries;
            es.length == 1 && wins[0].isBlankPageURL(es[0].url) && this.erase();
        },
        erase() {
            Services.obs.notifyObservers(null, "browser:purge-session-history");
            Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {})
                .SessionFileInternal.write = () => {};
        }
    }, topic, false);
    addEventListener("DOMWindowClose", obs);
})("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);

Отсутствует

 

№1360309-08-2019 20:57:08

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

Dumby
Не слабо.... Пока все как и хотелось. Не постоje речи, т.е нема слов...  Уживо хвала!

Отсутствует

 

№1360410-08-2019 21:46:07

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 40.0

Re: Custom Buttons

Приветствую!
Образовался вопрос.Есть ли возможность при помощи CustomButtons кода запретить(как это сказать!?:usch:) открепление вкладок
от основного окна.

Попробую пояснить.
Когда у тебя открыто множество вкладок и ты прыгаешь по ним щёлкая мышкой с удивлением замечаешь,что образовались новые окна.
Это происходит потому что во время щелчка мыши иногда бывают микро движения с зажатой левой кпокой.
А новому FireFox достаточно несколько пикселей чтобы сработало событие открепления.В FireFox53 например такого не было.

Заранее спасибо!

Отсутствует

 

№1360510-08-2019 23:24:20

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 52.0

Re: Custom Buttons

questman
Может что-нибудь простенькое подойдёт

скрытый текст

Выделить код

Код:

((obj, key) => {
    var meth = obj[key], func = meth.bind(obj);
    obj[key] = (...args) => new Error().stack.includes("dragend") ? null : func(...args);
    addDestructor(() => obj[key] = meth);
})(gBrowser, "replaceTabsWithWindow");

Отсутствует

 

№1360611-08-2019 00:29:14

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 40.0

Re: Custom Buttons

Dumby пишет

questman
Может что-нибудь простенькое подойдёт

скрытый текст

Выделить код

Код:

((obj, key) => {
    var meth = obj[key], func = meth.bind(obj);
    obj[key] = (...args) => new Error().stack.includes("dragend") ? null : func(...args);
    addDestructor(() => obj[key] = meth);
})(gBrowser, "replaceTabsWithWindow");

Это просто шикарно!Всё работает прекрасно.

Спасибо!

Кстати благодаря этому обнаружил для себя новую функцию связанную со вкладками.
Если вкладка одна, то можно дёргая её мышкой позиционировать окно браузера по левую
или по правую сторону.Вот так прикол, только что узнал!:mad:

Отредактировано questman (11-08-2019 00:38:25)

Отсутствует

 

№1360712-08-2019 10:29:48

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

Dumby
Вопрос...

скрытый текст
Можно ли сделать полный портабл, если в кнопках используются  коды , ведущие к EXE, типа nircmd.exe и memreduct.exe  . Они в своих папках , если папки в профиль
переместить, они все-равно будут к диску привязаны? ...Батники и VBS , к примеру, так они в профиле и с ними нет проблем , а с этими прогами - есть...
Короче, батники в этих папках (nircmd и memreduct) сразу глючат без полного пути...Приходится ставить фокс только на определенное место, меня это и не парит, но есть деятели ...типа,  "не портабл полный" и это ни есть гуд и т.д. Да, батники только в папе NIR , из memreduct удалось убрать, там только exe, все-равно лажа...

Отредактировано solombala (12-08-2019 10:35:26)

Отсутствует

 

№1360812-08-2019 12:41:34

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 52.0

Re: Custom Buttons

solombala
Вот вроде подробнее чем обычно расписано, но всё равно не улавливаю.
Какая-то несвязанная последовательность в вопросе.

Скажем так: распаковал Iceweasel_68_x32.rar в субпапку на диске Цэ,
жму кнопку — нормально всё алертится.

скрытый текст

Выделить код

Код:

var nir = Services.dirsvc.get("GreD", Ci.nsIFile);
nir.append("nir");

alert(
    [...nir.directoryEntries].map(file => file.path).join("\n")
);

Отсутствует

 

№1360912-08-2019 13:20:07

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

Dumby
Если это не использовать , то и проблем нет. Этот код в кн. "Очистка памяти" и как ?  Как без привязки к диску?

скрытый текст
var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath("D:\\iceweasel\\app\\nir\\d.vbs");
         file.launch();
         file.initWithPath("D:\\iceweasel\\app\\nir\\m.vbs");
         file.launch();

Там папка NIR участвует и не только...Какая , к черту, портатабельность? Никакая...Плюс, в самих vbs дергается  memreduct.exe , она тоже в папке и к профилю не привязана... Короче, сижу на ж@пе ровно и не дергаюсь..

Отредактировано solombala (12-08-2019 13:25:52)

Отсутствует

 

№1361012-08-2019 20:17:51

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 60.0

Re: Custom Buttons

У тебя берется путь к профилю и....
var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
.... никак не используется.
file.initWithPath("D:\\iceweasel\\app\\nir\\d.vbs");

Выделить код

Код:

let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);  // нашел путь к профилю
    prof.initWithPath("prof.path + "\\nir\\d.vbs");  // в профиле лежит папка nir где лежить нужный файлег
    prof.launch();

Там папка NIR участвует и не только...Какая , к черту, портатабельность? Никакая...Плюс, в самих vbs дергается  memreduct.exe , она тоже в папке и к профилю не привязана... Короче, сижу на ж@пе ровно и не дергаюсь..

Зачем дважды подряд вызывать разные скрипты, если логично записать вызов второго  скрипта в конец первого.
Все переменные можно в самом скрипте находить и присвоить. яхз как оно там в VBS, но в cmd\bat определить где лежить выполняемый скрипт
можно через  %~dp0 .
Ну а, у VBS возможностей куда больше чем в cmd/bat и есть не один способ узнать, откуда запущен скрипт.

Отредактировано mokujin (12-08-2019 20:22:54)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1361112-08-2019 20:37:40

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

mokujin
Хороший ход, а как с этим быть?
d.bat :

скрытый текст
nircmd exec hide "D:\iceweasel\app\memreduct\memreduct.exe"
nircmd.exe  wait 600
nircmd.exe sendkeypress  Insert

И этим d.vbs
скрытый текст
Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("D:\iceweasel\app\nir\d.bat", 0, False)

Опять привязка к диску ....?

Отсутствует

 

№1361212-08-2019 21:50:37

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 60.0

Re: Custom Buttons

у тебя какая-то очень-очень дураццкая скриптовая мешанина; запускается vbs, который запускает bat в котором выполняется nircmd.exe - где опять вызывается vbs в котором вызывается bat  :cry:  что это?? зачем!?

Напиши нормальный батнег с нужными командами для memreduct.exe, nircmd.exe... запихни его в кнопку в Help и запускай его из Code

Выделить код

Код:

// Записать батнег из вкладки Справка в файл и запустить
   var prof = Services.dirsvc.get('ProfD', Ci.nsIFile);
       prof.append("memreduct.cmd");
           custombuttonsUtils.writeFile( prof.path, convertFromUnicode("866", self.Help) );
       prof.launch();

пример наглядный как это может быть, посмотри здесь [CB]Архив профиля (backup)
В твоем случае как-то так, часть батнега:

скрытый текст

Выделить код

Код:

@echo off
rem скрипт лежит в профиле. Папка приложений, например \app\ лежит ниже
chcp 866
cd /d %~dp0
rem folder в профиле где лежат другие проги. например \app\
rem Путь откуда можно начать танцевать со всеми другими путями
rem nircmdc.exe лежит в корне этой папки. другие вложены в свои под-папки с именами
set app_iw=%~dp0app

pushd "%app_iw%"
nircmd exec hide "%app_iw%\memreduct\memreduct.exe"
nircmd.exe  wait 600
nircmd.exe sendkeypress  Insert
pause 
exit


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1361312-08-2019 22:00:33

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

mokujin
Спасибо, но это не для меня...Ни фига не въезжаю. С эти все понятно

скрытый текст
let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);  // нашел путь к профилю
    prof.initWithPath("prof.path + "\\nir\\d.vbs");  // в профиле лежит папка nir где лежить нужный файлег
    prof.launch();

Дальше, мозг взрывается...Работает на диске и черт с ним...

Отсутствует

 

№1361412-08-2019 22:55:21

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 60.0

Re: Custom Buttons

solombala
глянул что это за прога... в общем вот рабочий батнег (upd. чуть поправил батнег на случай уже запущенной проги.)

скрытый текст

Выделить код

Код:

@echo off
chcp 866
cd /d %~dp0
tasklist | find /i "memreduct.exe" 1>nul
goto :%errorlevel%
exit

:0
nircmdc.exe sendkeypress Ctrl+F1
exit


:1
if defined "ProgramFiles(x86)" (
  set memRPath=%~dp0memreduct\64\memreduct.exe
      ) Else (
  set memRPath=%~dp0memreduct\32\memreduct.exe
 )

nircmdc.exe exec hide "%memRPath%"
nircmdc.exe wait 1000
nircmdc.exe sendkeypress Ctrl+F1
exit


Вот картинко, где и как лежат файлы
226dbf1299189954.jpg
Запускай батнег этой кнопкой:
скрытый текст

Выделить код

Код:

let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);  // нашел путь к профилю
    prof.initWithPath("prof.path + "\\app\\memreduct.cmd");  // в профиле лежит папка app где лежит nirCmdc.exe и memreduct.cmd
    prof.launch();

Отредактировано mokujin (12-08-2019 23:14:39)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1361512-08-2019 22:59:41

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 52.0

Re: Custom Buttons

solombala пишет

Этот код в кн. "Очистка памяти" и как ?  Как без привязки к диску?

Ладно, порылся в сборке немного. Расскажу как наблюдалось.

скрытый текст
Во-первых, пришлось убрать lockPref("browser.launcherProcess.enabled", false);
и выставить false в about:config вручную, иначе — deelevate и trayupdate.exe не работает.
Но nircmd.exe killprocess всё равно не работает, воспользовался taskkill.exe

Во-вторых, пришлось заменить memreduct.exe, этот был недоволен

Mem Reduct пишет

Warning!

You are attempting to run 32-bit version of Mem Reduct on 64-bit Windows.
Please run the 64-bit version of Mem Reduct instead.

А так, вроде, кое-как работает

Выделить код

Код:

this.onclick = async e => {
    if (e.button) return e.button == 1 || e.ctrlKey || event.shiftKey || Services.prefs.setBoolPref(
        "browser.zoom.full", !Services.prefs.getBoolPref("browser.zoom.full")
    );
    var wait = ms => new Promise(resolve => setTimeout(resolve, ms));

    var launch = (file, hidden, ...args) => {
        var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
        process.init(file);
        if (hidden) process.startHidden = true;
        process.runw(false, args, args.length);
    }
    var sys = Services.dirsvc.get("SysD", Ci.nsIFile);
    var fox = Services.dirsvc.get("GreD", Ci.nsIFile);

    var getFile = (...args) => {
        var file = args.shift().clone();
        args.forEach(file.append);
        return file;
    }
    var mem  = getFile(fox, "memreduct", "memreduct.exe");
    var nir  = getFile(fox, "nir", "nircmd.exe");
    var tray = getFile(fox, "nir", "trayupdate.exe");
    var tskk = getFile(sys, "taskkill.exe");

    mem.launch();
    await wait(1000);

    launch(nir, false, "sendkeypress", "insert");
    await wait(2000);

    launch(tskk, true, "/F", "/IM", "memreduct.exe");
    await wait(2000);

    tray.launch();
}

Отсутствует

 

№1361612-08-2019 23:20:55

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

Нет. я не понимаю все-равно. Это понятно , папки Nir и memreduct кидаю в профиль и пробую это

скрытый текст
let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);  // нашел путь к профилю
    prof.initWithPath("prof.path + "\\nir\\d.vbs");  // в профиле лежит папка nir где лежить нужный файлег
    prof.launch();

Дальше надо уработать два батника , да или нет , все...
скрытый текст
nircmd exec hide "D:\iceweasel\app\memreduct\memreduct.exe"
nircmd.exe  wait 600
nircmd.exe sendkeypress  Insert

И
скрытый текст
nircmd.exe  wait 2000
nircmd.exe  killprocess  memreduct.exe
start "" "D:\iceweasel\app\nir\trayupdate.exe"

Ну, не сборку же выкладывать, оно вам надо? Там этих батников немерено ....
Впрочем,  FF66x64 https://www.upload.ee/files/10347653/core.rar.html

Отредактировано solombala (13-08-2019 00:06:11)

Отсутствует

 

№1361713-08-2019 00:45:48

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 60.0

Re: Custom Buttons

solombala

скрытый текст
если это ты делаешь, то должен сказать что сама концепция у тебя неверная. Всё разбросано хз где.
Вот у мя, тоже есть своя сборка PaleMoon. Все работает с флешки на любой ОС. Можно скопировать куда угодно, тоже будет работать.
А дело в том, что всё что может понадобиться, лежит в %профиле%\SOFT_PM\ Я давал тебе фотку со списком из этой папки.

Все косольные качалки - лежат в одной папке wget. там скрипты для них; curl, wget, youtube-dl, mpv.exe, sort.exe и другие... Поэтому, не проблем с путями:
запустив скрипт из CB(получением пути к профилю, как выше показал) дальше орудуют скрипты, тоже берущие путь относительно себя( %~dp0 )
Сделай в профиле папку основную. В неё уже кидай все другие программы\папки. И тебе будет всегда известно где ты и куда надо переходить.

Любая программа, любой скрипт у мя запускается с одного и того же:

Выделить код

Код:

let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);

нашел путь к профилю , а в профиле лежит папка SOFT_PM где все остальное лежит. И добавляя нужную часть пути, запускаешь что нужно.
А у тебя, разброс\шатание и даже за пределами рабочей папки бравзера, лежит yotube-dl   :rolleyes:

Вот пример запуска из конт.меню ссылки(кнопка-меню) PotPlayer

Выделить код

Код:

// ----------------------- =  PotPlayer  = -----------------------------------------
 this.potplayOpen = function potplayOpen(){
       let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);
       let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
     prof.initWithPath(prof.path + "\\SOFT_PM\\Potplayer\\PotPlayerMini.exe");
     process.init(prof);
     process.run(false, [gContextMenu.linkURL], 1);
  };

// и тут же , такой же запуск скрипта wget

Выделить код

Код:

// ----------------------- =  WGET  = -------------------------------------
 this.wgeturl = function wgeturl(){
      let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);
      let process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
       let url = ('"' + gContextMenu.linkURL + '"');
       let ref = ('"' + getCurUrl() + '"');
       let title = getCurTitle();
      prof.initWithPath(prof.path + "\\SOFT_PM\\wget\\wgetfile.cmd");
      process.init(prof);
      process.run(false, [url, title, ref], 3);
      setTimeout(()=> gBrowser.focus(), 1500);
   };

всегда знаешь где ты находишься, ибо есть точка отсчёта %профиль%\SOFT_PM\. Сделай и у себя так, будет и проще и понятней.


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№1361813-08-2019 02:52:49

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

Здравствуйте, как можно сделать под портабл путь? запутался в filе... спасибо заранее.

Открыть в другом браузере

Выделить код

Код:

var path="C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe";
var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
var process=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
var uri=gBrowser.currentURI.spec;
var uri=/.рф/.test(uri) ? Services.io.newURI(uri,null,null).asciiSpec:uri;  
file.initWithPath(path);
!file.exists()&&custombuttons.alertSlide(self.label,"The file doesn't exist");
process.init(file);
process.run(false,[uri],1);


mokujin интересный синтаксис) нестандартный, зато более понятный.
- - - - - - - - - - - - - -
Спасибо за пример сверху, но посидел норм так...метод проб)
let - это для линукса, как я понял.
upd

Выделить код

Код:

function openBrave(){var prof=Services.dirsvc.get('ProfD',Ci.nsIFile);
var process=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
prof.initWithPath(prof.path+"\\..\\..\\gBrave\\brave-portable.exe");
!prof.exists()&&custombuttons.alertSlide(self.label,"The file doesn't exist");
var uri=gBrowser.currentURI.spec;
var uri=/.рф/.test(uri)?Services.io.newURI(uri,null,null).asciiSpec:uri;
process.init(prof);process.run(false,[uri],1);};
Выделить код

Код:

var uri=gBrowser.currentURI.spec;
var uri=/.рф/.test(uri)?Services.io.newURI(uri,null,null).asciiSpec:uri;
process.run(false,[uri],1);};
вопрос тут, он берет с 2 или с одного параметра? может одна из них лишняя?
//=======================================
var file=Services.dirsvc.get("ProfD",Ci.nsIFile);file.append("SQL.vbs");
в этом коде можно также с путями играться? или тупо профиль?

Отредактировано func4ptch4 (13-08-2019 05:32:24)

Отсутствует

 

№1361913-08-2019 05:21:15

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 68.0

Re: Custom Buttons

Можете проверить, правильно все? код сам работает через HotKey.
Меня смущает две строки снизу, один с кода сверху, другой со старого кода.

скрытый текст

Выделить код

Код:

var prof=Services.dirsvc.get('ProfD',Ci.nsIFile);
var process=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
prof.initWithPath(prof.path+"\\%Soft\\_QTranslate 6.7.2.exe");prof.launch();
//process.init(prof);process.run(false,[uri],1);};
////var link=gClipboard.read();var args=[link];file.launch();


И вопрос за что отвечает var process? если его убрать с кода тоже работает.
Зачем такой большой код, если и с 2строк все пашет? понимаю что зависит от предназначения кода, но в общем.

Отредактировано func4ptch4 (13-08-2019 05:27:35)

Отсутствует

 

№1362013-08-2019 10:25:36

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 68.0

Re: Custom Buttons

Так, а как это скрытно запустить? Vbs = требует полный путь или этот батник сразу переделать в Vbs ?

скрытый текст
nircmd exec hide "..\%profile%\memreduct\memreduct.exe"
nircmd.exe  wait 700
nircmd.exe sendkeypress  Insert

Или из СВ скрыть баты ?
скрытый текст
var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         file.initWithPath("D:\\iceweasel\\app\\nir\\d.bat");
         file.launch();
         file.initWithPath("D:\\iceweasel\\app\\nir\\m.bat");
         file.launch();

а это не подходит ,падает кн. память
скрытый текст
let prof = Services.dirsvc.get('ProfD', Ci.nsIFile);  // нашел путь к профилю
    prof.initWithPath("prof.path + "\\nir\\d.vbs");  // в профиле лежит папка nir где лежить нужный файлег
    prof.launch();

Кто-нибудь скажет как скрыть батник без vbs ? или с кодом того же CB или с Nircmd.exe . Наконец с VBS ? так он полный путь требует...

Отредактировано solombala (13-08-2019 13:33:53)

Отсутствует

 

№1362113-08-2019 14:05:08

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1160
UA: Firefox 68.0

Re: Custom Buttons

solombala
Так вроде при запуске nircmd exec hide "батник" ничего не видно.

Отсутствует

 

№1362213-08-2019 14:44:22

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 66.0

Re: Custom Buttons

xrun1
Все равно не то....мелькает. и с этим тоже nircmd.exe win hide title "%ComSpec%"
Да хотя бы свернуть окно консоли , мелькает зараза....Все, сборка полностью портабл...
Все . Вопросов нет. Хочешь сделать хорошо - сделай сам!

Отредактировано solombala (13-08-2019 19:20:32)

Отсутствует

 

№1362313-08-2019 18:58:59

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 220
UA: Firefox 66.0

Re: Custom Buttons

Не понял, так как запустить к примеру это без появления окна? без .vbs

скрытый текст

Выделить код

Код:

var closer={observe:function(subject,topic,data){if(data=="shutdown"){
var prof=Services.dirsvc.get('ProfD',Ci.nsIFile);prof.append("SQL.bat");prof.launch();}}};
Services.obs.addObserver(closer,"quit-application",false);

да и кажется код кривоват, хотя я походу в игноре лад..

Отредактировано func4ptch4 (13-08-2019 19:00:21)

Отсутствует

 

№1362413-08-2019 19:15:19

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 66.0

Re: Custom Buttons

func4ptch4

скрытый текст
var closer = {
    observe: function(subject, topic, data) {
       if ( data == "shutdown" ){
            var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         
file.initWithPath(file.path + "\\sqlite.bat");
file.launch();

}
}
};
Services.obs.addObserver(closer, "quit-application", false);


Так понял,  это  при выходе  профиль  обжать?  Заделаешь VBS  и портабла не будет
А все-таки собрал портабл пока на 66 и без vbs - и консолей не видно...!

Отредактировано solombala (13-08-2019 19:19:17)

Отсутствует

 

№1362513-08-2019 22:50:23

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 494
UA: Firefox 60.0

Re: Custom Buttons

solombala вот тебе готовый комплект ;-)  Запускать надо memreduct-start.vbs
MemReduct pack

Теперь понял, зачем там vbs. оказуеццо, это такой простой способ скрыть консоль без сторонних утилит, скрыть окно.
вот это:

Выделить код

Код:

Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("memreduct-action.cmd", 0, False)

заводит пакетный файл без окна. Именно вторая строчка это самое и делает. Т.е. не просто WshShell.Run(что то там...) а с этим вот RetCode и параметрами... возврата, чтоле, хз.
В любом случае, открытие(для меня) поелзное, не знал.

func4ptch4 пишет

let - это для линукса, как я понял.

нет. let это та же var , только с защитой(или наоборот -  с проблемами), работает только внутри { .....  }  здесь, в таком мелком коде, это не важно что исп-ть.

зы. solombala почитай про относительные и абсолютные путя\и , вопросы отпадут 1 (http)  и 2(Windows)

Добавлено 13-08-2019 23:00:49

func4ptch4 пишет

var file=Services.dirsvc.get("ProfD",Ci.nsIFile);
file.append("SQL.vbs");
в этом коде можно также с путями играться? или тупо профиль?

Это другой способ составлять путь. Просто более ранний и объемный. За раз , можно добавить только один уровень  append == "добавить".  ЕЯПП то используется обычно для проверки есть ли файл №3  или для создания файла по известному пути с нужным именем №9
Для запуска программ, можно... но проще\удобней делать через prof.path +"\\часть пути к программе\\123.exe

Отредактировано mokujin (13-08-2019 23:00:49)


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]