CMD Ping Script

mrnk

Neu angemeldet
Registriert
27 Mai 2014
Beiträge
96
Hallo Zusammen,

ich möchte gerne einen Script erstellen, nur habe in der Thematik nicht so viel Ahnung.

Ich möchte bei Markierung der IP-Adressen oder Computername mit einer Tastenkombination, dass es per CMD ein Ping gestartet wird.

Kann mir jemand dabei helfen?

Gruss
 
Ein paar grundsätzliche Fragen:
- über welches OS reden wir hier? Ich tippe auf Windows?
- wo soll die Adresse/Hostname/etc. markiert werden - Windows? Editor? Browser? Word/Excel?
 
  • Thread Starter Thread Starter
  • #3
Ein paar grundsätzliche Fragen:
- über welches OS reden wir hier? Ich tippe auf Windows?
- wo soll die Adresse/Hostname/etc. markiert werden - Windows? Editor? Browser? Word/Excel?

- Ja ist unter Windows.
- Markieren meinte ich damit, die IP-Adresse oder Computername irgendwo (z.B. von Word, Internet Browser usw.) markieren und das die markierte Adresse gleich mit einem Tastenkombination cmd aufgerufen wird und die markierte Quelle anpingt.

Ich hoffe das war nun deutlich genug.

Gruß
 
Ich habe da mal rum gespielt. Ich habe vor Jahren AutoHotKey mal mit einem Script aus dem Netz verwendet, um die Musiklautstärke im Büro einstellen zu können, ohne aus der Entwicklungsumgebung herauszumüssen

Faszinierend.

Was man da mit Hochsprachen für eine Aufwand betreiben müßte, alleine um globale Hooks zu setzen um die Windowsereignisse abzufangen.

Mit AutoHotKey sind es insgesamt gerade mal 59 Zeichen.
Wenn ich das kompiliere funktioniert der Ping nicht, keine Ahnung wieso nicht, aber als *.ahk bei installiertem
AutoHotKey macht er wohl das, was der TS sich vorgestellt hat.
 
Mein 3. Post in Folge, dabei ist das gar nicht mein Thread.

"ich möchte gerne einen Script erstellen" Habe ich als deutlichen Hinweis verstanden, daß Du hier keine fertige Lösung suchst.
Dabei kann es sich natürlich um ein Mißverständnis handeln.

Es wäre schon nett, wenn Du Dich äußern würdest, ob etwas wie AutoHotKey etwas für Dich sein könnte, oder zumindest, an was für ein (-e Art ) Script Du gedacht hast.
 
Vielleicht bist du zu nett, denn ich habe gelesen:
"ich möchte gerne [...] nur habe [ich] in der Thematik [nicht so viel Ahnung keine Ahnung] [...] Kann mir jemand [...] [das machen]?"

:unknown:
 
  • Thread Starter Thread Starter
  • #8
Hallo Jungs,

danke für die Hilfe.

AutoHotKey war mir sehr nützlich.

Vielen Dank!
 
Hi, ich hab' das ganze mal spaßeshalber in VB.NET ausprobiert/umgesetzt.

p1.png

Beim starten des Programms werden 2 Hotkeys registriert:
- Strg + Q = Kopiert den markierten Text in die Zwischenablage, prüft ob es eine IP-Adresse ist und wenn ja, dann übergibt er diese mit den Ping-Befehl an die cmd.exe
- Strg + X = Beendet das Programm

Falls IP-Adresse(IPv4) nicht gültig. p2.png und falls doch: p3.png

[src=vbnet]Imports System.Runtime.InteropServices
Imports System.Text.RegularExpressions

Public Class Form1

Public Const MOD_ALT As Integer = &H2 'STRG
Public Const WM_HOTKEY As Integer = &H312

<DllImport("User32.dll")>
Public Shared Function RegisterHotKey(ByVal hwnd As IntPtr,
ByVal id As Integer, ByVal fsModifiers As Integer,
ByVal vk As Integer) As Integer
End Function

<DllImport("User32.dll")>
Public Shared Function UnregisterHotKey(ByVal hwnd As IntPtr,
ByVal id As Integer) As Integer
End Function

Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
RegisterHotKey(Me.Handle, 100, MOD_ALT, Keys.Q)
RegisterHotKey(Me.Handle, 200, MOD_ALT, Keys.X)
End Sub

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_HOTKEY Then
Dim id As IntPtr = m.WParam
Select Case (id.ToString)
Case "100"
SendKeys.Send("^(c)") ' kopiere markierten text in zwischenablage

' Prüfe auf gültige IP-Adresse
' IPv6 = \b(?:[\dA-F]{1,4}:){1,7}(?:(?::[\dA-F]{1,4}){1,6}|(?:::[\dA-F]{1,4}){1,7}|:|[\dA-F]{1,4})?\b
' IPv4 = \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

If Not Regex.Match(Clipboard.GetText(), "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b").Success Then
' Wenn IP-Adresse nicht gültig, zeige Fehlermeldung
MessageBox.Show("Keine gültige IP-Adresse!", Me.Text, MessageBoxButtons.OK)
Else
' Wenn IP-Adresse gültig, dann anpingen.
Dim Command As String
Command = "/k ping " + Clipboard.GetText()

Dim cmd As New Process
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal
cmd.StartInfo.FileName = "cmd.exe"
cmd.StartInfo.Arguments = Command
cmd.Start()
End If

Case "200"
Application.Exit()
End Select
End If
MyBase.WndProc(m)
End Sub

Private Sub Form1_FormClosing(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.FormClosingEventArgs) _
Handles MyBase.FormClosing
UnregisterHotKey(Me.Handle, 100)
UnregisterHotKey(Me.Handle, 200)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Application.Exit()
End Sub
End Class[/src]

Hier zum ausprobieren, die kompilierte .exe
######
 
Zuletzt bearbeitet:
Naja, ne EXE einfach so ausmn Netz laden und auszuführen, nun ja. Gut das Code dabei ist.
Aber das wollte ich eigentlich nicht kritisieren.... ;)

Mir ging es nur darum, drück mal in Anwendung Strg + Q (Browser, oder sonst wo....) - das ist ähnlich wie Alt + F4 zu belegen.
Da würde ich nen andere Keycombo nutzen. Respektiv sowas wie "Strg + Shift + I" - ich gehe spontan davon aus, diese Kombo ist nicht in "Anwendung" belegt.

Oder etwas ähnliches.
 

Kein Problem :)

Naja, ne EXE einfach so ausmn Netz laden und auszuführen, nun ja. Gut das Code dabei ist.
Aber das wollte ich eigentlich nicht kritisieren.... ;)

Mir ging es nur darum, drück mal in Anwendung Strg + Q (Browser, oder sonst wo....) - das ist ähnlich wie Alt + F4 zu belegen.
Da würde ich nen andere Keycombo nutzen. Respektiv sowas wie "Strg + Shift + I" - ich gehe spontan davon aus, diese Kombo ist nicht in "Anwendung" belegt.

Oder etwas ähnliches.

Versteh' ich, sry. Werd' sie wieder entfernen ;)

Bzgl. der Hotkeys: Er kann ja den/die Code/Hotkeys ja nach sein belieben anpassen, wenn er Grundkenntnisse in VB.NET hat :p :beer:
 
Ich habe gerade mal gesucht, was ich da im Juni mit AutoHotkey ausprobiert hatte und poste das der Vollständigkeit wegen auch mal:

[src=text]#SingleInstance force
^p::
Send, ^c
ClipWait
cb=%clipboard%

runwait %comspec% /k ping %cb%[/src]

IP markieren und cmd+P drücken.
 
Zurück
Oben