VB 4/6- und VBA-Forum - Beitragsübersicht -
ThemaVB6: TakeOwnership in VB6 möglich? Wenn ja, wie?
Von Michael
Datum 29. September 2016 um 10:00:36
Frage Guten Tag,

ich habe ein Problem und komme einfach nicht auf die Lösung.
Seit mehreren Wochen habe ich im Internet nach einer Lösung gesucht, aber keine passende gefunden. Klar, für VB.NET gibt es bereits einfache, aber umfangreiche Lösungen.
Zudem gibt es fertige Programme, die das Problem lösen. Das mag ich aber nicht.

Zum einen möchte ich lernen und das "wie" verstehen und zum anderen möchte ich
eine einfache Lösung für/in VB6 haben bzw. erstellen. VB6 ist z.B. viel schneller und man muss dafür nicht unendlich viele Runtimes/Frameworks usw. installieren. Zudem ist es für meinen Eigenbedarf, sodass ich, nur um ein kleines Programm ausführen zu können, nicht extra deswegen ein Net.Framework installieren möchte. Freilich sagen viele, dass bei Windows 7 schon das Passende dabei ist, dem ist aber nicht immer so. Manchmal wird ein höheres Framework benötigt.

Kurzum:
Ich suche ein Tutorial, eine Lösung oder einen Link.
Beim MSDN finde ich viel für C++, C# und .NET, aber leider nicht für VB6.
Wie kann man bequem, schnell und einfach TakeOWnership in VB6 umsetzen?

Oder anders gefragt: Kann man .NET Code bequem und einfach in VB6 umwandeln?

Mein Vorhaben:
Ich möchte ein kleines Tool/Programm schreiben, um meine 7er Lizenz zu sichern.
Sollte ich einmal neu installieren müssen, so kann ich alles bequem kopieren/einfügen
und manuell registrieren. Bisher habe ich dies stets manuell (Protection Server stoppen, Dateien löschen, registrierte Dateien einfügen, Protection Server starten, Key bei cmd.exe eingeben & aktivieren) getan. Nutze ich "Unlocker", so muss ich nicht einmal den Protection Server stoppen und erneut starten. Kurzum: Mir ging es um eine manuelle Aktivierung.
Diesen Prozess habe ich nun in VB6 umgesetzt, aber es geht nur bedingt.
Klar, die Kommandozeile aufrufen und Parameter übergeben geht schon.
Also den Protection Server starten/stoppen und die Aktivierungsdaten übergeben.
Das Problem ist eher, dass ich zwar "manuell" die alten Daten per Hand, wenn der Protection Server gestoppt wurde, oder brutal per Unlocker löschen kann, dies aber per VB6 nicht geht,
da mir stets "Permission Denied" angezeigt wird. Entweder habe ich keinen Zugriff auf die Datei bzw. den Ordner oder es erscheint die Meldung, dass ich keine Berechtigungen habe.
FSO.DeleteFile und die DeleteFile Funktion per API versagen hier total.

Ich habe mich informiert und bei den Eigenschaften herausgefunden, dass der Administrator, User usw. eingeschränkte Rechte haben. Ist ja klar. Der "TrustedInstaller" hat volle REchte.

Als Anfänger habe ich zwar beim MSDN etwas gefunden, aber mit C++, C#, VB.NET usw. kann ich nichts anfangen. Ich konnte herauslesen, dass es um "TakeOwnership" geht und man irgendwie Rechte/Berechtigungen übertragen oder gar setzen kann. Nur, wie geht das mit VB6?

Eine brutale Löschmethode würde auch gehen^^ Kill oder del gehen nicht ;-(

Da ich wissbegierig bin, interessiert mich natürlich eine ordentliche Programmierung.

Online bin ich auf ein paar CMD Kommandos gestoßen, die allerdings auch nicht funktionieren.
In VB6 habe ich die Parameter nebst File an die cmd.exe gegeben (Shell Aufruf), aber funktioniert auch nicht. Dazu habe ich auch etwas bei der MSDN bzw. bei Microsoft gefunden,
aber es tut sich nicht.

Kurios ist zudem, dass ich selbst dann die Datei nicht löschen kann, wenn ich die Rechte übergeben oder gesetzt habe. Dazu habe ich mir einmal das Programm "TakeOwnership.exe" heruntergeladen und die Dateiberechtigung geändert. Manuell kann ich das löschen, aber VB6 findet dennoch die Datei bzw. den Ordner nicht. VB.NET Sourcecodes gibt es genug, aber wie in VB6 implementieren? Geht das so einfach? Hier, bei Stackoverflow und bei PlanetSourceCode habe ich nichts gefunden. Es gibt zwar viele VB6 Unlocker und auch vermeintliche "OWnership" Sachen, aber haut nicht hin.

Sprichtwörtlich bin ich mit meinem LATEIN (hatte ich in der Schule auch abgewählt^^) am Ende und benötige nun kompetente Hilfe.

Stichworte, Sourcecodes, Erklärungen, Tuts, Anleitungen, Hilfe usw. sind stets willkommen.
Gebe ich bei Google "VB6 TakeOwnership" ein, dann kommen viele .NET und C++ Sachen.

Selbst die hoch angepriesenen cmd.exe Sachen gehen nicht.
Shell "cmd.exe /C takeown /f C:\Datei1.txt && icacls C:\Datei1.txt /grant administrators:F"
Der Pfad und die Datei sind nur als Beispiel gedacht. Richtige Dateien liegen natürlich
im System32 und SysWow64 Ordner.


Wer kann und mag helfen?

Danke


Gruß

Michael
Antwort:
Von Frank
Datum 10. Oktober 2016 um 19:30:35
Antwort Hi

Nicht mal 5 sec in Google gesucht: How To Use Visual Basic to Programmatically Change Ownership of a File or
Folder


Mfg Frank
[ Antwort schreiben | Zurück zum VB 4/6- und VBA-Forum | Forum-Hilfe ]
Antworten
VB6: TakeOwnership in VB6 möglich? Wenn ja, wie? - Michael 29. September 2016 um 10:00:36
Re: TakeOwnership in VB6 möglich? Wenn ja, wie? - Frank 10. Oktober 2016 um 19:30:35

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  Visual Basic 6 (*.exe)
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB 4/6- und VBA-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015