Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  Sendkeys funktioniert nicht

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Sendkeys funktioniert nicht (1731 mal gelesen)
Micha79
Mitglied
Stuttgart

Sehen Sie sich das Profil von Micha79 an!   Senden Sie eine Private Message an Micha79  Schreiben Sie einen Gästebucheintrag für Micha79

Beiträge: 5
Registriert: 16.09.2013

erstellt am: 16. Sep. 2013 22:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

wir benutzen Solidworks 2012(64bit)auf Win7 mit Keytech. Nun möchte ich über Sendkeys die Tasten "STRG+S" aufrufen. Diese Kombination startet den Speicherdialog mit Keytech. Wenn ich das Programm aus dem Visual Basic Editor direkt starte funktioniert das auch. Starte ich das Programm jedoch aus der Makro Symbolleiste etc. dann wird Sendkeys nicht ausgeführt.

Als Alternative habe ich versucht über die Funktion Keybd_event das ganze zu machen. Damit funktioniert es auch aber nur wenn der Befehl ganz am Ende vom Programm steht. Kommt im Anschluss z.B. noch eine Messagebox etc. dann gehts schon wieder nicht. Dann sieht es so aus wie wenn der Keybd_event Befehl quasi in der Pipeline steht und erst nach beenden der Messagebox oder Programmabruch ausgeführt wird.
Bin langsam mit meinem Latein am Ende.
Auch 8h googeln haben nicht weitergeholfen. Bin ziemlich frustriert.

Gibt es eventuell eine Möglichkeit die Befehle der Untermenüs direkt aufzurufen? Denke da in Richtung wm_command und sendmessage. Problem damit ist dass ich die wm_command nicht auslesen kann da die meißten Programme wie Spy++ nur 32bit unterstützen. Und selbst dann bleibt die Frage wie das funktioniert wenn keine BN_Clicked oder sowas gemeldet wird.

Bin um jeden Rat mehr als Dankbar!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

fritsrol
Mitglied
CAD-Systemingenieur


Sehen Sie sich das Profil von fritsrol an!   Senden Sie eine Private Message an fritsrol  Schreiben Sie einen Gästebucheintrag für fritsrol

Beiträge: 143
Registriert: 11.12.2002

Windows 10 64
Office 2013
Eplan P8 2.7 HF2
VS 2015
Medusa 2000i2

erstellt am: 17. Sep. 2013 07:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Micha79 10 Unities + Antwort hilfreich

Hallo,

ich benutze dazu folgende .Net Methode
----------------------------------------------------------
'Key Senden
My.Computer.Keyboard.SendKeys(sCommand, isWait)
---------------------------------------------------------

vorher stell ich aber sicher das auch das gewünschte Fenster aktiv ist dazu verwende ich
----------------------------------------------------
currentProcess = Process.GetCurrentProcess()
If IsNothing(cProc) OrElse currentProcess.Id <> cProc.Id Then 'Wobei Proc der anzusteuernde Process ist
            cProc = Process.GetProcessById(CInt(cProc.Id))
            If cProc.MainWindowHandle = 0 Then
                MessageBox.Show("No main window for accessing the Process: " & cProc.ProcessName & " Id:" & cProc.Id, "Abbruch")
                Return False
            End If

            AppActivate(CInt(cProc.Id))
endif
-------------------------------------------------------------------------------------
Ich hofffe das hilft Dir ein bißchen.

Gruß
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



CAD-Bauzeichner Projektierung (m/w/d)

Wir sind mehr als der Marktführer in der Autowäsche. In technologischer Hinsicht setzen wir Branchenstandards. Weltweit. Mit einem Höchstmaß an Kundenorientierung. Digital auf der Höhe der Zeit. Und wir werden immer besser. Für Sie heißt das: Willkommen zu immer neuen High-tech-Heraus­forderungen. Zu mehr Innovationskraft, Gestaltungsspielraum und Eigen­verantwortung.
Machen Sie den nächsten Karriereschritt bei WashTec oder AUWA....

Anzeige ansehenTechnischer Zeichner, Bauzeichner
Micha79
Mitglied
Stuttgart

Sehen Sie sich das Profil von Micha79 an!   Senden Sie eine Private Message an Micha79  Schreiben Sie einen Gästebucheintrag für Micha79

Beiträge: 5
Registriert: 16.09.2013

erstellt am: 17. Sep. 2013 19:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Macht es einen Unterschied ob man über AppActivate "SolidWorks Premium 2012" oder über die ProcessID den Fokus der Anwendung versucht zu bekommen? Habe es nämlich schon mit AppActivate "SolidWorks Premium 2012" davor versucht. Auch das doevents habe ich schon ausprobiert. Funktioniert aber leider auch nicht. Gibt es eventuell einen Unterschied ob man als Admin angemeldet ist oder macht das keinen Unterschied?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz