Auto Copy, Auto Nochmal starten^^ [TUT gesucht]

09/15/2011 19:05 Optixrider#1
Hey.
ich suche ein TUT bzw. Source, das Automatisch eine .dll aus seinem Ordner in den system32-Ordner kopiert, damit die ganzen "Noobs" die sich damit nicht auskennen, nicht alles selber machen müssen (.dll in system32 verschieben).

Dann wenn es die .dll in den system32 Ordner verschoeben/kopiert hat, sollte sich das Programm am besten nochmal Automatisch starten.


Ich hoffe ich bekomme so schnell wie möglich eine Nette Antwort!
09/15/2011 19:35 Devil589#2
Es wäre ganz gut zu wissen in welcher Programmiersprache das ganze umgesetzt werden soll.
Zum verschieben von Dateien hat hier Microsoft eine ganz gute Erklärung + Source: [Only registered and activated users can see links. Click Here To Register...]

Dennoch musst du das Programm als Admin starten da du sonst keine Rechte hast um auf den System32 Ordner zuzugreifen (bzw. dein Programm).

See Ya!
09/15/2011 19:39 Optixrider#3
Quote:
Originally Posted by Devil589 View Post
Es wäre ganz gut zu wissen in welcher Programmiersprache das ganze umgesetzt werden soll.
Zum verschieben von Dateien hat hier Microsoft eine ganz gute Erklärung + Source: [Only registered and activated users can see links. Click Here To Register...]

Dennoch musst du das Programm als Admin starten da du sonst keine Rechte hast um auf den System32 Ordner zuzugreifen (bzw. dein Programm).

See Ya!
Leider Visual Basic 2010 Express, nicht C# :(
Aber trozdem DANKE für deine Hilfe!
09/15/2011 19:47 Devil589#4
Quote:
Originally Posted by Optixrider View Post
Leider Visual Basic 2010 Express, nicht C# :(
Aber trozdem DANKE für deine Hilfe!
Dann übersetze dir doch einfach den Code in Vb.net.
Das ist ja an sich kein Problem denn die Vorgehensweise ist die gleiche.

Und hier noch etwas womit du dein Programm neu starten kannst:

Code:
Dim startInfo As New ProcessStartInfo()
startInfo.FileName = Application.ExecutablePath
Process.Start(startInfo)
Process.GetCurrentProcess().Kill()
Bzw. es geht auch kürzer (C# Code):

Code:
Application.Restart();
See Ya!
09/15/2011 22:09 Optixrider#5
Quote:
Originally Posted by Devil589 View Post
Dann übersetze dir doch einfach den Code in Vb.net.
Das ist ja an sich kein Problem denn die Vorgehensweise ist die gleiche.

Und hier noch etwas womit du dein Programm neu starten kannst:

Code:
Dim startInfo As New ProcessStartInfo()
startInfo.FileName = Application.ExecutablePath
Process.Start(startInfo)
Process.GetCurrentProcess().Kill()
Bzw. es geht auch kürzer (C# Code):

Code:
Application.Restart();
See Ya!
Sänks :D
Nene, Thanks :awesome:
09/16/2011 22:30 mrapc#6
ABer hilft dir das es wird bei dem Code doch nichts verschoben.

eher
My.Computer.filesystem.copyfile (Application.startuppath + "/deine_DLL.dll")
09/16/2011 23:03 Devil589#7
Den Code den ich gepostet habe, ist für das neu starten der Anwendung da.
Zum verschieben habe ich ihm schon den Link (siehe oben) von Microsoft gegeben wo gezeigt wird wie man Dateien löschen, verschieben, kopieren kann.
09/17/2011 01:05 mrapc#8
Achso ja weil da C# stand war ich verwirrt
09/17/2011 01:19 krustx#9
Du bezeichnest andere als Noob und weißt selbst nicht, wie du Dateien verschieben kannst ??
C# und Vb.net unterscheiden sich nur syntaktisch, wenn du vb.net wirklich kannst, ist es kein Problem für dich den c# code zu lesen !
Dir sollte klar sein, dass du mit deinem Programm bei eingeschaltetem UAC und ohne Adminrechte keinen Zugriff auf das Win32 Verzeichnis hast! Wenn du deine DLLs ohne expliziten Pfad, also nur durch ihren Namen lädst, reicht es auch aus, wenn du die DLLs in dem gleichen Ordner unterbringt, wo auch dein Programm liegt.
Wenn es hier jemanden gibt, der sich nicht auskennt, dann bist du es.

1. überprüfen, ob die Dll schon vorhanden sind:
Quote:
dim sys32pfad = Environ("windir") & "\system32\"
dim dllName as string = "MyDll.dll"
if My.Computer.FileSystem.FileExists(sys32pfad & dllName) = false then
My.Computer.FileSystem.CopyFile("DLL_die_kopiert_w erden_soll.dll",sys32pfad & dllName)
end if
Das Neustarten der eigenen Anwendung ist in .net sehr einfach:
Quote:
dim PfadVonMeinemProgramm as string = Application.ExecutablePath
Process.Start(PfadVonMeinemProgramm)
oder auch
Quote:
Shell(PfadVonMeinemProgramm)
anschließend muss das eigene Programm beendet werden:
Quote:
me.Close 'wenn me die Form1 beschreibt
Application.Exit
end
gibt natürlich noch mehr Möglichkeiten.
09/18/2011 11:34 Optixrider#10
Quote:
Originally Posted by krustx View Post
Du bezeichnest andere als Noob und weißt selbst nicht, wie du Dateien verschieben kannst ??
C# und Vb.net unterscheiden sich nur syntaktisch, wenn du vb.net wirklich kannst, ist es kein Problem für dich den c# code zu lesen !
Dir sollte klar sein, dass du mit deinem Programm bei eingeschaltetem UAC und ohne Adminrechte keinen Zugriff auf das Win32 Verzeichnis hast! Wenn du deine DLLs ohne expliziten Pfad, also nur durch ihren Namen lädst, reicht es auch aus, wenn du die DLLs in dem gleichen Ordner unterbringt, wo auch dein Programm liegt.
Wenn es hier jemanden gibt, der sich nicht auskennt, dann bist du es.

1. überprüfen, ob die Dll schon vorhanden sind:

Das Neustarten der eigenen Anwendung ist in .net sehr einfach:

oder auch

anschließend muss das eigene Programm beendet werden:

gibt natürlich noch mehr Möglichkeiten.
Ich bezeichne andere nicht als Noob.
Warum habe ich denn die ' "" ' gemacht? :facepalm:
Außerdem meine ich mit "Noobs" diejenigen, die nicht wissen, wie man die .dll in den ordner verschiebt und nicht, wie man das Programmiert! :facepalm:

Trozdem gibts aber ein Danke für deine Hifle!