AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Das Handle ist ungültig

Ein Thema von EWeiss · begonnen am 2. Mai 2018 · letzter Beitrag vom 6. Mai 2018
Antwort Antwort
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 03:50
Nur um das klar zu stellen ich brauche das Teil nicht und werde es auch nicht laden auch nicht im anderen Thread wo du es ebenfalls hochgeladen hast.
Im anderen Thread ist Source, da ich mir dachte das Du ihn verabscheust hab ich hier das Binary geladen.
Ok ich halt mich raus.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 08:30
Zitat:
Hängt aber vielleicht davon ab, welches Programm gerade Audio abspielt. Und wer sagt, dass Microsoft diese Umgebungsvariable in Zukunft dort belässt?
Ich muss dir recht geben die ist nicht gleich.
Auf einem Koreanischen System ist es %windir% siehe Shot... Hmm jetzt habe ich ein Problem mit den Icons.
Der DisplayName sollte mit deiner Funktion richtig angezeigt werden.

function SHLoadIndirectString(pszSource, psuOutBuf: PWideChar; const ccOutBuf: UINT; var ppvReserved: Pointer): HRESULT; stdcall; external SHLWAPIDLL;

Ja, ja genau diese uses hatte ich eingebunden aber D2010 hat nix gefunden..
Danke. Für dein Schnipsel werde es verwenden in umbenannter Form.

Zitat:
Im anderen Thread ist Source, da ich mir dachte das Du ihn verabscheust hab ich hier das Binary geladen.
Sei mir nicht böse aber ich möchte gerne meine Probleme auf anderer Basis lösen (selbst erarbeiten, mein bisschen Hirn selbst bemühen)

gruss

Geändert von EWeiss (11. Jul 2019 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#3

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 15:59
Hmm jetzt habe ich ein Problem mit den Icons.
Warum? Inwiefern? Hast du den von mir geschilderten Weg ausprobiert, und wenn ja, was war das Ergebnis? Momentan wüsste ich nicht, warum eine Extraktion eines Pfads aus einem indirekten Ressourcen-Strings und dem anschließenden Expandieren von Umgebungsvariablen scheitern sollte.

Zitat:
Ja, ja genau diese uses hatte ich eingebunden aber D2010 hat nix gefunden..
Was muss Delphi denn da finden *kopfkratz*? Wenn die Konstante der DLL nicht definiert ist, kann man die noch nachpflegen, aber sonst besteht die Deklaration doch nur aus Standardtypen.

PS: Wusste gar nicht, dass es Windows-Systeme mit einem anderen Pfadtrenner als dem Backslash gibt. Interessant.

Grüße
Dalai
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
992 Beiträge
 
Delphi 6 Professional
 
#4

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 18:10
Hmm..

PS: Wusste gar nicht, dass es Windows-Systeme mit einem anderen Pfadtrenner als dem Backslash gibt. Interessant.
Windows (zumindestens in den neueren Versionen) kann in den meisten FileAPIs mit '/' und '\' als PathDelimeter umgehen, nur wenn diese im String gemischt werden, kann es zu Problemen kommen.
Dies hat damit zu tun, das eine URL oder ein Dateiname intern eigentlich gleich behandelt werden.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 18:37
Zitat:
Warum? Inwiefern? Hast du den von mir geschilderten Weg ausprobiert, und wenn ja, was war das Ergebnis? Momentan wüsste ich nicht, warum eine Extraktion eines Pfads aus einem indirekten Ressourcen-Strings und dem anschließenden Expandieren von Umgebungsvariablen scheitern sollte.
Ganz einfach..
DisplayName wurde mit deiner Funktion bearbeitet.
Das heißt egal welches Windows System welchen String übergibt. %windir%, %SystemRoot%, %futz%
Deine Funktion den richtigen Pfad zurück gibt vorausgesetzt er existiert in der Realität.

Nun! Die kann ich aber für das Icon nicht verwenden.
Also nutze ich jetzt meine Extrakt Routine mit %SystemRoot% und ein andere hat aber %Windir% was passiert?
Richtig das Icon wird falsch angezeigt oder hast du das nicht gesehen auf dem Screenshot?
Zitat:
Was muss Delphi denn da finden *kopfkratz*? Wenn die Konstante der DLL nicht definiert ist, kann man die noch nachpflegen
Logisch darum geht es gar nicht sondern das es diese Funktion in den Uses nicht gibt.
Langsam sollten die ihre Bibliotheken mal aktualisieren.
Sonst kann man direkt wieder nach VB6 zurück gehen da musste man auch alle API's zusammen suchen.

Zitat:
PS: Wusste gar nicht, dass es Windows-Systeme mit einem anderen Pfadtrenner als dem Backslash gibt. Interessant.
Man lernt halt immer wieder dazu

if SHLoadIndirectString(PWideChar(IconPfad), Lbuf, Length(Lbuf), Pointer(nil^)) = S_OK then
gibt zurück = '' = nothing.
Weil der IconPfad zur IconResource keinen string enthält ist ja auch logisch da liegt ein Icon.-

gruss

Geändert von EWeiss ( 6. Mai 2018 um 18:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#6

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 18:56
@HolgerX:
Schau mal auf die von Emil geposteten Bilder - es geht nicht um Slash und Backslash sondern um ein völlig anderes Zeichen auf dem koreanischen System.

Deine Funktion den richtigen Pfad zurück gibt vorausgesetzt er existiert in der Realität.
Richtig, wenn auch nicht den Pfad sondern den Inhalt des Ressourcen-Strings.

Zitat:
Nun! Die kann ich aber für das Icon nicht verwenden.
Soweit klar.

Zitat:
Also nutze ich jetzt meine Extrakt Routine mit %SystemRoot% und ein andere hat aber %Windir% was passiert?
Richtig das Icon wird falsch angezeigt oder hast du das nicht gesehen auf dem Screenshot?
Hab ich nicht drauf geachtet, weil ich annahm, dass du den von mit vorgeschlagenen Weg mal ausprobierst. Dann ist es nämlich völlig egal, ob, welche und wieviele Umgebungsvariablen in dem indirekten Ressourcen-String enthalten sind - ExpandEnvironmentStrings expandiert einfach alle. Anders ausgedrückt: StringReplace für Umgebungsvariablen ist eine dumme Idee.

Zitat:
Logisch darum geht es gar nicht sondern das es diese Funktion in den Uses nicht gibt. Langsam sollten die ihre Bibliotheken mal aktualisieren.
Nun, nicht alle Programmierumgebungen können ausnahmslos alle API-Funktionen deklarieren. Ich hab die Deklaration auch nur von den JEDIs geguttenbergt, wenn ich mich recht erinnere. Und letztlich kann man eine Deklaration einer API-Funktion auch selber schreiben, wenn es nirgends eine gibt, auch wenn das unter Umständen manchmal etwas Hirnschmalz erfordert. Keine Ahnung, nach welchen Kriterien Emba die Units mit Leben füllt, und entscheiden, ob und welche Funktionen aufgenommen werden oder nicht. Ja, es wäre schön, wenn (fast) alles vordefiniert wäre, aber weil ich weiß, dass das einfach nicht möglich ist, rege ich mich da nicht auf.

Grüße
Dalai

Geändert von Dalai ( 6. Mai 2018 um 18:58 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Das Handle ist ungültig

  Alt 6. Mai 2018, 19:00
Zitat:
in dem indirekten Ressourcen-String enthalten sind
Ich weiß nicht ob wir aneinander vorbeireden.

Ich verwende deine Funktion aber sie nutzt mir für den IconPfad nichts.

Weil ich hier nach einem Icon suche nicht nach einem String in der Ressourcen Datei.
Die API wird zwar den Pfad %Windir%\System32 intern richtig verarbeiten gibt aber nichts zurück weil die gesamte API den Ressourcenstring
als Rückgabe beinhaltet.

Diese gibt mir wie schon gesagt nix zurück.
Glaube aber es liegt nicht am Koreanischen System sondern an der Windows Version er verwendet W10
Scheint das die Umgebungsvariable dort geändert wurde.
Von SystemRoot nach Windir

Was ich also benötige ist eine API welche die Umgebungsvariable egal welche ich übergebe als
korrekten Pfad zurückgibt ohne das ich den String selbst extrahieren muss.
Das dürfte schwer sein mit der angehängten ID des Icon OK die könnte ich notfalls wegmachen.

gruss

Geändert von EWeiss ( 6. Mai 2018 um 19:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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