Top-Themen

Aktuelle Themen (A bis Z)

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

Programm per Batchdatei starten und Parameter übergeben und mit Visual Basic auslesen

Frage Entwicklung VB for Applications

Mitglied: stinson300

stinson300 (Level 1) - Jetzt verbinden

01.05.2013 um 13:23 Uhr, 6361 Aufrufe, 11 Kommentare

Hallo miteinander,

Ich habe ein Problem mit meinem Programm.

Ich habe ein Programm mit Visual Basic geschrieben das ein Add-In bei uns deaktiviert oder umgekehrt.

Ich will jetzt aber dieses Programm mit einer Batchdatei starten und gerade auch noch einen Parameter übergeben.

zB. a für aktivieren und d für deaktivieren

Ich bin aber ein Anfänger mit Visual Basic, deshalb wollte ich euch fragen, wie ich diesen Parameter abfragen kann?

Gruss

Stefan

Danke für eure Antworten im voraus.
Mitglied: stinson300
01.05.2013 um 14:23 Uhr
Danke für deine Antwort.

Nein es ist nicht kaputt. Ich habe einfach nichts gefunden.

Gruss

Stefan
Bitte warten ..
Mitglied: stinson300
01.05.2013 um 15:44 Uhr
Danke funktioniert aber nicht
Bitte warten ..
Mitglied: MrTrebron
01.05.2013 um 17:21 Uhr
Hi,

vorhin am Smartphone gar nicht gesehen, du hast das hier bei VBA gepostet.
Welche VB nutzt du denn genau?

Gruß
Norbert
Bitte warten ..
Mitglied: stinson300
01.05.2013 um 17:35 Uhr
Die neuste,
ich programmiere mit visual studio 2012
Bitte warten ..
Mitglied: stinson300
02.05.2013 um 08:27 Uhr
Ich habe jetzt einmal ein Testprojekt gemacht.

Wie muss ich das jetzt eingeben in der Kommandozeile und wo wird der Wert hineingeschrieben?
Bitte warten ..
Mitglied: MrTrebron
02.05.2013 um 08:43 Uhr
Hi,

also das Beispiel aus meinem ersten Link (dotnetsnippets) funktioniert bei mir hervorragend.

Du rufst in deiner Batch ganz normal die Exe deines Programms auf und übergibst deine(n) Parameter

Programm.exe aktivieren
Programm.exe deaktivieren
Programm.exe debug

Den Parameter musst du dir dann selbst in eine Variable schreiben oder je nach Parameter die Sub oder Funktion in deinem Programm starten.

Gruß
Norbert
Bitte warten ..
Mitglied: stinson300
02.05.2013 um 13:54 Uhr
Wie muss ich den das bei meinem Programm machen ich schicke euch mal den Quellcode

Imports Microsoft.Win32
Imports System

Module DMS_Integration_deaktivieren

Private Property objShell As Object

Sub Main()
Dim WshShell
Dim OsType
Dim objFSO
Dim fso
Dim createfolder
Dim ESO
Dim Antwort As Char
Dim p As Process
ESO = CreateObject("Scripting.FileSystemObject")
objFSO = CreateObject("Scripting.FileSystemObject")
WshShell = CreateObject("WScript.Shell")
objShell = CreateObject("wscript.shell")
fso = CreateObject("Scripting.filesystemobject")

OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE") ' Liest den Registry-Wert aus der die Architektur (x86 oder x64) definiert

For Each p In Diagnostics.Process.GetProcesses()
If p.ProcessName = "excel" Then
Console.WriteLine("Excel ist momentan gestartet bitte beenden sie ihr Excel-Programm")
GoTo LastLine
End If
Next

' Parameter auslesen

' Parameter benutzen

' Wenn er auf a ist dann aktiveren

Line5:
If objFSO.FileExists("C:\Program Files\Microsoft Office\Office12\XLSTART\DMintegration.xlam") Then
Console.WriteLine("Die Integration ist schon aktiviert und kann deshalb nicht akiviert werden")
Line0:
Console.WriteLine("Wollen sie es deaktivieren? (y/n)")
Antwort = CChar(CStr(Console.Read()))
If Antwort = "y" Then
GoTo Line1
ElseIf Antwort = "n" Then
GoTo LastLine
Else
Console.WriteLine("Geben Sie bitte für Ja y ein und für Nein n")
GoTo Line0
End If

End If

If OsType = "x86" Then ' Wenn er 32bit ist dann mach das



' Datei wieder ans richtige Ort verschieben
objFSO.MoveFile("C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam", "C:\Program Files\Microsoft Office\Office12\XLSTART\DMintegration.xlam")

' Jetzt setzt er den Registry-Eintrag auf 3, das bedeutet aktiviert
objShell.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DMintegration_NET.Connect\LoadBehavior", "00000003", "REG_DWORD")

' "Deaktiviert" Ordner wieder löschen
ESO.DeleteFolder("C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert")


ElseIf OsType = "AMD64" Then ' wenn er 64 ist dann mach das

' Datei wieder ans richtige Ort verschieben
objFSO.MoveFile("C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam", "C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\DMintegration.xlam")

' Jetzt setzt er den Registry-Eintrag auf 3, das bedeutet aktiviert
objShell.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DMintegration_NET.Connect\LoadBehavior", "00000003", "REG_DWORD")

' "Deaktiviert" Ordner wieder löschen
ESO.DeleteFolder("C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\Deaktiviert")


End If

' Wenn er auf d ist dann deaktivieren
Line1:
If objFSO.FileExists("C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam") Then
Console.WriteLine("Die Integration ist schon deaktiviert und kann deshalb nicht deakiviert werden")
Line2:
Console.WriteLine("Wollen sie es aktivieren? (y/n)")
Antwort = Console.Read()
If Antwort = "y" Then
GoTo Line5
ElseIf Antwort = "n" Then
GoTo LastLine
Else
Console.WriteLine("Geben Sie bitte für Ja y ein und für Nein n")
GoTo Line2
End If

End If

If OsType = "x86" Then ' Wenn er 32bit ist dann mach das

If objFSO.FileExists("C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam") Then
Console.WriteLine("Die Integration ist schon deaktiviert und kann deshalb nicht deakiviert werden")
End If

' Ordner für die Verschiebung erstellen
createfolder = fso.CreateFolder("C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert")

' Verschiebung der Datei
objFSO.MoveFile("C:\Program Files\Microsoft Office\Office12\XLSTART\DMintegration.xlam", "C:\Program Files\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam")

' Jetzt setzt er den Registry-Eintrag auf 8, das bedeutet deaktiviert
objShell.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DMintegration_NET.Connect\LoadBehavior", "00000008", "REG_DWORD")

ElseIf OsType = "AMD64" Then ' wenn er 64 ist dann mach das

If objFSO.FileExists("C:\Program Files (X86)\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam") Then
Console.WriteLine("Die Integration ist schon deaktiviert und kann deshalb nicht deakiviert werden")
End If

' Ordner für die Verschiebung erstellen
createfolder = fso.CreateFolder("C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\Deaktiviert")
' Verschiebung der Datei
objFSO.MoveFile("C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\DMintegration.xlam", "C:\Program Files (x86)\Microsoft Office\Office12\XLSTART\Deaktiviert\DMintegration.xlam")

' Jetzt setzt er den Registry-Eintrag auf 8, das bedeutet deaktiviert
objShell.regwrite("HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\DMintegration_NET.Connect\LoadBehavior", "00000008", "REG_DWORD")

End If
LastLine:
End Sub
End Module
Bitte warten ..
Mitglied: MrTrebron
02.05.2013 um 15:03 Uhr
Hi,

das ist ja eher VBScript als VB.net.
Goto *kopfschuettel

Hier mal ein kleines Konstrukt:
01.
Imports Microsoft.Win32 
02.
Imports System 
03.
 
04.
 
05.
Module Module1 
06.
    Public OSVersion As Boolean = Environment.Is64BitOperatingSystem 'If true then 64 bit 
07.
    Public args() As String = Environment.GetCommandLineArgs 
08.
 
09.
    Sub Main() 
10.
        Dim p As Process 
11.
 
12.
        For Each p In Diagnostics.Process.GetProcesses() 
13.
            If p.ProcessName = "excel" Then 
14.
                Console.WriteLine("Excel ist momentan gestartet bitte beenden sie ihr Excel-Programm") 
15.
                Exit Sub 
16.
            End If 
17.
        Next 
18.
 
19.
        If args.GetUpperBound(0) = 0 Then 
20.
            Console.WriteLine("Kein Parameter übergeben") 
21.
            Exit Sub 
22.
        End If 
23.
        Select Case args(1) 
24.
            Case "A" 
25.
                'Do Something to activate 
26.
            Case "D" 
27.
                'Do something to deactivate 
28.
            Case Else 
29.
                Console.WriteLine("Parameter " & args(1) & " unbekannt") 
30.
                Exit Sub 
31.
        End Select 
32.
 
33.
    End Sub 
34.
 
35.
End Module
Quick 'n' dirty
Gruß
Norbert
Bitte warten ..
Mitglied: stinson300
02.05.2013 um 15:09 Uhr
Habe es jetzt selber herausgefunden, wie es geht aber danke für die Antwort
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Pastebin auslesen mit Visual Basic?
gelöst Frage von UltraZzVisual Studio2 Kommentare

Hey,ich würde gerne wissen wie man (z.B. für ein Passwort welches man immer wieder ändern kann,ohne das Programm zu ...

Entwicklung
Seriennummer auslesen über Visual Basic
gelöst Frage von nico-3012Entwicklung3 Kommentare

Hallo, ich würde gerne die Seriennummer von meinem Fujitsu PC auslesen und in eine Textbox ausgeben, hat jemand vielleicht ...

Batch & Shell
PowerShell-Programm mit Visual Basic
Frage von 117455Batch & Shell1 Kommentar

Hallo! Hat jemand grade ein Tutorial parat, in der beschrieben wird, wie man mit PowerShell in Visual Basic umgehen ...

C und C++
Parameter mit argv übergeben in C-Programm
gelöst Frage von djevil-adC und C++12 Kommentare

Hallo, ich mochte einen Parameter an eine Variable übergeben: Wenn ich printf(argv 1 ); aufrufe funktioniert es, wenn ich aber ip.ki.wVk ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 6 StundenBatch & Shell7 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 8 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...