AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit BITS

Ein Thema von GreatCornholio · begonnen am 19. Sep 2016 · letzter Beitrag vom 26. Sep 2016
Antwort Antwort
GreatCornholio

Registriert seit: 19. Sep 2016
6 Beiträge
 
Delphi XE7 Professional
 
#1

AW: Probleme mit BITS

  Alt 23. Sep 2016, 15:25
So, jetzt ist leider das nächste Problem aufgetaucht.
Hat schon mal jemand erfolgreich einen Programmaufruf bei Beendigung des Downloads implementiert?
Also über die Funktion IBackgroundCopyJob2.SetNotifyCmdLine()?

Ich kann mir erfolgreich einen Zeiger auf das IBackgroundCopyJob2-Interface holen, SetNotifyCmdLine aufrufen, und bekomme immer OK zurück.
Aber wenn ich einen Download starte, das Programm beende und warte, passiert einfach nichts, das Kommando wird nicht ausgeführt.
Mit bitsadmin.exe /list kann ich den Fortschritt und die Fertigstellung des Downloads verfolgen.
Ich kann sogar mit bitsadmin /info {GUID} /verbose mein Kommando sehen:
Code:
GUID: {GUID} DISPLAY: 'Test'
TYPE: DOWNLOAD STATE: TRANSFERRED OWNER: ich
PRIORITY: HIGH FILES: 1 / 1 BYTES: 70517025 / 70517025
CREATION TIME: 23.09.2016 15:55:21 MODIFICATION TIME: 23.09.2016 15:57:00
COMPLETION TIME: 23.09.2016 15:57:00 ACL FLAGS:
NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 27
RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 0
PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL
DESCRIPTION:
JOB FILES:
        70517025 / 70517025 WORKING http://www.domain.de/MeinTestFile.zip -> D:\BITS Test\MeinTestFile.zip
NOTIFICATION COMMAND LINE: '"C:\Windows\System32\notepad.exe"'
owner MIC integrity level: MEDIUM
owner elevated ?           false

Peercaching flags
         Enable download from peers     :false
         Enable serving to peers        :false

CUSTOM HEADERS: NULL
Als CommandLine habe ich den Namen meines Programms (mit ParamStr(0)) und notepad.exe, jeweils mit und ohne Anführungszeichen verwendet.
Ich habe schon verschiedene Prioritäten verwendet, BG_JOB_PRIORITY_FOREGROUND und BG_JOB_PRIORITY_HIGH.
Die NotifyFlags vor und nach der CommandLine gesetzt.
Aber nichts funktioniert, obwohl es eigentlich funktionieren müsste...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.948 Beiträge
 
Delphi 12 Athens
 
#2

AW: Probleme mit BITS

  Alt 23. Sep 2016, 16:03
Ich hoffe dir ist klar, dass du ein von dort gestartetes Programm nicht in der Oberfläche sehen wirst. Denn das läuft im Systemkontext und nicht im Benutzerkontext.

Bist du sicher, dass das Programm nicht gestartet wird? Hast du einmal im Taskmanager geschaut? Oder ein Programm gestartet, das einfach nur eine Datei testweise in einem festgelegten Ordner ablegt?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
GreatCornholio

Registriert seit: 19. Sep 2016
6 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Probleme mit BITS

  Alt 23. Sep 2016, 16:29
Ja ich habe im Taskmanager nachgesehen, dort taucht nichts auf, auch nicht unter anderen Benutzern.

Ich hoffe dir ist klar, dass du ein von dort gestartetes Programm nicht in der Oberfläche sehen wirst. Denn das läuft im Systemkontext und nicht im Benutzerkontext.
Das hört sich aber schlecht an.
Ich will eigentlich das ursprünglich gestartete Programm wieder aufrufen.
Also ich starte Programm1.exe, starte den Download, schließe das Programm, und wenn der Download beendet ist soll automatisch Programm1.exe wieder gestartet werden und mir mitteilen dass der Download fertig ist.

Woher weißt du dass das gestartete Programm im Systemkontext läuft, hast du das selbst schon mal ausprobiert?
In der MSDN-Doku steht was anderes:
Zitat von MSDN:
Specifies a program to execute if the job enters the BG_JOB_STATE_ERROR or BG_JOB_STATE_TRANSFERRED state. BITS executes the program in the context of the user who called this method.
Ist hier ein Fehler in der MSDN?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.948 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme mit BITS

  Alt 23. Sep 2016, 20:33
Ja, ich hatte das mal ausprobiert. Allerdings wurde es da aus einem Dienst heraus gestartet. Wenn das den ursprünglichen Kontext laut MSDN nutzt, wird es so sein, das passt ja dazu. Dann habe ich mich da geirrt.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
GreatCornholio

Registriert seit: 19. Sep 2016
6 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Probleme mit BITS

  Alt 26. Sep 2016, 16:09
Ok, wenn du das mit einem Dienst verwendet hattest ist klar, dass es dann im Systemkontext läuft.
Scheint also zu passen.

Ich habe noch mal ein wenig rumgespielt und wscript ausprobiert mit einem kleinen Test-Script, auch Fehlanzeige.
Aber danke für den Hinweis!

Hast du vielleicht noch den Code, mit dem das damals bei dir gelaufen ist?
Dann könnte ich mal vergleichen was bei mir anders ist...
  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 13:35 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