Хочу создать программу которая упростит мою работу с файлами ".pb". Мне нужно чтоб при открытии файла ".pb" я выберал с помощю какой версии Pure Basic будет открыт файл. Моя идея такова: программа стоит на автозапуске и смотрит какие файлы я открываю, как только она видит что открыт ".pb" файл сразу не открывается, а сначала открывает своё окно в котором 3 buttongadgeta: "4.00", "4.30" и "4.51". Как только я выбераю версию он закрывает своё окно и открывает этот pb файл с помощю той программы которую я выбрал. Из этого я именно хочу узнать оператор для определения расширения открытого файла и как открыть файл с помощю определённой программы. Подскажите с этими 2 вопросами.
Хочу создать прогу которая упростит мою работу с файлами pb.
Сообщений 1 страница 14 из 14
Поделиться229.03.2011 14:25:58
оператор для определения расширения открытого файла
proga.s="C:\papka\моя прога.pb" Debug GetExtensionPart(proga)
как открыть файл с помощью определённой программы
RunProgram("proga.exe", "Отерываемый файл.pb","")PS.
Я эту задачу решил проще.
Версии PureBasic, которые редко использую, запускаю с ключом /PORTABLE и они не переписывают настройки и ассоциацию и файлов.
Поделиться329.03.2011 14:40:11
Appolon
ПКМ по файлу, открыть с помощью, выбираешь свою прогу и ставишь галочку "использовать для всех файлов с этим расширением"
Твоя прога:
;сдесь окно с кнопками
purik_400$ = "путь до пурика 4.00"
purik_430$ = "путь до пурика 4.30"
purik_451$ = "путь до пурика 4.51"
PR$ = ProgramParameter()
Select EventGadget
Case Knopka_1
RunProgram(purik_400$, PR$,"")
Case Knopka_2
RunProgram(purik_430$, PR$,"")
Case Knopka_3
RunProgram(purik_451$, PR$,"")
EndSelectПоделиться429.03.2011 14:45:04
proga.s="C:\papka\моя прога.pb"
Debug GetExtensionPart(proga)
Да, спасибо, но вопрос был в том как определить расширение открытого файла, а не жесткозаданого. Тоесть если я открваю файл определённого вида моя программа недаёт ему открытся, а выводит своё окно. Как именно это осуществить?
Версии PureBasic, которые редко использую, запускаю с ключом /PORTABLE и они не переписывают настройки и ассоциацию и файлов.
Я неочень понял о чём идёт реч.
Отредактировано Appolon (29.03.2011 14:47:15)
Поделиться529.03.2011 15:02:29
Тоесть если я открваю файл определённого вида моя программа недаёт ему открытся, а выводит своё окно. Как именно это осуществить?
Элементарно! Вначале пишешь свою программу, примерно как и тебе подсказали
;сдесь окно с кнопками
purik_400$ = "путь до пурика 4.00"
purik_430$ = "путь до пурика 4.30"
purik_451$ = "путь до пурика 4.51"
PR$ = ProgramParameter()
Select EventGadget
Case Knopka_1
RunProgram(purik_400$, PR$,"")
Case Knopka_2
RunProgram(purik_430$, PR$,"")
Case Knopka_3
RunProgram(purik_451$, PR$,"")
EndSelectПотом ассоциируешь её с расширением .pb и всё! Ассоциировать можно при помощи программы Associator.zip: http://purebasic.info/phpBB2/viewtopic. … table#9744
Она может как устанавливать ассоциации с расширениями, так и удалять ненужные.
Поделиться629.03.2011 15:02:30
Да, спасибо, но вопрос был в том как определить расширение открытого файла, а не жесткозаданого.
В переменную можно записать любой текст - любой путь к файлу.
Перенастраиваешь расширение PB на свою прогу и все, его даже определять не понадобится.
Я неочень понял о чём идёт реч.
У тебя есть ярлыки запуска PureBasic на рабочем столе?
Вот, в свойствах ярлыка нужно добавить ключ /PORTABLE
Поделиться729.03.2011 15:11:19
А можно вообще красиво сделать - не самому выбирать кнопками программу, а считывать из исходника в конце строчку типа
; IDE Options = PureBasic v4.02 (Windows - x86)
И в зависимости от этой строчки запускать уже нужный редактор.
P.s. Такая строчка есть во многих исходниках, если только он не редактировался в jaPBe.
Поделиться829.03.2011 15:21:58
Всё это куча не нужных телодвижений, запускаем файл.pb, затем ждем пока запустится наша программа и выбираем какой версией открыть...
Зачем всё это, ну если чтоб посмотреть как реализовать...
У меня на столе ярлыки: 4.00 4.30 4.40 4.41 и 4.50
Пользуюсь 4.41
4.50 - нет всех библиотек
4.00 и 4.30 - для "старых" примеров ...
Поделиться929.03.2011 16:20:07
А можно вообще красиво сделать - не самому выбирать кнопками программу, а считывать из исходника в конце строчку типа
Не, мне это не подходит, но всёрвно спасибо за совет
Потом ассоциируешь её с расширением .pb и всё! Ассоциировать можно при помощи программы Associator.zip: http://purebasic.info/phpBB2/viewtopic. … table#9744
А, тоесть асоцыировать файлы ".pb" с написаной мною программой. Ща попробую 
Поделиться1029.03.2011 16:58:22
Я написал эту программу, но есть ещё один вопрос. Что писать в моей программе всесто "???". Как узнать какой файл я открываю? Если оставить как у меня то открывается пустой документ.
OpenWindow(0,1,1,200,180,"PureBasic",#PB_Window_MinimizeGadget| #PB_Window_ScreenCentered)
ButtonGadget(1,10,10,180,50,"4.00")
ButtonGadget(2,10,65,180,50,"4.30")
ButtonGadget(3,10,120,180,50,"4.51")
Repeat
q=WindowEvent()
If q=#PB_Event_Gadget
If EventGadget()=1
RunProgram("C:\Всеволод\Программы\PureBasic4_00\PureBasic.exe", "???","")
EndIf
If EventGadget()=2
RunProgram("C:\Всеволод\Программы\PureBasic\PureBasic.exe", "???","")
EndIf
If EventGadget()=3
RunProgram("C:\Всеволод\Программы\PureBasic4_51\PureBasic.exe", "???","")
EndIf
EndIf
Until q=#PB_Event_CloseWindowПоделиться1129.03.2011 17:06:10
File.s=ProgramParameter(0)
If File
OpenWindow(0,1,1,200,180,"PureBasic",#PB_Window_MinimizeGadget| #PB_Window_ScreenCentered)
ButtonGadget(1,10,10,180,50,"4.00")
ButtonGadget(2,10,65,180,50,"4.30")
ButtonGadget(3,10,120,180,50,"4.51")
Repeat
q=WindowEvent()
If q=#PB_Event_Gadget
If EventGadget()=1
RunProgram("C:\Всеволод\Программы\PureBasic4_00\PureBasic.exe", File,"")
EndIf
If EventGadget()=2
RunProgram("C:\Всеволод\Программы\PureBasic\PureBasic.exe", File,"")
EndIf
If EventGadget()=3
RunProgram("C:\Всеволод\Программы\PureBasic4_51\PureBasic.exe", File,"")
EndIf
EndIf
Until q=#PB_Event_CloseWindow
EndIfПоделиться1229.03.2011 17:59:29
Написал, всё получилось
Поделиться1329.03.2011 18:05:02
Appolon
Для разнообразия
File.s=ProgramParameter(0)
If File
OpenWindow(0,1,1,200,180,"PureBasic",#PB_Window_MinimizeGadget| #PB_Window_ScreenCentered)
ButtonGadget(1,10,10,180,50,"4.00")
ButtonGadget(2,10,65,180,50,"4.30")
ButtonGadget(3,10,120,180,50,"4.51")
Repeat
EventWindow=WindowEvent()
Select EventGadget()
Case 1
proga$ = "C:\Всеволод\Программы\PureBasic4_00\PureBasic.exe"
Case 2
proga$ = "C:\Всеволод\Программы\PureBasic\PureBasic.exe"
Case 3
proga$ = "C:\Всеволод\Программы\PureBasic4_51\PureBasic.exe"
Default
Continue
EndSelect
RunProgram(proga$, File,"")
End
Until EventWindow=#PB_Event_CloseWindow
EndIf