Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows / 15 сообщений из 15, страница 1 из 1
07.08.2019, 18:52
    #39846594
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
Delphi XE10
делаю точку восстановления Windows, пишу Discription
для этого беру тип JwaWindows.RESTOREPOINTINFO

Код: pascal
1.
2.
3.
4.
5.
6.
typedef struct _RESTOREPTINFO {
  DWORD dwEventType;
  DWORD dwRestorePtType;
  INT64 llSequenceNumber;
  TCHAR szDescription[MAX_DESC];
} RESTOREPOINTINFO, *PRESTOREPOINTINFO;



у него два предложенных варианта кодовых страниц, которых я знаю
RESTOREPOINTINFOW (Unicode) and RESTOREPOINTINFOA (ANSI)

как правильно в Delphi записать Description , чтобы он правильно отображался в Windows

я делаю вот так

Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
  restorePoint: JwaWindows.RESTOREPOINTINFO;
...
begin
...
   move(mDescr, restorePoint.szDescription, length(mDescr) * 2);
...



на вхоже mDescr как русские так и латиница, на выходе szDescription непонятно из какой кодовой стрницы

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

кто что скажет? в JwaWindows. UTF8 - не нашел_ да его в Windows и не запишешь.
...
Рейтинг: 0 / 0
07.08.2019, 19:12
    #39846605
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var
  restorePoint: JwaWindows.RESTOREPOINTINFO;
  LDesc: string;
...
begin
...
   move(LDesc[1], restorePoint.szDescription, (length(mDescr) + 1) * SizeOf(LDesc[1]));
...


Или
Код: pascal
1.
StrPCopy(restorePoint.szDescription, LDesc)
...
Рейтинг: 0 / 0
07.08.2019, 19:23
    #39846610
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
_Vasilisk_
Код: pascal
1.
   move(LDesc[1], restorePoint.szDescription, (length(mDescr) + 1) * SizeOf(LDesc[1]));


А если вдруг mDescr = '' ?..
...
Рейтинг: 0 / 0
07.08.2019, 19:27
    #39846613
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
alekcvpА если вдруг mDescr = '' ?..Да
...
Рейтинг: 0 / 0
07.08.2019, 19:32
    #39846619
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
alekcvpА если вдруг mDescr = '' ?..А еще оно может быть больше MAX_DESC
...
Рейтинг: 0 / 0
07.08.2019, 19:37
    #39846620
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
yemets63,

Код: pascal
1.
  move(LDesc^, @restorePoint.szDescription[0], (length(mDescr) + 1) * SizeOf(LDesc[1]));


?
...
Рейтинг: 0 / 0
07.08.2019, 21:34
    #39846643
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
спасибо, утром проверю, много часов работал, глаза не видят, голова не понимает. спать спать спать.
...
Рейтинг: 0 / 0
07.08.2019, 21:38
    #39846644
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
Если LDesc это string, то надо так
Код: pascal
1.
Move(PChar(LDesc)^,.....)



и не SizeOf(LDesc[1]) а лучше StringElementSize(LDesc)
...
Рейтинг: 0 / 0
08.08.2019, 10:04
    #39846793
yemets63
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
_Vasilisk_,

СПАСИБО.

для меня лучшее решение,

Код: pascal
1.
StrPCopy(restorePoint.szDescription, LDesc)



проверил много раз, работает, разные тексты, и даже русский
...
Рейтинг: 0 / 0
08.08.2019, 14:31
    #39847034
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
yemets63для меня лучшее решение,Только смотри, чтобы длина строки не вылезла за MAX_DESC
...
Рейтинг: 0 / 0
08.08.2019, 14:31
    #39847035
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
X-Citeи не SizeOf(LDesc[1]) а лучше StringElementSize(LDesc)Чем лучше?
...
Рейтинг: 0 / 0
08.08.2019, 15:49
    #39847094
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
_Vasilisk_X-Citeи не SizeOf(LDesc[1]) а лучше StringElementSize(LDesc)Чем лучше?
кроссплатформенно
...
Рейтинг: 0 / 0
08.08.2019, 16:04
    #39847104
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
X-CiteкроссплатформенноА чем SizeOf() не кроссплатформенно?
...
Рейтинг: 0 / 0
08.08.2019, 16:08
    #39847106
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
LDesc[1] - нет)
...
Рейтинг: 0 / 0
08.08.2019, 17:49
    #39847156
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows
X-CiteLDesc[1] - нет)Можно даже писать SizeOf(LDesc[999999])
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JwaWindows.RESTOREPOINTINFO как правильно получить текст и записать в Windows / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]