Windows 7 - kopieren von Dateien in System32 / SysWOW64 usw.

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Windows 7 - kopieren von Dateien in System32 / SysWOW64 usw.

Beitrag von smateja »

Hallo zusammen,

glaub mir pfuscht die Benutzerkontensteuerung in PB beim kopieren von Datein nach C:\WINDOWS\SysWOW64\ gewaltig dazwischen.

Versucht mit folgenden Befehlen:

- CopyDirectory
- CopyFile

Hat es evtl schon jemand mit diversen Tricks geschaft hier DLL Dateien rein zu kopieren?

LG
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Windows 7 - kopieren von Dateien in System32 / SysWOW64

Beitrag von ts-soft »

Erstmal mußt Du die passende manifest Deinem Programm hinzufügen.
Mit Vista-User Modus bekommste schon mal die richtigen Ergebnisse,
wenn Kopieren usw. fehlschlägt, ohne wird oftmals Erfolg gemeldet, aber
die Dateien landen im Nirwana des Virtual Store.

Für das Kopieren nach System32 usw. ist der Admin-Modus anzufordern.
Mit 32-Bit Application die 32-Bit DLLs nach system32 kopieren und mit
64-Bit Application die 64-Bit DLLs auch nach system32 kopieren.

Mit 64-Bit Application kann man dann auch 32-Bit DLLs nach SysWOW64 kopieren.
Anders herum wirds dann schwierig :mrgreen:

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Re: Windows 7 - kopieren von Dateien in System32 / SysWOW64

Beitrag von smateja »

Mhmm - wenn ich jetzt aber lokaler Admin bin - und auch das Proggi mit rechtsklick eigenschaften - als admin ausführen starte - selbes Ergebniss - mmhm

Gibts nicht mal wieder so nen ultrageheimem API aufruf - der dann einfach das mit nativen PB kopier Befeheln zuläßt?

*hofft*
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Windows 7 - kopieren von Dateien in System32 / SysWOW64

Beitrag von ts-soft »

Es sollte alles funktionieren, wenn Du es so machste, wie ich es oben schrob.
Also nach SysWOW64 geht natürlich nicht. das existiert ja nicht so richtig :mrgreen:
Dann mußte schon die Redirection ausschalten:

Code: Alles auswählen

EnableExplicit

Prototype.i IsWow64Process(hProcess.i, Wow64Process.i)
Prototype.i Wow64EnableWow64FsRedirection(Wow64EnableRedirection.i)

Procedure.i DisableWow64FsRedirection(Flag.i)
  If OSVersion() >= #PB_OS_Windows_Vista
    Protected.i DLL = GetModuleHandle_("kernel32.dll")
    Protected.IsWow64Process IsWow64Process
    Protected.Wow64EnableWow64FsRedirection Wow64EnableWow64FsRedirection
    Protected.i IsWow64
    If DLL
      IsWow64Process = GetFunction(DLL, "IsWow64Process")
      Wow64EnableWow64FsRedirection = GetFunction(DLL, "Wow64EnableWow64FsRedirection")
      
      If IsWow64Process(GetCurrentProcess_(), @IsWow64)
        If IsWow64
          ProcedureReturn Wow64EnableWow64FsRedirection(Flag ! 1)
        EndIf
      EndIf
    EndIf
  EndIf
EndProcedure
Wenn die ausgeschaltet ist, darf Dein Programm aber keine DLLs laden oder benötigen, weil dann krachts!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Re: Windows 7 - kopieren von Dateien in System32 / SysWOW64

Beitrag von smateja »

Merci - das ja mal n tauger anfang.

Naja - Hauptproblem ist im Moment - oder warum die kopieraktion - ich versuche einen mysql odbc treiber von hand zu installieren -

gibt zwar n msi paket aber das mag sich nicht /Quiet /oder full unentendent installieren.
Jetzt die Idee die dlls von hand zu kopieren.

Zuerst nach c:\programm files\mysql <. dahin geht das kopieren ohne probleme

Das danach registrieren mit folgendem Tool aus dem myodbc pack funktioniert aber nicht so wie es soll:

ECHO Registering driver
myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=myodbc5.dll;SETUP=myodbc5S.dll"

Rückmeldung vom Tool - alles 1A funktioniert - jedoch unter der Verwaltung von ODBC ist weit und breit kein mysql treiber da :(


NAchtrag: Hat sich erledigt - auch hier Problematik mit den fehlenden Adminrechten. In den Compileroptionen - AdministratorModus anfordern angeklickert - nun gehts - NARF :)
PB 4.6 / 32 Bit / 64 Bit
Antworten