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

Programm beenden

Frage Entwicklung Batch & Shell

Mitglied: garciam

garciam (Level 1) - Jetzt verbinden

07.07.2014, aktualisiert 08.07.2014, 2239 Aufrufe, 4 Kommentare, 4 Danke

Hallo zusammen

Ich habe ein Problem, bei dem ich nicht weiterkomme...

Ich muss ein Programm zu einer bestimmten Zeit schliessen lassen. Dafür will ich ein Script per Aufgabenplanung täglich ausführen lassen. Versucht habe ich es mit Powershell:

get-process prowin32 | %{ $_.closemainwindow() }
Get-Process prowin32 | Stop-Process
Get-Process prowin32 | Kill

Die Varianten funktionieren grundsätzlich alle, jedoch wird bei stop-process und kill der Benutzer gesperrt. Bei closewindow steht leider die Abbrechen-Box im Weg. Ich kann also nicht einfach den Prozess abschiessen oder das Fenster schliessen, ich müsst den "Abbrechen" Button per Script betätigen können. Geht das und wie stellt man das am besten an?

ecee300cb35afb8c7e17cef0abe58de9 - Klicke auf das Bild, um es zu vergrößern

Vielen Dank für eure Hilfe!

Gruss


Mitglied: Alex-123
07.07.2014 um 16:03 Uhr
Hi garciam,

hab da mal ein kleines VBScript gebastelt.

Ich nehme an das zu beendende Programm heisst PROWIN32.EXE ???

Ich hoffe ich konnte dir weiterhelfen.

Bei Fragen immer her damit ;)

VG Alex

01.
Set oWsh = CreateObject("WScript.Shell")  
02.
	oWsh.Run("cmd.exe /c " & chr(34) & "taskkill /f /im prowin32.exe" & chr(34)) 
03.
 
04.
msgbox"Das geöffnete Programm wurden beendet!",vbCritical,"Programm beenden"	 
05.
 
Bitte warten ..
Mitglied: garciam
07.07.2014, aktualisiert um 16:10 Uhr
Hallo Alex

Danke für deinen Vorschlag, aber dein VBScript killt den Prozess und somit wird der User gesperrt. Das Programm müsste über "Abbrechen" beendet werden können.

Gruss
garciam
Bitte warten ..
Mitglied: colinardo
LÖSUNG 07.07.2014, aktualisiert 08.07.2014
Moin,
wenn das Ding so besch... programmiert ist dann wirst du wohl über Sendkeys gehen müssen um den Abbrechen Button zu betätigen (dazu muss aber jemand angemeldet sein wenn das Script läuft)
01.
[void] [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic") 
02.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
03.
get-process prowin32 | %{ 
04.
$_.closemainwindow() 
05.
# Fenster in den Fokus bringen 
06.
[Microsoft.VisualBasic.Interaction]::AppActivate($_.Id) 
07.
# 0,5 Sekunden pausieren das das Fenster in den Vordergrund kommen kann 
08.
sleep -milliseconds 500 
09.
# ALT-C drücken um den Abbrechen-Button zu betätigen 
10.
[System.Windows.Forms.SendKeys]::SendWait('%c') 
11.
}
Wenn das nicht hinhaut nehme AutoIT dafür.

Grüße Uwe
Bitte warten ..
Mitglied: garciam
08.07.2014, aktualisiert um 14:47 Uhr
Hallo Colinardo

Dein Script funktionierte leider nicht, aber mit AutoIT hab ich es hinbekommen. Danke für den super Tipp.

01.
CloseScanImport() 
02.
 
03.
Func CloseScanImport() 
04.
 
05.
    ; Wait 10 seconds for the window to appear. 
06.
    Local $hWnd = WinWait("[CLASS:ProFrame]", "", 10) 
07.
 
08.
    ; Send a mouse click to the edit control of ScanImport using the handle returned by WinWait. 
09.
    ControlClick($hWnd, "", "Button1") 
10.
 
11.
    ; Wait for 2 seconds. 
12.
    Sleep(2000) 
13.
 
14.
    ; Close the ScanImport window using the handle returned by WinWait. 
15.
    WinClose($hWnd) 
16.
EndFunc   ;==>CloseScanImport
Gruss
garciam
Bitte warten ..
Ähnliche Inhalte
Windows Tools
gelöst Tipp für gutes OCR Programm? (4)

Frage von QQR700 zum Thema Windows Tools ...

Batch & Shell
gelöst Remote Prozesse Beenden (6)

Frage von Hanuta zum Thema Batch & Shell ...

Batch & Shell
gelöst Vbs programm unabhängig vom Speicherort ausführen (2)

Frage von Markus2016 zum Thema Batch & Shell ...

Multimedia
gelöst Diashow Programm (6)

Frage von blade999 zum Thema Multimedia ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Update
gelöst MS: Update-Server-Adressen OHNE Wildcards (17)

Frage von mrserious73 zum Thema Windows Update ...

Viren und Trojaner
Ransomware .nm4 (14)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...