VB: Anwendung mit niedriger priorität starten!

wArRiNgO

Grand Admiral Special
Mitglied seit
09.12.2001
Beiträge
2.864
Renomée
13
Standort
Germany
Hi Leute!

Möchte mit VB ein kleines Programm schreiben, welches mir erlaubt Anwendungen mit niedriger Priorität starten zu lassen. Da ich aber bisher in VB nur die Grundzüge kennengelernt hab, und kein Buch o.ä. da habe, weiß ich nicht so recht wie ich das verwirklichen kann.

Hoffentlich kann mir jemand helfen.

MfG

Warri
 
Das ist schonmal gut, nur ist da jetzt wieder die Frage des Einbindens in Visual Basic :)
 
Code:
Private Type STARTUPINFO
  cb As Long
  ' Die folgenden 3 Member können nicht As String definiert werden, weil VB
  ' die Member nach Datentypen sortiert und das API dadurch eine fehlerhafte
  ' Struktur erhalten würde.
  ' Einfach lpDesktop = StrPtr("bla") statt lpDesktop = "bla" verwenden
  lpReserved As Long
  lpDesktop As Long
  lpTitle As Long
  dwX As Long
  dwY As Long
  dwXSize As Long
  dwYSize As Long
  dwXCountChars As Long
  dwYCountChars As Long
  dwFillAttribute As Long
  dwFlags As Long
  ' selbes Problem: wir müssen die 2 Integers zusammenfassen
  ' WORD wShowWindow;
  ' WORD cbReserved2;
  wShowWindowAndReserved2 As Long
  lpReserved2 As Long
  hStdInput As Long
  hStdOutput As Long
  hStdError As Long
End Type

Private Type PROCESS_INFORMATION
  hProcess As Long
  hThread As Long
  dwProcessId As Long
  dwThreadId As Long
End Type

Private Declare Function CreateProcess Lib "kernel32.dll" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, ByRef lpStartupInfo As STARTUPINFO, ByRef lpProcessInformation As PROCESS_INFORMATION) As Long
Soweit die (hoffentlich richtige) Deklaration des ganzen Spaßes. Den Rest überlasse ich Dir und Google.;)
 
Wenn ich deine Anfrage richtig verstehe, müsste dir auch das hier helfen:
(zumindest unter WinXP):

sub Programm()
shell "start /LOW c:\windows\calc.exe"
end sub

Zum test:
Versuch mal Start-Ausführen-cmd [enter]
gib dann in dem Command-Fenster das hier ein: "start /LOW calc.exe"
und mach den Taskmanager offen. Der Taschenrechner läuft jetzt als Idle !
 
Sollte für Win2k sein, funktioniert aber leider nicht. "Start" wurde nicht gefunden. Muss ich das andere mal probieren.

Thx schonmal für die deklaration, da ich aber noch recht am anfang bin, muss ich mich wohl erstmal dransetzen wie es jetzt weiter geht. da hab ich nämlich derzeit noch keine Ahnung :)
 
In "Ausführen" kann es ja auch gar nicht funktionieren, du musst es in der DOS-konsole machen!!
 
Original geschrieben von Sebastian132
In "Ausführen" kann es ja auch gar nicht funktionieren, du musst es in der DOS-konsole machen!!

So isses !

c:\>start /LOW calc.exe [enter]
 
Na löl ich bin auch blöd :D

Jetzt muss ich das nur noch hin bekommen, wie ich bei VB die Pfadangabe mache. Praktisch das Datei->Öffnen was man kennt.

Hat da einer nen Tip??

Edit: Ich seh eh grad das VB dieses start /low gar nicht annimmt :(
 
Zuletzt bearbeitet:
Original geschrieben von wArRiNgO
Jetzt muss ich das nur noch hin bekommen, wie ich bei VB die Pfadangabe mache. Praktisch das Datei->Öffnen was man kennt.
Willst Du den CommonDialog "Datei öffnen" anzeigen, mit dem man eine Datei wählen kann? Da gibt's zum einen das MS CommonDialog Control, welches aber nicht unbedingt zu empfehlen ist. Zum anderen gibt's da im Web diverse Klassen, die das per API lösen. Bspw. die hier (von mir).
 
Ich habs anders gemacht. Batch Datei in den Ordner, verknüpfung gemacht,symbol geändert und siehe da, es geht :) und zwar bedeutend einfacher!!
 
Zurück
Oben Unten