![]() |
AW: Ordnung muss sein (LaunchBar)
Zitat:
Der liegt doch unter User/Desktop ich kann mir nicht vorstellen das unter W10 das Verzeichnis nicht mehr existiert. Eventuell mal mit Adminrechten starten, Check mal diese Zeile in CreateShortCut.
Delphi-Quellcode:
sDeskTopAdm := GetSpecialFolder(CSIDL_DESKTOP) + '\';
gruss |
AW: Ordnung muss sein (LaunchBar)
Zitat:
Der Sprites.Count ist immer korrekt. Wenn überhaupt dann liegt es an deinem System der Desktop Ordner muss vorhanden sein. Ich kann aber nicht den Quelltext manipulieren weil auf deinem System etwas nicht stimmt. Wie gesagt prüf mal diese Zeile
Delphi-Quellcode:
sDeskTopAdm := GetSpecialFolder(CSIDL_DESKTOP) + '\';
Das sollte dir zurück liefern. C:\Users\UserName\Desktop\ (Admin) oder C:\Users\Public\Desktop\ (Public). gruss |
AW: Ordnung muss sein (LaunchBar)
GetSpecialFolder liefert schon einen Backslash am Ende. Der ist daher dann doppelt vorhanden. Besser ist in so einem Fall
![]()
Delphi-Quellcode:
Bei mir funktioniert die aktuell angehängte Version nun jedenfalls mit Windows 10 und auch Icons sind nun da. :thumb:
sDeskTopAdm := IncludeTrailingPathDelimiter(GetSpecialFolder(CSIDL_DESKTOP));
// fügt das Pfadtrennzeichen hinzu, wenn es noch nicht da ist Das Problem mit dem leicht verschobenen Menütext ist noch da, stört aber nicht wirklich. Die Koordinaten stimmen jedenfalls. Diese sind bei beiden Zeichenvorgängen gleich. Warum das so falsch aussieht, kann ich aktuell auch nicht sagen. // EDIT: Nehme ich diese Zeile heraus, wird der durch die Mausbewegung gehoverte Eintrag nicht mehr zurückgesetzt, aber der Fehler mit der Textverschiebung ist weg:
Delphi-Quellcode:
GDIP_DrawImageRectRectI(Graphics, ImgBack, ImgItemHeight, PDis.rcItem.Top,
Rect.Right - SideBarWidth, ImgItemHeight, 0, PDis.rcItem.Top * (Integer(imgH) div Rect.Bottom), imgW, (Integer(imgH) div Rect.Bottom) * ImgItemHeight, 2, nil, false, nil); |
AW: Ordnung muss sein (LaunchBar)
Hab da jetzt noch mal reingeschaut und das unter Windows 10 zum Laufen gebracht:
uShortCut.pas
Delphi-Quellcode:
Allerdings muss man dann die OTTB.config aus dem Post oben löschen (sie führt zu einem Crash weil wohl ein paar der Links nicht vorhanden oder ungültig sind).
procedure TShortCut.CreateShortCut(WinHandle: HWND);
... begin .. if Win32MajorVersion >= 10 then begin Prop.ProgManHandle := 0; repeat Prop.ProgManHandle := FindWindowEx(0, Prop.ProgManHandle, 'WorkerW', ''); Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', ''); until (Prop.ListViewHandle<>0) Or (Prop.ProgManHandle = 0); End else begin Prop.ProgManHandle := FindWindow('Progman', 'Program Manager'); Prop.ListViewHandle := FindWindowEx(Prop.ProgManHandle, 0, 'SHELLDLL_DefView', ''); end; Prop.ListViewHandle := FindWindowEx(Prop.ListViewHandle, 0, 'SysListView32', 'FolderView'); ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0); ... |
AW: Ordnung muss sein (LaunchBar)
Zitat:
Ich muss den Backlash hier anhängen warum auch immer sonst geht es nicht. Werde es ändern ;) Und neue Version hochladen. Zitat:
Zitat:
Ist das gleiche Menu wie hier. ![]() Was mich mal interessieren würde hängt sich bei dir die IDE beim Debuggen des Menüs auf? 1. Ich setze einen Breakpoint bei, in WM_DRAWITEM:
Delphi-Quellcode:
jetzt steppe ich eine Zeile weiter.
if ImgBack = 0 then
ImgBack := GDIP_CreateImageFromFile(FolderResource + 'Menu\MEN_Center.png'); Drücke ich jetzt den grünen Pfeil Start(F9)) dann hängt sich die komplette IDE auf. Keine Ahnung ob das nur unter D2010 auftritt oder auch woanders. Wenn woanders! Dann ist da noch irgendetwas faul im Code was die IDE nicht verträgt. (Oder Thread Problem) was unter umständen dieses Problem verursacht. gruss |
AW: Ordnung muss sein (LaunchBar)
Zitat:
Das muss so laufen und tut es auch so wie man hört. Denn @jaenicke verwendet auch W10 das kann nicht unterschiedlich sein. Trotzdem Danke! gruss |
AW: Ordnung muss sein (LaunchBar)
Das mit dem Backslash hat bei mir überhaupt keine Auswirkung unter Windows 10. Ob mit oder ohne Doppeltem Backslash spielt keine Rolle, das eigentliche Problem liegt darin, das unter Windows 10 der 'SHELLDLL_DefView' nicht mehr unter 'Progman' liegt sondern in einem Fenster der Klasse "WorkerW".
Solange also die Liste nicht gefunden wird der Code unter:
Delphi-Quellcode:
erst gar nicht ausgeführt!
ItemCount := SendMessage(Prop.ListViewHandle, LVM_GETITEMCOUNT, 0, 0);
if ItemCount <> 0 then begin |
AW: Ordnung muss sein (LaunchBar)
Zitat:
Ist aber irgendwie fraglich denn bei den anderen Leuten mit W10 funktioniert es doch auch. Es sei denn die fahren alle in einer VM (Wie sich das dort verhält kann ich nicht mit Bestimmtheit sagen). Neue Version hochgeladen. IncludeTrailingPathDelimiter hinzugefügt. gruss |
AW: Ordnung muss sein (LaunchBar)
Hier noch eine andere Version die auf Klassen basiert. (Mache ich nicht gern unter NON-VLC)
Also alle Funktionen in uMain wurden zur Klasse TMainApp hinzugefügt um das Maximum an Globalen Variablen zu reduzieren. Wenn euch das lieber ist werde ich diese als Arbeitskopie verwenden und darauf weiter aufbauen. Das obige Archiv wird in dem Fall ersetzt. Ok keine Mitteilung egal werde es trotzdem ersetzen. gruss |
AW: Ordnung muss sein (LaunchBar)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
Zitat:
Anhang 47542 Ich habe aber gelesen, dass andere seit Windows Vista ebenfalls dieses Problem haben. Viele gehen daher alle WorkerW Fenster durch, wenn der Weg über Progman nicht erfolgreich war und suchen darin nach der ListView. Wenn, reicht jedenfalls nicht einer der Wege. Seit Vista ist beides möglich. Es scheint etwas damit zu tun zu haben, ob Aero aktiviert ist usw. Zitat:
Zitat:
![]() Dann ist auch gleich die Versionshistory usw. dabei: ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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 by Thomas Breitkreuz