Laden...

CMD, Befehlssatz

Erstellt von wizer vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.379 Views
W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren
CMD, Befehlssatz

Hallo ich würde gerne den Befehlssatz "Rundll32.exe advapi32.dll,ProcessIdleTasks" in mein Programm bei klick auf einen Button ausführen. Wie kann ich das machen? Normalerweise gibt man das bei Start - Ausführen ein.

Habs schon mit VBScript probiert. Da kommt aber immer ein Fehler außerdem weiß ich nicht wie man ein solches Script z.B. "VBScript1.vbs" im Projekt ausführen kann. Ohne mit StartupPath, ich möchte das ganze nur mit .exe realisieren. Wie könnte das funktionieren?

mfg wizer

1.378 Beiträge seit 2006
vor 16 Jahren

So wie ich das verstanden habe, brauchst du nicht mehr als eine .bat Datei.

Dazu öffnest du Notepad, schreibst deine Zeile hinein "Rundll32.exe advapi32.dll,ProcessIdleTasks" und speicherst sie als "irgendwas.bat" ab.

Lg XXX

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wizer,

Da kommt aber immer ein Fehler

und wir sollen den jetzt raten, oder was? [Hinweis] Wie poste ich richtig? Punkt 5.

herbivore

830 Beiträge seit 2005
vor 16 Jahren

Und dann das ganze via


System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = @"<Pfad>\Test.bat";
proc.Start();

aufrufen.

Gruss
Friedel

Ohne Ziel ist auch der Weg egal.

W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren

Ja sorry, für den ungenauen Post. Ich weiß mit .bat geht es aber ich wollte dass das Programm den Code selbst ausführt, d.h. ohne Hilfe von außenstehenden .bat Dateien oder anderem.

Fehler: Das war einfach eine FileNotFound-Exception, weil ich nicht weiß wie ich die ins Programm bringe ohne die gespeicherte datei zu benützen!

Also ohne System.Diagnostic.Process.Start();

PS: Außerdem geht der Code in der .bat gar nicht, da er immer einen Fehler anzeigt, (nicht im VB sondern im Windows): Objekt erforderlich: advapi32.dll!
Obwohl der Code stimmt! (Wenn ich Rechtsklick - in der Konsole ausführen klicke dann geht es).

THX und mfg wizer

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wizer,

du musst die Process.Start-Methode mit zwei Parametern benutzen.

herbivore

W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren

Ok danke, versteh noch nicht ganz was du meinst. Aber könnte es so gehen? Meinst du die "Rundll32.exe advapi32.dll,ProcessIdleTasks" als Arguments?

System.Diagnostics.Process.Start("CMD.exe", "Rundll32.exe advapi32.dll,ProcessIdleTasks");
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wizer,

ich meine natürlich die Argumente von Rundll32.exe.

Process.Start("Rundll32.exe", "advapi32.dll,ProcessIdleTasks");

herbivore

W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren

ah ok. Was bedeutet leicht Rundll32.exe?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wizer,

hä?

herbivore

W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren

Ich wollte nur wissen, was Rundll32.exe eigentlich ist! Es steht überall mit advapi ... um Windows vor dem spielen noch arbeiten zu lassen für mehr Performance.

mfg wizer

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wizer,

Rundll32.exe ist ein Programm, mit dem man direkt eine Funktion aus einer Dll aufrufen und ausführen kann.

herbivore

W
wizer Themenstarter:in
196 Beiträge seit 2007
vor 16 Jahren

ok, danke. Hat mir sehr weiter geholfen. THX