Suche API Calls "Zuletzt verwendete Elemente" aus dem Windows Explorer & Outlook
-
- Beobachter
- Beiträge: 1
- Registriert: 18.10.2017, 06:13
- Gender:
Suche API Calls "Zuletzt verwendete Elemente" aus dem Windows Explorer & Outlook
Hi ,
ich frage hiermit für meinen Kollegen mal auf gut Glück in die Runde.
Hat jemand Programmiertechnische Infos zu API-(whatever)-Calls für die
„Zuletzt verwendeteten Elemente“ wie aus dem Windows Explorer & Outlook ???
(Siehe Screenshots)
Mein Kollege würde diese geniale Funktion gerne auch in unseren Programmen als Aufruf nutzen.


Danke im voraus
ich frage hiermit für meinen Kollegen mal auf gut Glück in die Runde.

Hat jemand Programmiertechnische Infos zu API-(whatever)-Calls für die
„Zuletzt verwendeteten Elemente“ wie aus dem Windows Explorer & Outlook ???
(Siehe Screenshots)
Mein Kollege würde diese geniale Funktion gerne auch in unseren Programmen als Aufruf nutzen.
Danke im voraus

-
- Senior
- Beiträge: 411
- Registriert: 23.02.2019, 19:42
- Hat sich bedankt: 17 Mal
- Danke erhalten: 29 Mal
Re: Suche API Calls "Zuletzt verwendete Elemente" aus dem Windows Explorer & Outlook
hi,
ich habe ChatGPT gefragt
ich habe ChatGPT gefragt
und diese Antwort erhalten ( CODE für harbour)zeige mir den api befehl wie man einen link unter "Schnellzugriff" anlegt in harbour programm sprache
Um einen Link unter "Schnellzugriff" in Windows programmatisch hinzuzufügen, müssen Sie systemeigene Windows-APIs oder Frameworks verwenden. In der Harbour-Programmiersprache können Sie das Windows Shell COM-Objekt verwenden, um den Link hinzuzufügen. Hier ist ein Beispielcode, der einen Link zum "Schnellzugriff" in Windows hinzufügt:
Code: Alles auswählen
#include "hbapi.h" #include "hbapierr.h" #include "hbapirdd.h" #include "hbapiitm.h" #include <windows.h> #include <objbase.h> #include <comdef.h> #include <shobjidl.h> #include <shlguid.h> HB_FUNC(ADD_LINK_TO_QUICK_ACCESS) { LPCSTR path = hb_parc(1); LPCSTR linkName = hb_parc(2); HRESULT result; CoInitialize(NULL); IShellItem* item; IShellItem* folder; result = SHCreateItemFromParsingName(path, NULL, IID_PPV_ARGS(&item)); if (SUCCEEDED(result)) { result = SHGetKnownFolderItem(FOLDERID_Links, KF_FLAG_CREATE, NULL, IID_PPV_ARGS(&folder)); if (SUCCEEDED(result)) { result = folder->BindToHandler(NULL, BHID_SFUIObject, IID_PPV_ARGS(&folder)); if (SUCCEEDED(result)) { IShellLink* link; result = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&link)); if (SUCCEEDED(result)) { link->SetIDList(item); link->SetDescription(linkName); IPersistFile* file; result = link->QueryInterface(IID_PPV_ARGS(&file)); if (SUCCEEDED(result)) { WCHAR path[MAX_PATH]; SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, path); wcscat_s(path, MAX_PATH, L"\\Microsoft\\Windows\\Links\\"); wcscat_s(path, MAX_PATH, linkName); wcscat_s(path, MAX_PATH, L".lnk"); result = file->Save(path, TRUE); file->Release(); } link->Release(); } folder->Release(); } item->Release(); } } CoUninitialize(); if (SUCCEEDED(result)) { hb_retnl(1); } else