![]() |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Wenn man sich ganz unvoreingenommen dem Thema via Google (o.ä.) nähert, dann trifft man auf jede Menge wolkiger Begriffe wie z.B. "Sicherheit" aber nie auf ein Rechte-Konzept. Und wenn ein offiziell installiertes Programm in einem Unterordner auch Schreibrechte eingerichtet hat... nun ja es wird Gründe haben. Auch wenn ich Dir inhaltlich voll und ganz zustimmen muß, solange der "Admin" als Allheilmittel für irgendwelche Zugriffsprobleme herhalten muß, solange ist das Unwissen über das Rechtekonzept von Windows weit verbreitet. Übrigens kein Windowsrechner seit NT, ist nicht in ein logisches Netz eingebunden, in der Standardinstallation. Gruß K-H |
AW: Program Files(x86) überhaupt noch sinngemäß
Ich sag es mal so: Alle anderen schaffen ihre Arbeit von "Program Files" aus
Sherlock |
AW: Program Files(x86) überhaupt noch sinngemäß
Hallo,
naja, fast alle. Aber leider findet man halt als Anfänger viele alte Quellen mit with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do ... Das klappt ja auch, nur das die Ini in den virtual drives verschwindet ;) |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
...:cat:... |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Aber Entwickle mal ein Programm in VB6 dann können wir uns anschließend über deine Spekulationen weiterhin unterhalten PM natürlich ;) Du solltest dann aber zeit mit bringen denn es sei dir versichert es wird dir nichts vorgekaut so wie es in Delphi gang und gäbe ist. Zitat:
Was definitiv nicht unterstützt wird ist Delphi! Warum nur... ![]() Ich mache es dir leichter! Zitat:
Es werden weiterhin die Service Packs, Runtime usw.. bei M$ zum Download angeboten. Das ist keine Unterstützung? Es werden weiterhin Laufzeit Bibliotheken bei der Installation von Windows 10 direkt mit installiert. Dann weis ich leider nicht was du sonst unter Support verstehst. Zitat:
Zitat:
Schaue doch einfach mal wie viele User hier Online sind inklusive Gäste mehr als zur zeit hier auf der DP soviel dazu. ![]() Zitat:
Ok wir schweifen ab.. gruss |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Von der Implementierung her sehe ich zwischen Delphi und VB6 (abgesehen von der ganz persönlich für mich schrecklichen VB6 Syntax) keine großen Unterschiede bei dem Interface. Es ist etwas umständlicher, aber das war zu der Zeit halt auch üblich. Andere Sprachen waren da auch noch deutlich rudimentärer. |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Ich will damit sagen du verwendest fertig vorhandene Komponente. Zitat:
Zitat:
Für die Overlay Button.. Deaktiviere unter Personalisieren\Taskleiste.. Badges auf Taskleiste danach kannst du mir sagen ob es noch funktioniert! Das hat nichts aber auch gar nichts mit meiner Implementierung zu tun sondern damit das Win10 sich in allem Einmischt. Warum braucht man dafür einen Systemsteuerungseintrag? Welcher sinn steckt dahinter. Da du anscheinend sehr viel zu wissen scheinst.. sage mir bitte was bei meiner Implementierung (Code) falsch sein soll.
Code:
Bedenke es handelt sich hier um eine *.tlb Lib die im System registriert werden muss. (In Delphi auch? Denke mal nicht)
[
uuid(a8ce1d71-bfd6-4b55-990a-be75aeb926b8), helpstring("Taskbar API for VisualBasic (Windows 10)"), version(1.0) ] library TaskbarAPI { typedef struct UUID { long Data1; short Data2; short Data3; unsigned char Data4[8]; } UUID; typedef UUID *REFGUID; typedef [public] UUID IID; typedef UUID *REFIID; typedef [public] UUID CLSID; typedef UUID *REFCLSID; typedef [public] UUID GUID; typedef struct RECT { long Left; long Top; long Right; long Bottom; } RECT; typedef struct FILETIME { long LowDateTime; long HighDateTime; } FILETIME; typedef struct WIN32_FIND_DATAW { long FileAttributes; FILETIME CreationTime; FILETIME LastAccessTime; FILETIME LastWriteTime; long FileSizeHigh; long FileSizeLow; long Reserved0; long Reserved1; unsigned char FileName[520]; unsigned char AlternateFileName[28]; } WIN32_FIND_DATAW; typedef struct PROPERTYKEY { UUID fmtid; long pid; } PROPERTYKEY; typedef struct PROPVARIANT { short vt; short wReserved1; short wReserved2; short wReserved3; long val; } PROPVARIANT; typedef enum SLGPConstants { SLGP_SHORTPATH = 0x1, SLGP_UNCPRIORITY = 0x2, SLGP_RAWPATH = 0x4, SLGP_RELATIVEPRIORITY = 0x8 } SLGPConstants; typedef enum SLRConstants { SLR_NO_UI = 0x0001, SLR_UPDATE = 0x0004, SLR_NOUPDATE = 0x0008, SLR_NOSEARCH = 0x0010, SLR_NOTRACK = 0x0020, SLR_NOLINKINFO = 0x0040, SLR_INVOKE_MSI = 0x0080, SLR_NO_UI_WITH_MSG_PUMP = 0x0101, } SLRConstants; typedef enum KNOWNDESTCATEGORYConstants { KDC_FREQUENT = 0x1, KDC_RECENT = 0x2 } KNOWNDESTCATEGORYConstants; typedef enum TBPFLAG { TBPF_NOPROGRESS = 0x00000000, TBPF_INDETERMINATE = 0x00000001, TBPF_NORMAL = 0x00000002, TBPF_ERROR = 0x00000004, TBPF_PAUSED = 0x00000008, } TBPFLAG; [ uuid(00000000-0000-0000-C000-000000000046), version(1.0), helpstring("IUnknown-Interface for Visual Basic"), odl ] interface IVBUnknown { long __stdcall QueryInterface([in] UUID* IID, [in,out] void* pObject); long __stdcall AddRef(); long __stdcall Release(); }; [ uuid(000214F9-0000-0000-C000-000000000046), version(1.0), helpstring("IShellLinkW-Interface for Visual Basic"), odl ] interface IVBShellLinkW : IVBUnknown { long __stdcall GetPath([in,out] LPWSTR Path, [in] int Pathsize, [in,out] WIN32_FIND_DATAW *FileData, [in] SLGPConstants Flags); long __stdcall GetIDList([in,out] long *pIDL); long __stdcall SetIDList([in] long pIDL); long __stdcall GetDescription([in,out] LPWSTR Descr, [in] int Buffersize); long __stdcall SetDescription([in] LPWSTR Descr); long __stdcall GetWorkingDirectory([in,out] LPWSTR WorkingDir, [in] int Buffersize); long __stdcall SetWorkingDirectory([in] LPWSTR WorkingDir); long __stdcall GetArguments([in,out] LPWSTR Args, [in] int Buffersize); long __stdcall SetArguments([in] LPWSTR Args); long __stdcall GetHotkey([in,out] short *Hotkey); long __stdcall SetHotkey([in] short Hotkey); long __stdcall GetShowCmd([in,out] int *ShowCmd); long __stdcall SetShowCmd([in] int ShowCmd); long __stdcall GetIconLocation([in,out] LPWSTR IconPath, [in] int IconPathSize, [in,out] int *iIcon); long __stdcall SetIconLocation([in] LPWSTR IconPath, [in] int iIcon); long __stdcall SetRelativePath([in] LPWSTR RelPath, [in] long reserviert); long __stdcall Resolve([in] long hWnd, [in] SLRConstants Flags); long __stdcall SetPath([in] LPWSTR Path); }; [ uuid(886D8EEB-8CF2-4446-8D02-CDBA1DBDCF99), version(1.0), helpstring("IPropertyStore for Visual Basic"), odl ] interface IVBPropertyStore : IVBUnknown { long __stdcall GetCount([in] long* cProps); long __stdcall GetAt([in] long iProp, [in] PROPERTYKEY* pKey); long __stdcall GetValue([in] PROPERTYKEY* key, [in,out] PROPVARIANT* pv); long __stdcall SetValue([in] PROPERTYKEY* key, [in] PROPVARIANT* propvar); long __stdcall Commit(); }; [ uuid(92CA9DCD-5622-4bba-A805-5E9F541BD8C9), version(1.0), helpstring("IObjectArray-Interface for Visual Basic"), odl ] interface IVBObjectArray : IVBUnknown { long __stdcall GetCount([out] long* pcObjects); long __stdcall GetAt([in] long uiIndex, [in] UUID* riid, [in,out] void* ppv); }; [ uuid(5632b1a4-e38a-400a-928a-d4cd63230295), version(1.0), helpstring("IObjectCollection-Interface for Visual Basic"), odl ] interface IVBObjectCollection : IVBObjectArray { long __stdcall AddObject([in] IVBUnknown* punk); long __stdcall AddFromArray([in] IVBObjectArray* poaSource); long __stdcall RemoveObjectAt([in] long uiIndex); long __stdcall Clear(); }; [ uuid(6332debf-87b5-4670-90c0-5e57b408a49e), version(1.0), helpstring("ICustomDestinationList-Interface for Visual Basic"), odl ] interface IVBCustomDestinationList : IVBUnknown { long __stdcall SetAppID([in] long pszAppID); long __stdcall BeginList([out] long* pcMinSlots, [in] UUID* riid, [in,out] void* ppv); long __stdcall AppendCategory([in] long pszCategory, [in] IVBObjectArray* poa); long __stdcall AppendKnownCategory([in] KNOWNDESTCATEGORYConstants category); long __stdcall AddUserTasks([in] IVBObjectArray* poa); long __stdcall CommitList(); long __stdcall GetRemovedDestinations([in] UUID* riid, [in,out] void* ppv); long __stdcall DeleteList([in] long pszAppID); long __stdcall AbortList(); }; [ uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf), helpstring("ITaskbarList-Interface for Visual Basic"), odl ] interface IVBTaskbarList : IVBUnknown { long __stdcall HrInit(); long __stdcall AddTab([in] LONG hwnd); long __stdcall DeleteTab([in] LONG hwnd); long __stdcall ActivateTab([in] LONG hwnd); long __stdcall SetActiveAlt([in] LONG hwnd); long __stdcall MarkFullscreenWindow([in] LONG hwnd,[in] LONG fFullscreen); long __stdcall SetProgressValue([in] LONG hwnd,[in] LONG ullCompleted_Low,[in] LONG ullCompleted_High,[in] LONG ullTotal_Low,[in] LONG ullTotal_High); long __stdcall SetProgressState([in] LONG hwnd,[in] TBPFLAG tbpFlags); long __stdcall RegisterTab([in] LONG hwndTab,[in] LONG hwndMDI); long __stdcall UnregisterTab([in] LONG hwndTab); long __stdcall SetTabOrder([in] LONG hwndTab,[in] LONG hwndInsertBefore); long __stdcall SetTabActive([in] LONG hwndTab,[in] LONG hwndMDI,[in] LONG dwReserved); long __stdcall ThumbBarAddButtons([in] LONG hwnd,[in] LONG cButtons,[in] LONG pButton); long __stdcall ThumbBarUpdateButtons([in] LONG hwnd,[in] LONG cButtons,[in] LONG pButton); long __stdcall ThumbBarSetImageList([in] LONG hwnd,[in] LONG himl); long __stdcall SetOverlayIcon([in] LONG hwnd,[in] LONG hIcon,[in] LONG pszDescription); long __stdcall SetThumbnailTooltip([in] LONG hwnd, [in] LONG pszTip); long __stdcall SetThumbnailClip([in] LONG hwnd, [in] RECT *prcClip); }; } Und hier liegt der Unterschied bzw.. kann ein Problem entstehen wenn ich etwas registrieren muss mit Adminrechten die TypleLib sie aber nicht braucht. PS: Nochmal es hat immer funktioniert nur nicht unter Win10! Zitat:
Dafür muss man sich erstmal wirklich damit beschäftigt haben es gibt keine Interface Implementierung für ITaskbarList3 denn das ist schlichtweg in VB6 gar nicht möglich nur über eine eigens in C++ erstellte TypeLib. Nun welche Syntax ist besser die von C++ oder diese von Delphi darüber kann man wahrlich streiten. gruss |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Zitat:
![]() Und das ist zwar umständlicher aufgrund der Eigenheiten von VB6, aber ansonsten nicht besonders stark anders als bei Delphi. Von einer in C++ erstellten Typelib oder ähnlichem sehe ich dabei nichts. |
AW: Program Files(x86) überhaupt noch sinngemäß
Moment - Ihr driftet inhaltlich gerade ab.
Begonnen haben wir mit Sinn und mglw. Unsinn der Program Files-Verzeichnisse. Jetzt sind wir bei der Frage, ob VB6 im Jahre 2019 noch ein adäquates Werkzeug ist, um für Windows 10 zu entwickeln. |
AW: Program Files(x86) überhaupt noch sinngemäß
Zitat:
Den link kann ich leider nicht ansehen aber hier kannst du lesen wie ich mein Testprogramm für das Interface erstellt habe. ![]() Man achte auf das Datum 1.9.2010 gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz