Custom Explorer Infotip с использованием .net 8 Com HostingC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Custom Explorer Infotip с использованием .net 8 Com Hosting

Сообщение Anonymous »

Я пытаюсь обернуть свою голову о том, как сделать, чтобы создать калнету DLL 8 DLL для создания индивидуального Infotip на Explorer для определенного расширения (.t1k). < /p>
Я знаю, что Stronchshell - очень мощная библиотека, позволяющая вам облегчить этот процесс и на самом деле, чтобы сделать его так, но с ней: ультразмею: p> p> p> p> p> p> p> p> press < /bree containt ate Come, но с ней: ультразмея < /bree. /> Проект, с которым я должен работать, должен быть .net, а не .netframework, поскольку строка, возвращаемая GetInfotip, генерируется обработкой некоторых данных из другой библиотеки .NET. < /li>
Хотя здесь есть решение, мне неясно, насколько он является надежным, как другой разработчик в том, что указал в этом, я получу тот же предупреждение, что и то же предупреждение, что я задаю, что это связано с этим методом. /> < /ul>

Stronkshell 2.7.2 'была восстановлена ​​с использованием' .netframework, version = v4.6.1, .netframework, version = v4.6.2, .netframework, version = v4.7, .netframework, version = v4.7.1, .netframework, version = v4.7, .netframework, version = v.47.1, .netframework, version = v4.7, .netframe .Netframework, version = v4.8.1 'вместо целевой структуры проекта' net8.0-windows7.0 < /p>
< /blockquote>
Вот что я попробовал вместо этого:
Я сделал тестовый проект, где .csproj-это следующее: < /p>


Library
net8.0-windows
true
T1000ShellEx
enable
enable
x64

< /code>

и единственный файл .cs внутри проекта выглядит следующим образом: < /p>
using System.Runtime.InteropServices;

namespace T1000ShellEx
{
[ComVisible(true)]
[Guid("E2B9C5B6-5C92-4D1B-85E6-2F80B72F6E28")]
[ClassInterface(ClassInterfaceType.None)]
public sealed class T1KInfoTipHandler : IQueryInfo
{
public int GetInfoTip(uint dwFlags, out string ppwszTip)
{
try
{
ppwszTip = "IT WORKS";
return 0;
}
catch
{
ppwszTip = "ERROR";
return 0;
}
}

public int GetInfoFlags(out uint pdwFlags)
{
pdwFlags = 0;
return 0;
}
}

[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("00021500-0000-0000-C000-000000000046")]
public partial interface IQueryInfo
{
[PreserveSig]
int GetInfoTip(uint dwFlags, [MarshalAs(UnmanagedType.LPWStr)] out string ppwszTip);

[PreserveSig]
int GetInfoFlags(out uint pdwFlags);
}
}
< /code>
после компиляции я получаю t1000shellex.comhost.dll, который, если он передаст в Regsvr32, успешно зарегистрируется мой dll.
Я также вручную добавил эти ключи реестра, которые, Afaik Редактор реестра версии 5.00 < /p>
тнга, который Файл \ shellex] < /p>
[hkey_classes_root \ t1000 Файл проекта \ shellex \ {00021500-0000-0000-C000-0000000046}]
@= "{e2b9c5b6-5c92-4d1b-85e6-2f80b7f6e28} prece28} per /pre28. /> nhkey_classes_root\t1000shellex.t1kinfotiphandler^
@="t1000shellex.t1kinfotiphandler"
Hkey_Classes_Root\t1000shellex.t1kinfotiphandler\clsId]Br .br />@= "{E2b9c5b6-5c92-4d1b-85e6-2f80b72f6e28}" < /p>
< /blockquote>
Я затем перезагрузил исследователь, и это то, что я получаю от Procmon: < /p>

11: 05: 05: 43 explorer.exe 10524 Queryopen C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Fast io diswalled

11: 05: 14,483315 Explor C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех. /> 11: 05: 14,4834235 Explorer.exe 10524 QueryBasicinformationFile C: \ Пользователи \ Theuser \ Desktop \ Consoleapp1 \ Consoleapp1 \ Bin \ Release \ Net8.0-Windows \ T1000Shellex.comhost.dll CreationTime: 11/06/2025 09:313, 3, 3 :13, 3, 3 :13, 3 :13, 3 :13, 3, 3 :13, 3, 3 :13, 3 :13, 3 :13, 3, 3 :13, 3: 3, 3, 3: 3, 3, 3: 3, 3, 3: 3, 3, 11/06/2025 11:04:44, LastWriteTime: 15/04/2025 17:38:20, Changetime: 14/05/2025 08:30:28, FileatTributes: A
11: 05: 14,4834805 Explorer.exe 10524 C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll успех
11: 05: 14,4835557 Explorer.exe 10524 C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll успех
11: 05: 14,4838781 Explorer.exe 10524 CreateFile C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех. AllocationSize: N/A, OpenResult: Opened
11: 05: 14,4845276 Explorer.exe 10524 QueryBasicinformationFile C: \ Пользователи \ Theuser \ Desktop \ Consoleapp1 \ Consoleapp1 \ Bin \ Release \ net8.0-windows \ t1000shellex.comshost.dlslmemportime: 116/20625. 09:31:13, Tastaccesstime: 06.11.2025 11:04:44, TastWritetime: 15/04/2025 17:38:20, Changetime: 14/05/2025 08:30:28, FILEATTRIBUTE C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех. 10524 Readfile C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех смещение: 0, длина: 4.096
11: 05: 14,4847433 Explorer.exe 10524. C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Файл, заблокированный только с читателями Synctype: SynctyPecreatesection, PageProtection: Page_Execute | page_nocache
11: 05: 14,4877777777777777777787787778777877787777777.78. FASTIO_RELEASE_FOR_SECTION_SYNCHRONICATION C: \ USERS \ Theuser \ Desktop \ Consoleapp1 \ Consoleapp1 \ bin \ Release \ net8.0-windows \ t1000shellex.comhost.dll успех
11: 05: 14,4875033 Explorer.exe 10524 C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех Synctype: Synctypeother
11: 05: 14,4875472 Explorer.exe 10524 Fastio_Release_Section_syniz C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех
11: 05: 14,4877895 Explorer.exe 10524 C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех Изображение База: 0x7ffbd2bc0000, Размер изображения: 0x30000
11: 05: 14,483264. C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll успех
11: 05: 19,8975202 Explorer.exe 10524 Queryopen C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll fast io diswalled

11: 05: 19,8976489 explorer.exe 10524 Createfile C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll Успех. />11:05:19,8977046 explorer.exe 10524 QueryNetworkOpenInformationFile C:\Users\TheUser\Desktop\ConsoleApp1\ConsoleApp1\bin\Release\net8.0-windows\T1000ShellEx.comhost.dll SUCCESS CreationTime: 11/06/2025 09:31:13, LastAccessTime: 06.11.2025 11:05:14, TastWritetime: 15/04/2025 17:38:20, Changetime: 14/05/2025 08:30:28, AllocationSize: 01/01/1601 02:00:00, Endoffile: 01/01.00101:00, AILTTRIBUTE: A Endoffile: 01/0101 02:00:00, а. /> 11: 05: 19,89773331 Explorer.exe 10524 CloseFile C: \ Пользователи \ Theuser \ Desktop \ Consoleapp1 \ Consoleapp1 \ Bin \ Release \ net8.0-Windows \ T1000shellex.comhost.dll успех
11: 05: 19,897695 Explorcror C: \ users \ theuser \ desktop \ consoleapp1 \ consoleapp1 \ bin \ release \ net8.0-windows \ t1000shellex.comhost.dll успех < /p>
< /blockquote>
, так что DLL, кажется, загружается, но тогда я всегда получаю невыполнение infotip вместо «IT» или даже «p» < /per infotip. Честно говоря, я немного смущен тем, что является «официальным способом», чтобы достичь моей цели в .NET 8. Com Interop с мирами .NET (как, так и .NETFRAMEWORKWORK), кажется, значительно изменился, поэтому в Интернете я получаю много устаревших или не завершенных ответов, но я на сегодняшний день, не коммерческий, так что, возможно, решение проще, чем я думаю.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... om-hosting
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Custom Explorer Infotip с использованием .net 8 Com Hosting
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Custom Explorer Infotip с использованием .net 8 Com Hosting
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Custom Explorer Infotip с использованием .net 8 Com Hosting
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как зарегистрировать общий тип с использованием microsoft.extensions.hosting с помощью отражения?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как зарегистрировать общий тип с использованием microsoft.extensions.hosting с помощью отражения?
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»