Вопросы по AHK-скриптингу

skezzy_

Новичок
5
2
Как сделать чтобы скрипт останавливался,а не закрывался к хуям
 
Как сделать чтобы скрипт останавливался,а не закрывался к хуям
AutoHotKey:
#SingleInstance, Force
#Persistent

#Include, %A_Desktop%\UDF.ahk

global поставить_на_паузу_а_не_закрыть_к_хуям := false

!1::
{
    addChatMessageEx(0xFFFFFF, "Скрипт " (!поставить_на_паузу_а_не_закрыть_к_хуям ? "на паузе а не закрыт к хуям" : "скрипт работает"))
    поставить_на_паузу_а_не_закрыть_к_хуям := !поставить_на_паузу_а_не_закрыть_к_хуям
}
return

!2::
{
    if (поставить_на_паузу_а_не_закрыть_к_хуям) {
        addChatMessageEx(0xFFFFFF, "Сейчас скрипт работает, под этой строкой пишешь свой код")
    } else {
        addChatMessageEx(0xFFFFFF, "Скрипт на паузе а не закрыт к хуям")
    }
}
return
 

Double Tap Inside

Известный
Проверенный
1,897
1,251
Вопрос конкретный: как определить серийник жесткого диска(физического диска) на котором установлена винда, при условии что винда может быть установлена на любом подключенном диске, например: Диск 0: Мои файлы, Диск 1: Windows, Диск 2: Мои файлы.

У меня есть цыкл, который все серийники в одну строку выдает, так вот повторяю, как найти именно серийник где стоит винда?
 

meowprd

Тот самый Котовский
Проверенный
1,280
711
Вопрос конкретный: как определить серийник жесткого диска(физического диска) на котором установлена винда, при условии что винда может быть установлена на любом подключенном диске, например: Диск 0: Мои файлы, Диск 1: Windows, Диск 2: Мои файлы.

У меня есть цыкл, который все серийники в одну строку выдает, так вот повторяю, как найти именно серийник где стоит винда?

AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook

posregex := 1

F2::
DriveGet, list, list
Loop
{
    RegExMatch(list, "(.).*", output, posregex)
    IfExist %output1%:\Windows
    {
        msgbox, Папка Windows найдена на диске %output1%
        break
    }
    else
    {
        posregex += 1
        RegExMatch(list, "(.).*", output, posregex)
        IfExist %output1%:\Windows
        {
            msgbox, Папка Windows найдена на диске %output1%
            break
        }
    }
}
return
 
  • Злость
Реакции: Double Tap Inside
AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook

posregex := 1

F2::
DriveGet, list, list
Loop
{
    RegExMatch(list, "(.).*", output, posregex)
    IfExist %output1%:\Windows
    {
        msgbox, Папка Windows найдена на диске %output1%
        break
    }
    else
    {
        posregex += 1
        RegExMatch(list, "(.).*", output, posregex)
        IfExist %output1%:\Windows
        {
            msgbox, Папка Windows найдена на диске %output1%
            break
        }
    }
}
return
Он просил серийник жесткого, на котором находится винда, а не его название
 
  • Нравится
Реакции: Double Tap Inside

meowprd

Тот самый Котовский
Проверенный
1,280
711
Он просил серийник жесткого, на котором находится винда, а не его название

Он сказал что у него есть цикл, который выдает все серийники, я ему дал просто код который поможет найти диск, далее просто работа с DriveGet
Дополняю решение.

AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook

global posregex := 1
global symbols := ":/"

F2::
DriveGet, list, list
Loop
{
    RegExMatch(list, "(.).*", output, posregex)
    IfExist %output1%:\Windows
    {
        msgbox, Папка Windows найдена на диске %output1%
        GetDiskInfo(output1)
        break
    }
    else
    {
        posregex += 1
        RegExMatch(list, "(.).*", output, posregex)
        IfExist %output1%:\Windows
        {
            msgbox, Папка Windows найдена на диске %output1%
            GetDiskInfo(output1)
            break
        }
    }
}
return

GetDiskInfo(letter)
{
    DriveGet, cap, capacity, %letter%%symbols%
    DrivespaceFree, free, %letter%%symbols%
    DriveGet, fs, fs, %letter%%symbols%
    DriveGet, label, label, %letter%%symbols%
    DriveGet, serial, serial, %letter%%symbols%
    DriveGet, type, type, %letter%%symbols%
    DriveGet, status, status, %letter%%symbols%
    MsgBox,
    (
    `tНайденный диск: %letter%%symbols%
    Тип диска: %type%
    Статус: %status%
    Ёмкость: %cap% Мб
    Свободное место: %free% Мб
    Файловая система: %fs%
    Метка тома: %label%
    Серийный номер: %serial%
    )
}
 
Последнее редактирование:

Double Tap Inside

Известный
Проверенный
1,897
1,251
Он сказал что у него есть цикл, который выдает все серийники, я ему дал просто код который поможет найти диск, далее просто работа с DriveGet
Дополняю решение.

AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook

global posregex := 1
global symbols := ":/"

F2::
DriveGet, list, list
Loop
{
    RegExMatch(list, "(.).*", output, posregex)
    IfExist %output1%:\Windows
    {
        msgbox, Папка Windows найдена на диске %output1%
        GetDiskInfo(output1)
        break
    }
    else
    {
        posregex += 1
        RegExMatch(list, "(.).*", output, posregex)
        IfExist %output1%:\Windows
        {
            msgbox, Папка Windows найдена на диске %output1%
            GetDiskInfo(output1)
            break
        }
    }
}
return

GetDiskInfo(letter)
{
    DriveGet, cap, capacity, %letter%%symbols%
    DrivespaceFree, free, %letter%%symbols%
    DriveGet, fs, fs, %letter%%symbols%
    DriveGet, label, label, %letter%%symbols%
    DriveGet, serial, serial, %letter%%symbols%
    DriveGet, type, type, %letter%%symbols%
    DriveGet, status, status, %letter%%symbols%
    MsgBox,
    (
    `tНайденный диск: %letter%%symbols%
    Тип диска: %type%
    Статус: %status%
    Ёмкость: %cap% Мб
    Свободное место: %free% Мб
    Файловая система: %fs%
    Метка тома: %label%
    Серийный номер: %serial%
    )
}
но это походу не то, это серийник логического диска, а надо физического(жосткого/винчестера/SSD).
Нет такого диска с таким серийником который выдает мне этот ахк.
bandicam 2019-08-21 19-24-59-572.jpg
 
Последнее редактирование:

meowprd

Тот самый Котовский
Проверенный
1,280
711
но это походу не то, это серийник логического диска, а надо физического(жосткого/винчестера/SSD).
Нет такого диска с таким серийником который выдает мне этот ахк.
Посмотреть вложение 37902

Понял тебя, сейчас допишу решение

Update:
С WMI есть пару проблем в физическими дисками, невозможно отследить букву

Прости, но видимо такая задача мне не по зубам, я не так близко знаком с WMI
 
Последнее редактирование:
  • Нравится
Реакции: Double Tap Inside

meowprd

Тот самый Котовский
Проверенный
1,280
711
GUI ,это как оформление скрипта,допустим ты открываешь какое нибуть старое АХК,увидишь что при открытии скрипта,вылезет окошло где можно ввести ник,телефон и т.д

AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook


F2::
InputBox, output, Название окна, Текст внутри окна
if ErrorLevel
    msgbox, Нажата кнопка Cancel
else
{
    msgbox, Вы ввели: %output%
    IniWrite, %output%, TestScript.ini, main, output_test
}
return

Скрипт сам создаст ini файлик рядом со скриптом в одной папке
 

#RCoffiano

Участник
19
2
AutoHotKey:
#SingleInstance, force
#NoEnv
#UseHook


F2::
InputBox, output, Название окна, Текст внутри окна
if ErrorLevel
    msgbox, Нажата кнопка Cancel
else
{
    msgbox, Вы ввели: %output%
    IniWrite, %output%, TestScript.ini, main, output_test
}
return

Скрипт сам создаст ini файлик рядом со скриптом в одной папке
Я знаю как делать это,но всё равно,спасибо
 

|DEVIL|

Известный
359
272
Приветствую всех, у меня проблема с моим ахк скриптом: хочу чтобы все три команды задействовались, а в итоге задействуется только одна, когда пишешь все три. Опубликовал без SAMP.UDF
Код:
SendMessage, 0x50,, 0x4190419,,

:?:/piarv::

addChatMessage("{FFFFFF}Пиар в {00BFFF}/vr{FFFFFF} включён! | Разработчик: {8A2BE2}Marcus {FF0000}Devil ")

while(true){

addChatMessage("{ADFF2F}Скрипт начинает пиар")

sleep 1000

SendChat("/vr Идет набор в Семью с Галочкой/Брендом/Все улучшения. При себе иметь 200к или Титан вип. Звоните - 3365355!")

sleep 1000

addChatMessage("{ADFF2F}Скрипт удачно пропиарил бар! Ожидайте дальнейшего пиара")


sleep 170000

addChatMessage("{FF0000}Внимание, через 10 секунд сработает скрипт!")

sleep 12000


}

return


:?:/piarf::

addChatMessage("{FFFFFF}Пиар в {DC143C}/fam{FFFFFF} включён! | Разработчик: {8A2BE2}Marcus {FF0000}Devil ")

while(true){


addChatMessage("{ADFF2F}Скрипт начинает пиар")

sleep 1000

SendChat("/fam Открылся Бар на Санта-Марии (/финдибиз 51). Играйте в Орёл и Решку. Ставки до 600.000$!")

sleep 1000

addChatMessage("{ADFF2F}Скрипт удачно пропиарил бар! Ожидайте дальнейшего пиара")


sleep 60000

}

return

:?:/piara::

addChatMessage("{FFFFFF}Пиар в {228B22}/ad{FFFFFF} включён! | Разработчик: {8A2BE2}Marcus {FF0000}Devil ")

while(true){


addChatMessage("{ADFF2F}Скрипт начинает пиар")

sleep 1000

SendChat("/ad 1 В баре 51 на Пляже Санта Мария проходят игры в орёл и решка ставки до 600.000!")

sleep 1000

addChatMessage("{ADFF2F}Скрипт удачно разместил объявление о пиаре! Ожидайте дальнейшего пиара")


sleep 120000


}

return


:?:/piarhelp::

addChatMessage("{FF8C00}PiarHelper | Версия - 1.2 (Beta)")

addChatMessage("{FFFFFF}Разработчик скрипта: {8A2BE2}Marcus {FF0000}Devil")

addChatMessage("{00FA9A}/piarv{FFFFFF} - Пиар в {00BFFF}/vr{FFFFFF} чат")

addChatMessage("{00FA9A}/piarf{FFFFFF} - Пиар в {DC143C}/fam{FFFFFF} чат")

addChatMessage("{00FA9A}/piara{FFFFFF} - Пиар в {228B22}/ad{FFFFFF} чат")

return

F11::

addChatMessage("{FFFFFF}Скрипт {FF0000}остановил {FFFFFF}работу! Для дальнейшей работы нужно свернуть игру и в панели задач перезапустить его")

pause