Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Exe ohne Fenster aus vb aufrufen

Frage Entwicklung Batch & Shell

Mitglied: Mit.ohne.Ahnung

Mit.ohne.Ahnung (Level 1) - Jetzt verbinden

13.06.2014, aktualisiert 19:13 Uhr, 1624 Aufrufe, 12 Kommentare

Hallo Zusammen,

ich erstelle gerade ein Programm mit Visual Studio und möchte eine exe aufrufen ohne das ein Fenster erscheint.

so funktioniert das:

01.
set WshShell = WScript.CreateObject("WScript.Shell") 
02.
Return = WshShell.Run("C:Solutio\Client\Charly\solutio.app\dbbackup.exe", 0, True) 
03.
Set WshShell = Nothing
jetzt zu meinem Problem:

wie bekomme ich das


01.
Private Sub CheckboxIntDasi_Click(sender As Object, e As EventArgs) Handles CheckboxIntDasi.CheckedChanged 
02.
        If CheckboxIntDasi.Checked = True Then 
03.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
04.
            CheckBoxMail.CheckState = CheckState.Unchecked 
05.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
06.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
07.
        End If 
08.
 
09.
    End Sub

wie bekomme ich das in zeile 2 nach Then hinein???

hatte das schon am laufen mit process.start(C:\solutio\client\charly\solutio\dbbackup.exe am laufen.
nur da kommt ein Commandfenster wenn ich die dbbackup.exe aufrufe, und das möchte ich nicht.

nach vielem probieren funktioniert das auch nicht mehr..
jetzt bekomme ich einen end if fehler wenn ich das nach dem "Then" process.start(C:\solutio\client\charly\solutio\dbbackup.exe einfüge???

Hoffe Ihr könnt mir helfen...

Grüße Frank

Nachtrag:

soweit so gut.... geht alles soweit... nur das die dbbackup.exe ohne fenster läuft bekomm ich nicht hin...

mit process.start kann ich das Fenster nicht unterdrücken

01.
Private Sub Cmdauswahl_Click(sender As Object, e As EventArgs) Handles Cmdauswahl.Click 
02.
        If CheckboxIntDasi.Checked = True Then 
03.
            WshShell.Run("C:Solutio\Client\Charly\solutio.app\dbbackup.exe", 0, True) 
04.
        End If 
05.
 
06.
    End Sub 
07.
 
und mit dieser Variante bekomme ich:

Fehler 1 "WshShell" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. C:\Users\Frank\documents\visual studio 2012\Projects\WindowsApplication1\WindowsApplication1\Form1.vb 88 13 WindowsApplication1


Für einen guten Tipp wäre ich dankbar.
Mitglied: colinardo
LÖSUNG 13.06.2014, aktualisiert um 20:44 Uhr
Hallo Frank,
01.
Dim proc As New Process() 
02.
proc.StartInfo.FileName = "C:\solutio\client\charly\solutio\dbbackup.exe" 
03.
proc.StartInfo.CreateNoWindow = True 
04.
proc.Start() 
05.
proc.WaitForExit()
Weitere Eigenschaften und Beispiele für das ProcessStartinfo-Objekt kannst du in der Referenz nachlesen:
http://msdn.microsoft.com/de-de/library/system.diagnostics.processstart ...

Grüße Uwe
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
13.06.2014 um 19:16 Uhr
Hallo Uwe,

meinst du das so?
01.
Private Sub Cmdauswahl_Click(sender As Object, e As EventArgs) Handles Cmdauswahl.Click 
02.
        If CheckboxIntDasi.Checked = True Then 
03.
            Dim startInfo("C:\solutio\client\charly\solutio\dbbackup.exe") 
04.
            startInfo.WindowStyle = ProcessWindowStyle.Hidden 
05.
            Process.Start(startInfo) 
06.
        End If 
07.
 
08.
 
09.
    End Sub
da bekomme ich folgende Fehler:

Fehler 1 "WindowStyle" ist kein Member von "System.Array". C:\Users\Frank\documents\visual studio 2012\Projects\WindowsApplication1\WindowsApplication1\Form1.vb 89 13 WindowsApplication1

Fehler 2 Fehler bei der Überladungsauflösung, da keine zugreifbare "Start" mit diesen Argumenten aufgerufen werden kann:
"Public Shared Function Start(startInfo As System.Diagnostics.ProcessStartInfo) As System.Diagnostics.Process": Der Wert vom Typ "1-dimensionales Array von Object" kann nicht in "System.Diagnostics.ProcessStartInfo" konvertiert werden.
"Public Shared Function Start(fileName As String) As System.Diagnostics.Process": Der Wert vom Typ "1-dimensionales Array von Object" kann nicht in "String" konvertiert werden. C:\Users\Frank\documents\visual studio 2012\Projects\WindowsApplication1\WindowsApplication1\Form1.vb 90 13 WindowsApplication1

Gruß Frank
Bitte warten ..
Mitglied: colinardo
13.06.2014, aktualisiert um 19:25 Uhr
wrong!

01.
Private Sub CheckboxIntDasi_Click(sender As Object, e As EventArgs) Handles CheckboxIntDasi.CheckedChanged 
02.
        If CheckboxIntDasi.Checked = True Then 
03.
Dim proc As New Process() 
04.
proc.StartInfo.FileName = "C:\solutio\client\charly\solutio\dbbackup.exe" 
05.
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 
06.
proc.StartInfo.UseShellExecute = false 
07.
proc.Start() 
08.
proc.WaitForExit() 
09.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
10.
            CheckBoxMail.CheckState = CheckState.Unchecked 
11.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
12.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
13.
        End If 
14.
 
15.
    End Sub
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
13.06.2014 um 19:33 Uhr
Sorry Uwe,

mein Fehler, habe mich wohl nicht verständlich ausgedrückt.

Habe mehrere Checkboxen, und wenn ich eine anklicke geht der Hacken bei der anderen raus.... jetzt will ich wenn ich auf Button "interneDasi" markiert habe und auf weiter Button klicke das die exe startet ohne Fenster.

hier der ganze code
01.
Public Class Form1 
02.
 
03.
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
04.
 
05.
    End Sub 
06.
 
07.
 
08.
 
09.
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles cmdzurAuswahl.Click 
10.
        PictureBox1.Visible = False 
11.
        PaneltoolAuswahl.Visible = True 
12.
        cmdzurAuswahl.Visible = False 
13.
        Cmdauswahl.Visible = True 
14.
    End Sub 
15.
 
16.
    Private Sub CheckboxIntDasi_Click(sender As Object, e As EventArgs) Handles CheckboxIntDasi.CheckedChanged 
17.
        If CheckboxIntDasi.Checked = True Then 
18.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
19.
            CheckBoxMail.CheckState = CheckState.Unchecked 
20.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
21.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
22.
        End If 
23.
 
24.
    End Sub 
25.
 
26.
 
27.
    Private Sub CheckboxExtDasi_Click(sender As Object, e As EventArgs) Handles CheckBoxExtDasi.CheckStateChanged 
28.
        If CheckBoxExtDasi.Checked = True Then 
29.
            CheckboxIntDasi.CheckState = CheckState.Unchecked 
30.
            CheckBoxDBdump.CheckState = CheckState.Unchecked 
31.
            CheckBoxMail.CheckState = CheckState.Unchecked 
32.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
33.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
34.
        End If 
35.
 
36.
 
37.
 
38.
    End Sub 
39.
 
40.
    Private Sub CheckboxDBdump_Click(sender As Object, e As EventArgs) Handles CheckBoxDBdump.CheckStateChanged 
41.
        If CheckBoxDBdump.Checked = True Then 
42.
            CheckboxIntDasi.CheckState = CheckState.Unchecked 
43.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
44.
            CheckBoxMail.CheckState = CheckState.Unchecked 
45.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
46.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
47.
        End If 
48.
 
49.
    End Sub 
50.
 
51.
 
52.
    Private Sub CheckboxSMS_Click(sender As Object, e As EventArgs) Handles CheckBoxSMS.CheckedChanged 
53.
        If CheckBoxSMS.Checked = True Then 
54.
            CheckboxIntDasi.CheckState = CheckState.Unchecked 
55.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
56.
            CheckBoxDBdump.CheckState = CheckState.Unchecked 
57.
            CheckBoxMail.CheckState = CheckState.Unchecked 
58.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
59.
        End If 
60.
 
61.
    End Sub 
62.
 
63.
    Private Sub Checkboxmail_Click(sender As Object, e As EventArgs) Handles CheckBoxMail.CheckedChanged 
64.
        If CheckBoxMail.Checked = True Then 
65.
            CheckboxIntDasi.CheckState = CheckState.Unchecked 
66.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
67.
            CheckBoxDBdump.CheckState = CheckState.Unchecked 
68.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
69.
            CheckBoxfrei.CheckState = CheckState.Unchecked 
70.
        End If 
71.
 
72.
    End Sub 
73.
 
74.
    Private Sub Checkboxfrei_Click(sender As Object, e As EventArgs) Handles CheckBoxfrei.CheckedChanged 
75.
        If CheckBoxfrei.Checked = True Then 
76.
            CheckBoxExtDasi.CheckState = CheckState.Unchecked 
77.
            CheckBoxDBdump.CheckState = CheckState.Unchecked 
78.
            CheckBoxMail.CheckState = CheckState.Unchecked 
79.
            CheckBoxSMS.CheckState = CheckState.Unchecked 
80.
            CheckboxIntDasi.CheckState = CheckState.Unchecked 
81.
        End If 
82.
 
83.
    End Sub 
84.
 
85.
 
86.
   Private Sub Cmdauswahl_Click(sender As Object, e As EventArgs) Handles Cmdauswahl.Click 
87.
        If CheckboxIntDasi.Checked = True Then 
88.
            Dim startInfo("C:\solutio\client\charly\solutio\dbbackup.exe") 
89.
            startInfo.WindowStyle = ProcessWindowStyle.Hidden 
90.
            Process.Start(startInfo) 
91.
        End If 
92.
 
93.
 
94.
    End Sub 
95.
End Class
also ab Zeile 86 liegt mein Problem...

gruß Frank
Bitte warten ..
Mitglied: colinardo
13.06.2014, aktualisiert um 20:44 Uhr
so wie ich das jetzt auf meinen Smartphone sehen kann sollte das reichen:
01.
Private Sub Cmdauswahl_Click(sender As Object, e As EventArgs) Handles Cmdauswahl.Click 
02.
        If CheckboxIntDasi.Checked = True Then 
03.
          Dim proc As New Process() 
04.
          proc.StartInfo.FileName = "C:\solutio\client\charly\solutio\dbbackup.exe" 
05.
          proc.StartInfo.CreateNoWindow = True 
06.
          proc.Start() 
07.
        End if 
08.
    End Sub
wenn du auf das Ende der Datensicherung warten willst musst du noch ein proc.WaitForExit() hinten anfügen.
Ansonsten morgen wieder wenn ich am
Rechner sitze

Grüße Uwe
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
13.06.2014 um 20:09 Uhr
Hallo Uwe,

die DBBackuo.exe läuft... aber leider wieder mit Fenster

trotzdem erstmal vielen Dank......

bis morgen und schönen abend..

Gruß Frank
Bitte warten ..
Mitglied: colinardo
13.06.2014, aktualisiert um 22:40 Uhr
ist das eine Konsolenanwendungen oder ein normales Windows-Programm ?
Wenn es ein normales Windowsprogramm ist lass mal die Zeile mit ShellExecute raus.
und mach noch ein
proc.StartInfo.CreateNoWindow = True mit rein. (habe es oben bereits korrigiert)
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
14.06.2014 um 12:58 Uhr
Hallo Uwe,
das Command Fenster kommt wieder..... mit dieser dbbackup.exe werden asc-Files neu geschrieben aus einer PostgreSQL-DB.
Leider weiß ich nicht wie die exe erstellt wurde.... vermute aber das es ein script ist und nur zur exe gemacht wurde.....
Würde ja die SQL-Befehle nehmen... nur leider weiß ich nicht wirklich wie oder was genau die dbbackup.exe macht....

Wie schon gesagt... wenn ich diese dbbackup.vbs nehme und damit die dbbackup.exe aufrufe, läuft der task ohne Fenster.
01.
set WshShell = WScript.CreateObject("WScript.Shell") 
02.
Return = WshShell.Run("C:Solutio\Client\Charly\solutio.app\dbbackup.exe", 0, True) 
03.
Set WshShell = Nothing
nur leider bekomm ich das so nicht in meinem script zum laufen.

Gruß Frank
Bitte warten ..
Mitglied: colinardo
14.06.2014, aktualisiert um 13:41 Uhr
OK dann hilft eventuell noch ein angehängtes CloseMainWindow() bei hartnäckigen Verweigerern
01.
Dim proc As New Process 
02.
proc.StartInfo.CreateNoWindow = True 
03.
proc.StartInfo.FileName = "C:Solutio\Client\Charly\solutio.app\dbbackup.exe" 
04.
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden 
05.
proc.StartInfo.UseShellExecute = False 
06.
proc.Start() 
07.
proc.CloseMainWindow()
alternativ gibt es noch folgende Methode die du bei dem Programm probieren kannst, welches das Äquivalent zum VBS Code ist:
01.
Shell("C:Solutio\Client\Charly\solutio.app\dbbackup.exe", AppWinStyle.Hide)
Ohne weitere Info zum Programm ist das hier ansonsten schwer ...

Grüße Uwe
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
14.06.2014 um 13:41 Uhr
Hallo Uwe,
CloseMainWindow war die Lösung .... Super ! ! Danke dir...
Zu meinem (Anfänger) verständnis.....
Das proc.CloseMainWindow() macht doch nichts anderes als das Fenster zu schließen das zuvor aufgerufen wurde... aber der Prozess läuft weiter???

Danke dir Uwe

Nette Grüße aus Limburg

Frank
Bitte warten ..
Mitglied: colinardo
LÖSUNG 14.06.2014, aktualisiert um 14:28 Uhr
Zitat von Mit.ohne.Ahnung:
Zu meinem (Anfänger) verständnis.....
Das proc.CloseMainWindow() macht doch nichts anderes als das Fenster zu schließen das zuvor aufgerufen wurde... aber der
Prozess läuft weiter???
ja kannst du ja im Taskmanager überprüfen kommt aber immer auf das Verhalten der Anwendung drauf an, ob sich der Prozess nicht doch ganz beendet:
http://msdn.microsoft.com/de-de/library/system.diagnostics.process.clos ...

Auch nette Grüße aus der Eifel
Uwe
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
14.06.2014 um 13:45 Uhr
Hab ich und das macht er auch

Perfekt... danke dir Uwe....

Gruß Frank
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...