purebasic.info

PureBasic forum
Текущее время: Пн ноя 19, 2018 12:29 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: Пн ноя 05, 2018 9:32 am 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 310
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
AZJIO писал(а):
В Windows я захватывал пути из адресной строки текущих окон, чтобы сохранить сессию. А кто знает как это сделать в Linux?

AZJIO, а мож код бросить, я этот способ в Винде ввести инет перекопал и толкового несмог сделать.
Спасибо.

_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 12:20 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 237
Благодарил (а): 22 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
balex1978 писал(а):
AZJIO писал(а):
В Windows я захватывал пути из адресной строки текущих окон, чтобы сохранить сессию. А кто знает как это сделать в Linux?

AZJIO, а мож код бросить, я этот способ в Винде ввести инет перекопал и толкового несмог сделать.
Спасибо.

я делал на AutoIt, и он доступен, но при переходе на Win10 изменился тип элемента адресной строки, я не переписывал прогу, так как надо писать на новой версии AutoIt, потому что на старой нет кода идентифицирующего версию Win10. Хотя можно было бы сделать типа самодельную функцию идентификации. Там нет как в PureBasic допустим версия выше 8, там только заданный набор уже вышедших версий.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 4:21 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 310
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
Вот ниже код который пишет и читает в заданом формате, проверил все три формата.
ПЕРЕД ЗАПУСКОМ УСТАНОВИТЕ СВОЙ ПУТЬ К ФАЙЛУ
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
File$="C:\tmp_del\del.txt"
 
OpFile=0
If CreateFile(OpFile, File$,#PB_Unicode)
    ; я незнаю зачем тут формат  записи, а понял он влияет если без флага WriteString
    StringFormat=#PB_UTF8;#PB_Unicode;#PB_Ascii; другиие форматы непринимаютя для записи и чтения
    WriteStringFormat(OpFile , StringFormat)
    WriteString(OpFile , "Результат работы программ, ента строчка должна быть читабельна", StringFormat)
    CloseFile(OpFile)
  Else
    MessageRequester("", "Не удалось открыть файл "+File$)
    End ; Завершение работы программы
  EndIf
 
  OpFile=1
  ; читаем
 If ReadFile(OpFile, File$,#PB_Ascii)
    ; я незнаю зачем тут формат  записи, а понял он влияет если без флага WriteString
    StringFormat=ReadStringFormat(OpFile)
    Debug "ниже прочитаный текст из файла:"
    Debug ReadString(OpFile ,StringFormat)
    CloseFile(OpFile)
  Else
    MessageRequester("", "Не удалось открыть файл "+File$)
    End ; Завершение работы программы
  EndIf


_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 4:39 pm 
Не в сети
ассистент

Зарегистрирован: Вт июл 16, 2013 3:48 pm
Сообщений: 11
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
balex1978 писал(а):
мож код бросить, я этот способ в Винде ввести инет перекопал и толкового несмог сделать.
Спасибо.


Не оно?
viewtopic.php?f=1&t=4773&p=87937#p87937


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 5:38 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 310
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
YTRE писал(а):
balex1978 писал(а):
мож код бросить, я этот способ в Винде ввести инет перекопал и толкового несмог сделать.
Спасибо.

Не оно?
http://purebasic.info/phpBB3ex/viewtopi ... 937#p87937

Пока непроверял, библиотеку комат нужно ставить, но из форума понял что вроде не то.

В общем вопрос такой, если точнее.
Есть проводники какието одкрыты (и может даже файлы).
У каждого есть путь в адресной строке(не заголовок окна), вот его мне и получить этот путь.
Иногда чегото гдето ковыряешся, а потом вспоминаеш где и немогу иногда по пол года найти чего такое интересное одкрыл. Хотел сделать типа лог с именами папок и текстовых файлов которые одкрывал и временем открытия. Но в инете какието заморочки по этому поводу.

_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 6:14 pm 
Не в сети
ассистент

Зарегистрирован: Вт июл 16, 2013 3:48 pm
Сообщений: 11
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Пункты репутации: 0
balex1978 писал(а):
Пока непроверял, библиотеку комат нужно ставить, но из форума понял что вроде не то.

В общем вопрос такой, если точнее.
Есть проводники какието одкрыты (и может даже файлы).
У каждого есть путь в адресной строке(не заголовок окна), вот его мне и получить этот путь.
Иногда чегото гдето ковыряешся, а потом вспоминаеш где и немогу иногда по пол года найти чего такое интересное одкрыл. Хотел сделать типа лог с именами папок и текстовых файлов которые одкрывал и временем открытия. Но в инете какието заморочки по этому поводу.


Код по ссылке получает пути до всех открытых в текущий момент папок как промежуточный результат


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн ноя 05, 2018 7:38 pm 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 310
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
Спасибо както попробую.
Попробовал, наверное у меня битый комат плюс или с версиями несовпадает.
Пурик 5.46, а комат= 5.40
в COMatePLUS.pbi вылазит ошибка тут= excep\pfnDeferredFillIn(excep), мусор в конце строки.

там чегото со структурой неверно записано, а я несилен, да и 2500 строчек разбирать, это жестковато. :roll:
Немного разобрался, в комате+ чегото недоделано или спецом исказили и он неработает.
Мож кинеш свой COMatePLUS.
у меня такое в строках
If excep\pfnDeferredFillIn
excep\pfnDeferredFillIn(excep); тут ошибка, да и видно что ничего тут нету, не делается.
EndIf
закоментировал и кроме СМДешного окна в котором тайна черного окна больше нету :?

_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт ноя 06, 2018 11:01 am 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 237
Благодарил (а): 22 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
balex1978 писал(а):
COMatePLUS.pbi вылазит ошибка
скачал тут. Распаковал, создал папку, создал pb, так как в скрипте указано что библиотека лежит уровнем выше IncludePath "..\" далее скомпилировал, запустил, выделил файлы в папке
Код:
1
Delay(8000) ; задержка - в это время необходимо выделить файлы в нужной папке

через время в смд-окне получил пути (там где ты назвал тайной).


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт ноя 06, 2018 11:26 am 
Не в сети
профессор

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 310
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Пункты репутации: 0
AZJIO писал(а):
Код:
1
Delay(8000) ; задержка - в это время необходимо выделить файлы в нужной папке

через время в смд-окне получил пути (там где ты назвал тайной).


Я незаню чего там в моем бито, но этот момент хоть и читал но на момент запуска прозевал :roll: ,
работает, спасибки.

Я вот смотрел в какойто проге
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
;Extended Window Viewer 
;Расширенный Просмоторщик Информации об Окнах
;размер скомпилированного EXE файла - 16Кб, а после упаковки UPX - 8.5Кб
;
;by MadPsychoCell
;17.07.2007 19:15
 
Enumeration
  #gMainHWND_Dec
  #gMainHWND_Hex
  #gParentHWND_Dec
  #gParentHWND_Hex
  #gMainClass
  #gParentClass
  #gMainText
  #gParentText
EndEnumeration
 
Procedure UpdateWindowInfo()
  Static Cursor.POINT, Wnd.l, Parent.l, MainClass${255}, ParentClass${255}, MainText${1024}, ParentText${1024}
  GetCursorPos_(Cursor)
 
  Wnd = WindowFromPoint_(Cursor\X|(Cursor\Y<<32))    ;координаты курсора мыши на экране
  ;Wnd = WindowFromPoint_(Cursor\X,Cursor\Y)
  GetClassName_(Wnd,@MainClass$,$FF)           ;получаем имя класса по хэндлу окна
  GetWindowText_(Wnd,@MainText$,$FF)           ;получаем текст окна по хэндлу окна
 
  Parent = GetParent_(Wnd)                     ;получить хэндл родительского окна
  GetClassName_(Parent,@ParentClass$,$FF)
  GetWindowText_(Parent,@ParentText$,$FF)
 
  SetGadgetText(#gMainHWND_Dec,   Str(Wnd)    )
  SetGadgetText(#gMainHWND_Hex,   Hex(Wnd)    )
  SetGadgetText(#gParentHWND_Dec, Str(Parent) )
  SetGadgetText(#gParentHWND_Hex, Hex(Parent) )
  SetGadgetText(#gMainClass,      MainClass$  )
  SetGadgetText(#gParentClass,    ParentClass$)
  SetGadgetText(#gMainText,       MainText$   )
  SetGadgetText(#gParentText,     ParentText$ )
 
EndProcedure
 
 
 
wnd = OpenWindow(0,0,0,280,240,"Extended Window Viewer",#PB_Window_SystemMenu)
 StickyWindow(0, 1)
 
CreateGadgetList(wnd)
 
TextGadget(#PB_Any,115,5,40,20,".:Dec:.")
TextGadget(#PB_Any,215,5,40,20,".:Hex:.")
 
TextGadget(#PB_Any,5,22,50,20,"HWND:")
StringGadget(#gMainHWND_Dec,85, 20,90,20,"")
StringGadget(#gMainHWND_Hex,185,20,90,20,"")
 
TextGadget(#PB_Any,5,52,80,20,"Parent HWND:")
StringGadget(#gParentHWND_Dec,85, 50,90,20,"")
StringGadget(#gParentHWND_Hex,185,50,90,20,"")
 
TextGadget(#PB_Any,5,82,80,20,"CLASS:")
StringGadget(#gMainClass,85,80,190,20,"")
 
TextGadget(#PB_Any,5,107,80,30,"ParentWND CLASS:")
StringGadget(#gParentClass,85,110,190,20,"")
 
TextGadget(#PB_Any,5,142,80,20,"TEXT:")
StringGadget(#gMainText,85,140,190,20,"")
 
TextGadget(#PB_Any,5,167,80,30,"ParentWND TEXT:")
StringGadget(#gParentText,85,170,190,20,"")
 
 
SetTimer_(wnd,0,100,@UpdateWindowInfo()); вызывать процедуру @UpdateWindowInfo() через каждые 100мс
 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
 
End

показало что адресная строка имеет клас Edit и родителя клас ComboBox, но содержимое пустое :? . Выходит не такто просто получить через АПИ содержимое, надо глубже покопаться и в этой проге, помню както выводил содержимое или померещилось :roll: и твою прогу ковырнуть.

_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 07, 2018 10:06 am 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 237
Благодарил (а): 22 раз.
Поблагодарили: 33 раз.
Пункты репутации: 0
Обновил Linux-версию, добавил перезапуск меню после добавления путей. Ввёл цикл, выпрыг из которого снова запускает создание меню.

В Windows я уже не обновляю прогу, там это можно легко соорудить добавив новую панель на панель задач, допустим в папку "f" накидал ярлыков на папки и добавил папку на панель, а если папку сделать в папке главное меню программ, то ярлыки будут ещё и раскрываться.

Как для Linux сделать захват путей из окон, я пока зделал запрос функции "Закладки" с категориями.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB