Wie äußert sich das "geht nicht" und mit welchem Code machst du es?
Ich schätze mal das liegt daran, weil nicht jedes Fenster automatisch den Focus in das richtige Eingabefeld setzt...
Den müsstest du dann selber setzen (falls möglich, das weiß ich selbst nicht)
Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.
Ich konnte dir helfen?
- Das ist schön Ich würde mich über ein "Hilfreich" freuen
VB.NET-Quellcode
<DllImport("user32")>
PrivateSharedFunction SetForegroundWindow(ByVal winHandle As IntPtr) AsBoolean
EndFunction
PrivateSub ListBox1_DoubleClick(ByVal sender AsObject, ByVal e As EventArgs) Handles ListBox1.DoubleClick
Dim p As Process() = Process.GetProcessesByName("PidginPortable.exe")
If p.Count >0Then
Dim handle As IntPtr = p(0).MainWindowHandle
SetForegroundWindow(handle)
SendKeys.Send(ListBox1.SelectedItem)
EndIf
der prozess heisst PidginPortable.exe
das fenster heisst wie der chatpartner zb Simon
Das war jetzt der Code...
Aber es bleibt noch eine Frage ungeklärt (ich habe nur geraten)
also es passiert einfach gar nix , das fenster kommt nicht in vordergrund ...
Hast du mal per Haltepunkt geschaut ob dein "if" erreicht wird?
There is no CLOUD - just other people's computers
Q: Why do JAVA developers wear glasses? A: Because they can't C#
Daily prayer: "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
Bei vorigen Code steht als Processname "notepad" ohne .exe am Ende. Hast du schon mit "PidginPortable" ohne .exe am Ende probiert?
Hat die Anwendung mehrere Fenster?
Also z.B. ein Hauptfenster und für den Chat ein weiteres?
MainWindowHandle Holt (wie der Name schon sagt) nur das Handle für das MainWindow
Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.
Ich konnte dir helfen?
- Das ist schön Ich würde mich über ein "Hilfreich" freuen
Also z.B. ein Hauptfenster und für den Chat ein weiteres?
MainWindowHandle Holt (wie der Name schon sagt) nur das Handle für das MainWindow
jop genau das sind 2 fenster
ohne .exe am Ende ja das hab ich auch versucht hat leider nix geändet
ich habe das gleiche schonmal mit einer anderen programmsprache (autoit) gemacht da gabs einfach einen befehl "winaktivate, fenstername" das ging problemlos also ich dachte sowas in der art muss es bei VB auch geben
@tom2000
Ich wieder hole mal meine Frage: Kommt dein Code an Zeile 7 an?
There is no CLOUD - just other people's computers
Q: Why do JAVA developers wear glasses? A: Because they can't C#
Daily prayer: "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
@sonne75 Danke. Ich war gerade noch damit beschäftigt leise in ein Kissen zu weinen als ich den Beitrag gelesen habe.
@tom2000 Debugging & Haltepunkte sind DAS Hilfsmittel um Fehler im Code zu finden. Bitte lies dir den Link von sonne durch. Das ist essenziell! @tom2000 2. Es ist hier nicht gerne gesehen den kompletten Post als Quote zu wiederholen, vor allem wenn der noch direkt über deinem Steht. Denn Ich weiß was ich geschrieben hab und falls es mir entfallen ist kann ich nachlesen.
There is no CLOUD - just other people's computers
Q: Why do JAVA developers wear glasses? A: Because they can't C#
Daily prayer: "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
ja ok dachte man soll hier post als quote wiederholen weil es alle gemacht haben , aber gut ich lass es weg
ich habe mir das debuggen durchgelesen und so gemacht hat aber nix gebracht
das problem is wohl immernoch das das fenster kein eigenen prozess hat
die frage is wohl immernoch wie man ein fenster per titel-name ansteuert
hab auch in google gesucht leider bisher vergeblich
Ich hab in einem alten Projekt mal diesen Code verwendet:
VB.NET-Quellcode
Dim oProcessList As Process() = Process.GetProcesses
Dim oProcess As Process
System.Threading.Thread.Sleep(1000)
ForEach oProcess In oProcessList
Debug.Print(oProcess.MainWindowTitle)
If oProcess.MainWindowTitle.Contains("Bankarbeitsplatz") Then
fenster = oProcess.MainWindowHandle
ShowWindow(fenster, 1)
SetForegroundWindow(fenster)
EndIf
Next
There is no CLOUD - just other people's computers
Q: Why do JAVA developers wear glasses? A: Because they can't C#
Daily prayer: "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
das problem is wohl immernoch das das fenster kein eigenen prozess hat
Das Debuggen an sich sucht dir Fehler und beseitigt die Probleme doch nicht. Es ging darum, dass du deinen Code Schritt für Schritt durchgehst und schaust, wo er hinspringt. Wenn der Chat ein anderes MainWindowHandle hat, als du brauchst, dann musst du schauen, ob es einen anderen Handle gibt.
vielen dank für die antwort , abs getestet das funtioniert bei mir leider nicht
hab grade aber selber die lösung gefunden mit nur 1 zeile
es ist sehr einfach man muss nur das eingeben
VB.NET-Quellcode
PrivateSub ListBox1_DoubleClick(ByVal sender AsObject, ByVal e As EventArgs) Handles ListBox1.DoubleClick
[b]AppActivate("simon")[/b]
SendKeys.Send(ListBox1.SelectedItem)
Und wenn dein Chatpartner jetzt mal nicht Simon heist?
Ich Antworte nach bestem Wissen und Gewissen. Ich übernehme keine Garantie für die Richtigkeit oder Fehlerfreiheit meiner Texte.
Ich konnte dir helfen?
- Das ist schön Ich würde mich über ein "Hilfreich" freuen
das chatfenster will ich via combobox anwählen , wenn du weist wie das per variable geht könntest du es mir direkt schreiben