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

gelöst WM SETTEXT - Nur 3 Zeichen dann Zufallswert

Mitglied: vbMaxi

vbMaxi (Level 1) - Jetzt verbinden

16.02.2008, aktualisiert 17.02.2008, 4467 Aufrufe, 6 Kommentare

Hallo @all,
ich habe ein bisschen mit der Funktion "WM_SETTEXT" experimentiert. Das Problem ist nur, dass ich der Funktion nur 3 Zeichen übergeben kann. Wenn ich mehr übergebe dann wird dem Text noch ein zufälliges Zeichen angehängt. Wie krieg ich das hin ohne das Zufällige Zeichen??

Hier der Code:
01.
Option Explicit
02.

03.
' zunächst die benötigten API-Deklarationen
04.
Private Type POINTAPI
05.
  x As Long
06.
  y As Long
07.
End Type
08.

09.
Private Declare Function GetCursorPos Lib "user32" _
10.
  (lpPoint As POINTAPI) As Long
11.

12.
Private Declare Function WindowFromPoint Lib "user32" _
13.
  (ByVal xPoint As Long, ByVal yPoint As Long) As Long
14.

15.
Private Declare Function SendMessage Lib "user32" Alias _
16.
  "SendMessageA" (ByVal hWnd As Long, _
17.
  ByVal wMsg As Long, ByVal wParam As Long, _
18.
  lParam As Any) As Long
19.

20.
Private Const WM_GETTEXT = &HD
21.
Private Const WM_SETTEXT = &HC
22.

23.
Private Sub Form_Load()
24.
  ' Timer initialisieren
25.
  tmrTimer.Interval = 10
26.
  tmrTimer.Enabled = False
27.
End Sub
28.
Private Sub cmdStart_Click()
29.
  tmrTimer.Enabled = Not tmrTimer.Enabled
30.
  cmdStart.Caption = IIf(tmrTimer.Enabled, "Stop", "Start")
31.
End Sub
32.

33.
Private Sub Label1_Click()
34.

35.
End Sub
36.

37.
Private Sub tmrTimer_Timer()
38.
  Dim oPoint As POINTAPI
39.
  Dim hWnd As Long
40.
  Dim lLength As Long
41.
  Dim sWindowText As String
42.
  
43.
  ' Mausposition ermitteln
44.
  If GetCursorPos(oPoint) <> 0 Then
45.
    ' Fensterhandle des Controls, auf dem sich
46.
    ' der Mauszeiger befindet
47.
    hWnd = WindowFromPoint(oPoint.x, oPoint.y)
48.
    sWindowText = Text2.Text
49.
    ' Fenstertext des Controls ermitteln
50.
    lLength = SendMessage(hWnd, WM_SETTEXT, _
51.
      2, CLng("&H2e4d20")) '2e562e
52.
      
53.
    ' Handle anzeigen
54.
    lblHandle.Caption = hWnd & ", " & Len(Text2.Text) & ", " & sWindowText
55.
    
56.
    ' Mausposition anzeigen
57.
    lblPos.Caption = "x " & oPoint.x & " y " & oPoint.y
58.
    
59.
    ' Fenstertext anzeigen
60.
    'lblWindowText.Caption = Left(sWindowText, lLength)
61.
  End If
62.
End Sub

Danke im vorraus und ein schönen Wochenende

lg vbmaxi
Mitglied: misterdemeanor
16.02.2008 um 14:16 Uhr
Hallo vbMaxi,


ich habe ein bisschen mit der Funktion
"WM_SETTEXT" experimentiert.
Entweder hast Du Dich falsch ausgedrückt, oder etwas falsch verstanden. WM_SETTEXT ist (wie auch in Deinem Code deklariert) eine Konstante. Sprich nur ein Alias für einen Zahlenwert.

Hier der Code:

Private Const WM_GETTEXT = &HD

Private Sub tmrTimer_Timer()
...
sWindowText = Text2.Text
' Fenstertext des Controls
ermitteln
lLength = SendMessage(hWnd, WM_SETTEXT,
_
2, CLng("&H2e4d20"))
'2e562e
?? Wenn Du etwas ermitteln willst, hier also den Text eines Controls über dem sich die Maus befindet, ist die Message SET_TEXT logisch gesehen doch falsch...richtig? Außerdem wird der dritte Parameter von SendMessage bei senden der SET_TEXT-Message nicht benutzt. Vor allem aber ist der 4te Parameter ein Pointer zu einem String der den zu setzenden Text beinhalten soll. Guckst Du hier

' Handle anzeigen
lblHandle.Caption = hWnd & ",
" & Len(Text2.Text) & ",
" & sWindowText
Hier machst Du nichts weiter als das Handle des Windows anzuzeigen über welchem sich der Mauscursor befindet. Dann natürlich noch die Länge des Textes der in Text2 und den Text aus Text2 selbst.

' Mausposition anzeigen
lblPos.Caption = "x " &
oPoint.x & " y " &
oPoint.y
OK, fein.

' Fenstertext anzeigen
'lblWindowText.Caption =
Left(sWindowText, lLength)
Wieder wie oben. Nur das was in Text2 steht und dessen Textlänge.

Beschreibe doch mal kurz was Du eigtl. vorhast. Oder schaue Dir einfach mal das hier an.

BG, Felix -misterdemeanor-
Bitte warten ..
Mitglied: vbMaxi
16.02.2008 um 20:32 Uhr
hi,
danke für deine Antwort. Eigentlich kommt der Code von einem Freund. War mir zu umständlich des da jetzt alles rein zu schreiben Hab mir den Code nicht so genau angeschat. Ich sollte einfach nur die Frage stellen. Er meinte dass man damidt z.B. Fenstertitel setzten kann. Was ja auch funktioniert. Allerdings nur bis 3 Zeichen. Laut deiner Angaben ist WM_SETTEXT gar nicht dazu bestimmt Eine Fremde Textbox etc. zu setzt, sondern nur auszulesen, habe ich das richtig verstanden??

lg maxi
Bitte warten ..
Mitglied: vbMaxi
16.02.2008 um 21:44 Uhr
hi,
Problem gelöst:
01.
Option Explicit
02.

03.
' zunächst die benötigten API-Deklarationen
04.
Private Type POINTAPI
05.
  x As Long
06.
  y As Long
07.
End Type
08.

09.
Private Declare Function GetCursorPos Lib "user32" _
10.
  (lpPoint As POINTAPI) As Long
11.

12.
Private Declare Function WindowFromPoint Lib "user32" _
13.
  (ByVal xPoint As Long, ByVal yPoint As Long) As Long
14.

15.
Private Declare Function SendMessage Lib "user32" Alias _
16.
  "SendMessageA" (ByVal hWnd As Long, _
17.
  ByVal wMsg As Long, ByVal wParam As Long, _
18.
  ByVal lParam As String) As Long
19.

20.
Private Const WM_GETTEXT = &HD
21.
Private Const WM_SETTEXT = &HC
22.

23.
Private Sub Form_Load()
24.
  ' Timer initialisieren
25.
  tmrTimer.Interval = 10
26.
  tmrTimer.Enabled = False
27.
  
28.
  tmrTimer.Enabled = Not tmrTimer.Enabled
29.
End Sub
30.
Private Sub Label1_Click()
31.

32.
End Sub
33.

34.
Private Sub tmrTimer_Timer()
35.
  Dim oPoint As POINTAPI
36.
  Dim hWnd As Long
37.
  Dim lLength As Long
38.
  Dim sWindowText As String
39.
  
40.
  ' Mausposition ermitteln
41.
  If GetCursorPos(oPoint) <> 0 Then
42.
    ' Fensterhandle des Controls, auf dem sich
43.
    ' der Mauszeiger befindet
44.
    hWnd = WindowFromPoint(oPoint.x, oPoint.y)
45.
    sWindowText = Text2.Text
46.
    ' Fenstertext des Controls ermitteln
47.
    lLength = SendMessage(196676, WM_SETTEXT, _
48.
      Len(Text2.Text), Text2.Text)   '2e562e
49.
      
50.
    ' Handle anzeigen
51.
    lblHandle.Caption = hWnd & ", " & Len(Text2.Text) & ", " & sWindowText
52.
    
53.
    ' Mausposition anzeigen
54.
    lblPos.Caption = "x " & oPoint.x & " y " & oPoint.y
55.
    
56.
    ' Fenstertext anzeigen
57.
    'lblWindowText.Caption = Left(sWindowText, lLength)
58.
    End
59.
  End If
60.
End Sub
lg vbmaxi
Bitte warten ..
Mitglied: misterdemeanor
17.02.2008 um 16:17 Uhr
hi,
danke für deine Antwort. Eigentlich
kommt der Code von einem Freund. War mir zu
umständlich des da jetzt alles rein zu
schreiben Hab mir den Code nicht so genau
angeschat. Ich sollte einfach nur die Frage
stellen.
Aha.
Er meinte dass man damidt z.B.
Fenstertitel setzten kann. Was ja auch
funktioniert.
Wenn richtig angewendet schon.
Laut deiner Angaben ist WM_SETTEXT gar nicht
dazu bestimmt Eine Fremde Textbox etc. zu
setzt, sondern nur auszulesen, habe ich das
richtig verstanden??
Nein, falsch verstanden. Man (ich) konnte nur nicht erraten was Dein Freund machen wollte.
Bitte warten ..
Mitglied: misterdemeanor
17.02.2008 um 16:23 Uhr
lLength = SendMessage(196676,
WM_SETTEXT, _
Len(Text2.Text), Text2.Text)
'2e562e

Warum codierst Du einen konstanten Wert? Sobald das Contrl mit dem Handle nicht mehr existiert nutzt Dir der Code nichts mehr. Noch seltsamer da Du ja vorher das Handle unter dem sich die Maus befindest vorher ermittelst. Seltsam.
Bitte warten ..
Mitglied: vbMaxi
17.02.2008 um 18:52 Uhr
hi misterdemeanor,
ok aber jetzt hat es ja geklappt. Nochmal danke für deine Hilfe.


lg vbmaxi
Bitte warten ..
Ähnliche Inhalte
Java
Android TextView setText via Getter
gelöst Frage von TobiasedJava1 Kommentar

Guten Tag Community, ich versuche mich gerade an meiner ersten Anroid App und bin auf ein Problem gestoßen, bei ...

Notebook & Zubehör
Surface 3 klonen
Frage von manuel1985Notebook & Zubehör1 Kommentar

Hallo Kollegen, einer meiner Kunden hat gerade knapp 20 Surface 3 (ohne Pro) für seine Außendienst-Mitarbeiter gekauft. Diese sollen ...

HTML
Kontaktformular 3 Spaltig
Frage von wescraven07HTML1 Kommentar

Moin Leude, ich schreibe gerade ein Kontaktformular und bin indem Zug dabei, meine Html und CSS-Kenntnisse wieder aufzufrischen. Im ...

LAN, WAN, Wireless
3. VLan einrichten
Frage von Mui8289LAN, WAN, Wireless2 Kommentare

Ich habe zwei VLans bereits mit Hilfe dieses Forums zum laufen gebracht. VLAN 1 = interne Computer nutzen den ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 9 StundenInternet2 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 13 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs24 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell21 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...