Autor Beitrag
Klaus Müller
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58
Erhaltene Danke: 1

W2000,XP,W2k2S,W2k3S,S2k7S
Delphi XP
BeitragVerfasst: Do 20.06.24 12:14 
Nach mehreren Versuchen habe ich das Problem nun etwas eingrenzen können.
Es wird eine Batch Datei erstellt die dann ausgeführt wird.
Die Batch Datei verbindet das Netzlaufwerk mit:
ausblenden Quelltext
1:
Net Use X: https://webdav.hidrive.strato.com:443 /user:xxx password /persistent:no					

Dies Datei wird dann mit
ausblenden Delphi-Quelltext
1:
RunProcessAndWait(Dir_TempBS  + C_BatTempFileName, false);					

ausgeführt, wobei „RunProcessAndWait“ hier aus dem Forum ist.
Man kann aber auch „ShellExecute” verwenden, was zu dem gleichen Ergebnis führt.
Das Problem:
Wenn ich das Batch im Programm mit einen der beiden Befehle starte funktioniert es nicht!
Das Laufwerk wird nicht verbunden, wenn ich den Batch aber manuell (mit Doppelklick) selber starte geht es schon.
Hier scheint ein Windows Update die Möglichkeit aus dem Programm heraus einen Batch zu starten zu verhindern.
Wie bekomme ich das wieder zum Laufen?

Moderiert von user profile iconTh69: Code-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 20.06.24 20:00 
Warum wird hier überhaupt eine Batch Datei verwendet und nicht direkt die passende WinAPI wenn man schon in einer systemnahen Sprache unterwegs ist?
Ich könnte mir schon vorstellen das du so Probleme mit dem Persistent:No bekommst aber eigentlich auch nicht erst mit Win11.
Seit UAC ist nicht mehr immer klar beim starten eines Prozesses ob das der selbe UserContext (der selbe Login) ist und wenn es nicht persistiert ist es für die andere Sitzung nicht mehr da.
Möglicherweise hilft es den Batch über die CreateProcessAsUser API zu starten um sicherzustellen das der User Context gleich bleibt.
Oder es hilft deine APP mal mit Adminrechten zu starten ich glaube aber nicht wirklich das das zusamenhängt.

Einfach eine der WNetAddConnection Varianten direkt aufrufen scheint irgendwie am sinnvolsten. Im Zweifel muß dir da aber jemand anderes helfen bei Delphicode Details bin ich raus ;)

Edit: Eigentlich schonmal probiert das persistent:no wegzulassen? Zumindest wissen wir dann das mein Näschen die richtig Spur gewittert hat.
Klaus Müller
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58
Erhaltene Danke: 1

W2000,XP,W2k2S,W2k3S,S2k7S
Delphi XP
BeitragVerfasst: Mo 24.06.24 20:20 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Warum wird hier überhaupt eine Batch Datei verwendet und nicht direkt die passende WinAPI wenn man schon in einer systemnahen Sprache unterwegs ist?

Ich könnte mir schon vorstellen das du so Probleme mit dem Persistent:No bekommst aber eigentlich auch nicht erst mit Win11.

--> Habe ich auch schon weggelassen bring leider nicht.

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Seit UAC ist nicht mehr immer klar beim starten eines Prozesses ob das der selbe UserContext (der selbe Login) ist und wenn es nicht persistiert ist es für die andere Sitzung nicht mehr da.

Möglicherweise hilft es den Batch über die CreateProcessAsUser API zu starten um sicherzustellen das der User Context gleich bleibt.
Oder es hilft deine APP mal mit Adminrechten zu starten ich glaube aber nicht wirklich das das zusamenhängt.

--> CreateProcessAsUser ist ein Idee muss ich noch probieren

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Einfach eine der WNetAddConnection Varianten direkt aufrufen scheint irgendwie am sinnvolsten. Im Zweifel muß dir da aber jemand anderes helfen bei Delphicode Details bin ich raus ;)

--> Mit WNetAddConnection bin ich gerade am testen habe es leider noch nicht am Laufen.

user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Eigentlich schonmal probiert das persistent:no wegzulassen? Zumindest wissen wir dann das mein Näschen die richtig Spur gewittert hat.

Zur Info habe ich auch schon weggelassen, kein Unterschied, das Laufwerk wird nicht verbunden.

Moderiert von user profile iconTh69: Zitate und Antworten voneinander getrennt
Moderiert von user profile iconTh69: Beiträge zusammengefasst