-
Forum: Win32/Win64 API (native code)
by CodeX,
31. Aug 2015
Ich habe eine Anfrage im Technet gestellt. Seit einer Woche leider ohne nennenswerte Rückmeldung.
Eine direktere Kontaktmöglichkeit habe ich nicht gefunden.
Möchte man über einen "Supportfall" gehen, kostet das entweder 299€ oder man hat ein MSDN- oder Technet-Abonnement. :(
Hat jemand so ein Abo, über das er den Fall für mich einreichen könnte?
-
Forum: Win32/Win64 API (native code)
by CodeX,
23. Aug 2015
Ich möchte zwar weiterhin nicht aufgeben, aber ein ganz anderer Lösungsweg wäre ja vielleicht, das an Microsoft heranzutragen, sodass der Fehler behoben werden könnte!? Kann jemand einen möglichst direkten Weg hierfür empfehlen? Per MSDN? Per Insider Programm (Win10)? Direkte Kontakte?
-
Forum: Win32/Win64 API (native code)
by CodeX,
21. Aug 2015
Vielen herzlichen Dank für deine Analyse, HolgerX!
Feature oder Bug:
Wenn man ein Netzlaufwerk dieser Konstellation trennt (mit dem Wizzard von Windows per Explorer-Hauptmenü > Extras > Trennen, oder alternativ per net use oder API), dann verbleibt die Verbindung wie schon bekannt sichtbar. Verbindet man jetzt ein neues Netzlaufwerk auf diesen Laufwerksbuchstaben (was ja problemlos geht, auch...
-
Forum: Win32/Win64 API (native code)
by CodeX,
19. Aug 2015
Ich hatte mich wohl irgendwie in eine Richtung verrannt.
Bei der unitmask lag ich auch noch komplett falsch...
Vielen Dank für deine Unterstützung! :)
Mit Deiner Version kann ich tatsächlich Laufwerke ausblenden. Bei mir bleiben diese auch bei einem F5 weg. Wenn ich den Explorer abschieße und wieder starte, sind die lokalen Laufwerke (korrekterweise) wieder da. Habe es soeben auf 2 Systemen...
-
Forum: Win32/Win64 API (native code)
by CodeX,
19. Aug 2015
Oh, OK ... das hatte ich irgendwie falsch verstanden.
Dann ist 4 = D: in deinem Beispiel vorhin aber auch falsch. ;)
Scheinbar knallts aber bei jeder Zuweisung der Werte von pvol:
Access violation at address 0053CFAD in module 'disconnect.exe'. Write of address 00000000.
Muss das irgendwie noch initialisiert werden? pvol ist erstmal nur nil.
-
Forum: Win32/Win64 API (native code)
by CodeX,
19. Aug 2015
Danke, aber wo kommt das DEV_BROADCAST_VOLUME denn hin?
const
DBT_DEVICEREMOVECOMPLETE = 32772;
DBTF_NET = 2;
var
phdr: PDevBroadcastHdr;
pvol: PDevBroadcastVolume;
begin
pvol.dbcv_size := SizeOf(DEV_BROADCAST_VOLUME);
pvol.dbcv_devicetype := DBT_DEVTYP_VOLUME;
-
Forum: Win32/Win64 API (native code)
by CodeX,
19. Aug 2015
Ich habe bemerkt, dass die Versendung der DBT_DEVICEREMOVECOMPLETE Nachricht zumindest unvollständig sein dürfte. Keine Ahnung, ob das wirklich das Problem ist, aber ich würde das zumindest doch gerne in korrekter Form ausprobieren.
Ich habe das jetzt so versucht:
const
DBT_DEVICEREMOVECOMPLETE = 32772;
var
phdr: PDevBroadcastHdr; //Aus JvComputerInfoEx
begin
phdr.dbch_size :=...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Der Grund, warum sich ein manuell entferntes Laufwerk in allen Explorer-Fenstern gleichzeitig aktualisiert, dürfte alleine diese Message hier sein:
<000001> 0001015E S WM_DEVICECHANGE Event:DBT_DEVICEREMOVECOMPLETE dwData:00D6F95C
<000002> 0001015E R WM_DEVICECHANGE fComplete:True
Ich glaube, dass das dem hier entsprechen müsste: SendMessage(HWND_BROADCAST, WM_DEVICECHANGE,...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Stimmt, das könnte weiterhelfen. Werde ich untersuchen.
Erster Teil der Frage: Ja
Zweiter Teil: Bin mir unschlüssig, ob ich deine Frage verstehe. Grunsätzlich ist es so, dass nur der Explorer die verwaisten Laufwerke anzeigt. Nach dem Trennen tauchen diese in anderen Programmen nicht mehr auf. Man kann diese Laufwerke auch direkt im Anschluss per "Netzlaufwerk verbinden" neu zuweisen (der...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
@Dalai: Ich habe beide Varianten ausprobiert. Die aus dem Hauptmenü öffnet den gleichen Wizzard wie der Explorer. Bei beiden funktioniert es nicht (siehe auch meine Auflistung im letzten Beitrag). Der Rechtsklick entfernt das Icon auch nicht. Ich nehme an, dass das Kontextmenü auf die gleiche Weise aufgerufen wird, wie ich es zuvor schon versucht habe (ebenfalls siehe Auflistung).
Wie kann...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Wie sollte das gehen?
Das Ausführen des Explorers unter einem anderen lokalen Benutzer hat bei einem kurzen Test nicht funktioniert.
Gleiches Fehlverhalten bei:
Total Commander
FileZilla
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Nach einer Stunde mit dem API Monitor weiß ich nun zumindest, dass net.exe bei net use z: /disconnect intern auch einfach nur WNetCancelConnection2 aufruft. Das erklärt das gleiche Resultat. Beim Trennen über den Explorer habe ich den Aufruf dieser Funktion allerdings nicht gefunden. Scheinbar macht er das also irgendwie anders!? Das Problem ist, dass die explorer.exe auch noch für tausend andere...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Und welche Einstellungen genau? "Additional Windows"? Welche Auswahl bei "Messages"?
Und der zweite Teil meiner Frage nach der Deutung der zweiten Message?
Mensch, jetzt lass Dir doch nicht alles aus der Nase ziehen. :-D
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Also ich musste zwar schmunzeln, aber wirklich schlau werde ich daraus trotzdem nicht. Kannst Du Dein Vorgehen bitte kurz Schritt-für-Schritt beschreiben? Alternativ kurzes Video? Oder Screensharing? Das wäre für die Zukunft sicherlich sehr hilfreich.
Aber unabhängig davon: Wenn ich Dein Ergebnis richtig deute, hast Du genau 2 Messages mitgeschnitten, die jeweils gesendet und empfangen werden....
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Dann scheine ich das falsch verwendet zu haben. Hast du das Fadenkreuz auf ein Explorer-Fenster gezogen und dort dann das Laufwerk getrennt? Ich wurde von Messages erschlagen und wusste gar nicht wonach ich filtern soll.
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Wo hast Du das jetzt her?
Ich habe bereits folgende Benachrichtigungen versucht:
SHChangeNotify(SHCNE_DRIVEREMOVED, SHCNF_PATH, PAnsiChar('Z:\'), nil);
SendMessage(HWND_BROADCAST, WM_DEVICECHANGE, DBT_DEVICEREMOVECOMPLETE, 0);
SendMessage(HWND_BROADCAST, WM_DEVICECHANGE, DBT_CONFIGCHANGED, 0);
Hat aber keinen Unterschied gemacht. Bzw. in manchen Tests hat die SHCNE_DRIVEREMOVED das...
-
Forum: Win32/Win64 API (native code)
by CodeX,
18. Aug 2015
Wie genau soll das gehen? Ich habe schon versucht, mit Spy++ und Winspector draufzuschauen, aber das hat mich leider nicht weitergebracht.
-
Forum: Win32/Win64 API (native code)
by CodeX,
17. Aug 2015
Kurzfassung:
Man kann Netzlaufwerke, die beim Einloggen in Windows nicht verfügbar waren, anschließend per Code nicht mehr trennen bzw. entfernen. Manuell per Rechtsklick im Explorer geht dies jedoch.
Gesucht werden eine Erklärung und ein Workaround für diesen Bug.
Anleitung zum Reproduzieren (Windows XP / 7 / 8.1 / 10):
Netzlaufwerk persistent (!) verbinden.
(„Verbindung bei Anmeldung...