Parameter Ausführen in übergeben ? Shell; win32key

Moin. Ich möchte über schaltflächen ein paar programme starten. leider ist mir das bei 5 von 20 nicht direkt gelungen so dass ich hier mit einer verknüpfung arbeiten musste. Das soll sich nun ändern:smile:

Problem nr 1 das ich habe:

„C:\Programme\Nokia\Nokia Managers\AXC\jre\1_6_0\bin\javaw.exe“ -splash:AXC_Manager_splash.png -cp ./cl/cl.jar; -Dawt.useSystemAAFontSettings=on com.nokia.em.launcher.CLApplication -start AXC

Auszuführen in C:\Programme\Nokia\Nokia Managers\AXC

Wie kann ich sowas direkt aus VB starten ?

Problem nr 2 :
C:\DCStandalone\client\dc.vbs
Auszuführen in C:\DCStandalone\client

Danke mfg jonny

Hi Joe,

Ich möchte über schaltflächen ein paar programme
starten. leider ist mir das bei 5 von 20 nicht direkt gelungen
so dass ich hier mit einer verknüpfung arbeiten musste. Das
soll sich nun ändern:smile:

Problem nr 1 das ich habe:

„C:\Programme\Nokia\Nokia
Managers\AXC\jre\1_6_0\bin\javaw.exe“

Shell hast Du schon geschrieben, da sollte es kein Problem mit der Passwortübergabe gegeben haben.

-splash:AXC_Manager_splash.png -cp ./cl/cl.jar;
-Dawt.useSystemAAFontSettings=on
com.nokia.em.launcher.CLApplication -start AXC

Auszuführen in C:\Programme\Nokia\Nokia Managers\AXC

Wie man Shell verwendet und Parameter übergibt, scheinst Du ja zu wissen. Mit Leerzeichen im Pfad macht das Probleme, weil alles nach dem Leerzeichen als Parameter interpretiert wird.
Abhilfe schafft ein einzelnes CHR(34) vor dem String.

Handle = Shell (Chr(34) & „Pfad mit Leerzeichen Parameter“)

Wie kann ich sowas direkt aus VB starten ?

Problem nr 2 :
C:\DCStandalone\client\dc.vbs
Auszuführen in C:\DCStandalone\client

Da verstehe ich das Problem nicht.

Gruß Rainer

Joa, nochmal anders gefragt:
Was unterscheidet Shell vom win32keyword ?

Bestens Dank!!

Hi,

Joa, nochmal anders gefragt:
Was unterscheidet Shell vom win32keyword ?

da kann ich nicht helfen. win32keyword habe ich noch nie gehört.

Gruß Rainer

Was unterscheidet Shell vom win32keyword ?

da kann ich nicht helfen. win32keyword habe ich noch nie
gehört.

Hallo Rainer,

scheint eine (selbstgeschriebene?) Funktion zu sein die die API Shellexecute benutzt um lnk-Dateien zu starten.

Private Declare Function ShellExecute Lib „shell32.dll“ Alias „ShellExecuteA“ (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Function Win32Keyword(ByVal URL As String) As Long
ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
End Function

Sub Main()
Win32Keyword („c:\Microsoft Word.lnk“)
End Sub

Quelle:
http://www.google.de/url?sa=t&source=web&ct=res&cd=1…

Gruß
Reinhard

Hallo Reinhard,

scheint eine (selbstgeschriebene?) Funktion zu sein die die
API Shellexecute benutzt um lnk-Dateien zu starten.

aha, OK. Der Sinn erschließt sich mir allerdings nicht, da kann ich doch auch gleich selbst Shellexecute nehmen.

Gruß Rainer

Win32Keyword Lnk-Dateien starten shellexecute

scheint eine (selbstgeschriebene?) Funktion zu sein die die
API Shellexecute benutzt um lnk-Dateien zu starten.

aha, OK. Der Sinn erschließt sich mir allerdings nicht, da
kann ich doch auch gleich selbst Shellexecute nehmen.

Hallo Rainer,

ich habe mal für das Archiv den Betreff geändert, vielleicht freut das ja mal einen/eine.

Und ja, Sinn des Ganzen habe ich auch nicht verstanden, war mir aber nicht sicher ob ich da was übersehen habe was vielleicht Sinn macht um ShellExecute nicht direkt zu benutzen.

Gruß
Reinhard

Hallo Reinhard,

ich habe mal für das Archiv den Betreff geändert, vielleicht
freut das ja mal einen/eine.

danke! :smile: Ja, das wird ganz sicher helfen.

Gruß Rainer

AHa, Ok … hmpf :smile:
Ich kann also mit Shellexecute auch ein *.lnk öffnen… Da frage ich micht warum ich immer das win32keyword verwende … wahrscheinlich weil ich es nicht besser wusste…

Private Declare Function ShellExecute Lib „shell32.dll“ Alias _
„ShellExecuteA“ (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long

ich werde das testen und mich wieder melden
http://www.activevb.de/tipps/vb6tipps/tipp0416.html

Hi Joe,

Ich kann also mit Shellexecute auch ein *.lnk öffnen…

ich habe das noch nie versucht, nie gebraucht.

Da frage ich micht warum ich immer das win32keyword verwende …

Das verwendet ja auch nur Shellexecute, aber mit voreingestellten Parametern. Mit Shellexecute bist Du felxibler. Testen kann ich aber vor nächste Woche nichts, deshalb kein Code von mir. :smile: Ich sitze immer noch am iMac.

In den FAQ findest Du den Link zu API Guide. Ich kopiere meist auch nur von da und ändere etwas.

Gruß Rainer

hallo Rainer,

Testen kann ich aber vor nächste Woche nichts,
deshalb kein Code von mir. :smile: Ich sitze immer noch am iMac.

ich habe WinXP und VB5.0, schicke mir den Code wenn ich was testen soll in VB.

Gruß
Reinhard

Hallo Reinhard,

ich habe WinXP und VB5.0, schicke mir den Code wenn ich was
testen soll in VB.

was ich in der Deklaration von Shellexecute nicht aus dem Kopf weiß, ist der sinn von … ByVal lpOperation As String …

Die Funktion übergibt da nur einen leeren String. Was man damit mehr anfangen kann, wenn man Shellexecute direkt verwendet, weiß ich im Moment nicht. Der Rest ist klar, eine Variable für das zu startende Programm, eine für Parameter, also die zu übergenebde Datei, einer für den Pfad zum Programm, einer für die angabe, wie das Programm geöffnet werden soll, also mit oder ohne Focus, minimiert, normal oder maximiert.
Wozu man ein Handle angeben kann ist mir auch nicht klar. Vermutlich, falls das Programm schon läuft, um es nicht noch einmal zu starten sondern nur Parameter zu übergeben. Das ist aber nur geraten, wäre so etwas, was ich ausprobieren würde. :smile:

Gruß Rainer

soweit ist alles IO. Danke euch…

Es gab einen ganz einfachen weg aus einem Dateipfad nur den Pfad ohne datei anzeigen zu lassen… ich finde es aber gerade nicht…
also aus C:\Temp\Töömp\test.exe
würde ich gern den pfad haben…

Es gab einen ganz einfachen weg aus einem Dateipfad nur den
Pfad ohne datei anzeigen zu lassen… ich finde es aber gerade
nicht…
also aus C:\Temp\Töömp\test.exe
würde ich gern den pfad haben…

hallo Joe,

vielleicht so:

Sub tt()
Const PfadDatei As String = „C:\test\killall.exe“
MsgBox Left(PfadDatei, InStrRev(PfadDatei, „“) - 1)
End Sub

Und, du fragst hier häufig nach, was ja dein gutes Recht ist, ich blicke da aber nicht durch was du da so alles „Basteln“ willst.
Irgendwie sind das immer verschiedene Dinge wo man ohne ezug nicht dahintersteigt was du da vorhast.

Wenn es es sich also bei dir nicht um 20 Projekte handelt sondern nur um nur zwei größere, dann beschreib die mal, also die Ziele, Absichten, vielleicht kann dir da Rainer besser, also gezielter helfen.

Gruß
Reinhard

Hallo Rainer,

ich habe WinXP und VB5.0, schicke mir den Code wenn ich was
testen soll in VB.

was ich in der Deklaration von Shellexecute nicht aus dem Kopf
weiß, ist der sinn von … ByVal lpOperation As String …

Das besagt schon die Variable. Dort kannst du angeben, welche Operation ausgeführt werden soll!
Mal auf die schnelle aus der MSDN kopiert

edit

Launches an editor and opens the document for editing. If lpFile is not a document file, the function will fail.

explore

Explores a folder specified by lpFile.

find

Initiates a search beginning in the directory specified by lpDirectory.

open

Opens the item specified by the lpFile parameter. The item can be a file or folder.

print

Prints the file specified by lpFile. If lpFile is not a document file, the function fails.

NULL

In systems prior to Windows 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used.

In Windows 2000 and later, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.

Die Funktion übergibt da nur einen leeren String.

Dann wird automatisch die Operation „Open“ ausgeführt :wink:

Ich hatte hier glaube mal eine Funktion „LanchDocument“ geposet( mit netten Spielereien etc.). Dort wurde alles automatisch gemacht. Hast du sie nicht mit in die FAQ übernommen?

Gruß Rainer

MfG Alex

Hi Alex,

was ich in der Deklaration von Shellexecute nicht aus dem Kopf
weiß, ist der sinn von … ByVal lpOperation As String …

Das besagt schon die Variable. Dort kannst du angeben, welche
Operation ausgeführt werden soll!

OK …

Ahhh, OK, klar. :smile:

Die Funktion übergibt da nur einen leeren String.

Dann wird automatisch die Operation „Open“ ausgeführt :wink:

Ich hatte hier glaube mal eine Funktion „LanchDocument“
geposet( mit netten Spielereien etc.). Dort wurde alles
automatisch gemacht. Hast du sie nicht mit in die FAQ
übernommen?

Das habe ich bestimmt, aber wieder vergessen. :smile:
Was man nicht verwendet verschwindet wieder aus dem Gedächtnis. Ohne übung geht’s nicht.

Gruß Rainer

Ahoi,
es handelt sich um genau zu sein um 1 Projekt. Ein Tool was mir und meinen Kollegen die arbeit erleichtern soll und in einer älteren Version das auch schon tut.
Es ist eine Form mit mehreren Schaltflächen die erstmal nur programme starten … Das soll den Desktop etwas aufräumen. Dazu gibt es mehrere Suchfunktionen die Daten aus Exportieren Listen, also aus verschiedenen Datenbanken grafisch sinvoll darstellen. Diese funktionen sind alle soweit schon da, aber es gibt noch die eine oder andere Sache die Optimiert werden kann, fehler abfangen, Suchen Optimieren … und und. die frage hier bezieht sich auf die Schaltflächen die nun auch frei konfiguriert werden können. Allerding habe ich das problem das wenn jemand einen Dateipfad über File1, Dir1 (Objekte oder Funktionen ?) auswählt die PArameter noch nicht berücksichtig sind. Diese werde ich nun aber über ein einfach TExtfeld mit in das Shellexecute mit einbinden.

Ich stehe wie immer tief in eurer schuld :stuck_out_tongue:
Sollte jemand lange weile haben such ich noch einen weg einen Gateway eintrag über WMI zu löschen.

mfg jonny