Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VB6, Delphi lub Visual Studio 2008

romantv 24 Sie 2010 20:03 1408 8
  • #1 24 Sie 2010 20:03
    romantv
    Poziom 17  

    Witam i z góry dziękuję za pomoc :).
    Potrzebuje napisać program, który będzie pracował jakby w tle. Na ekranie będzie widoczna klawiatura. Program ten będzie odpierał informacje przez RS232 odpowiedni kod wczyta kod np. odpowiadający literze "a" i ta litera ma być wyświetlona w innym programie np. gg lub przeglądarka internetowa.
    Moje pytanie jak przekierować kod litery do innego programu.

    0 8
  • #2 24 Sie 2010 21:31
    Dżyszla
    Poziom 42  

    Wystarczy rozesłać komunikat Windowsa (WM_CHAR). Alternatywnie jest jeszcze specjalna funkcja keyb_evet (albo jakoś podobnie) z WinAPI, choć głowy nie daję, czy ona wysyła do bieżącej aplikacji, czy do aktywnej.

    0
  • #3 31 Sie 2010 16:46
    romantv
    Poziom 17  

    Dziękuję za odp.
    Jednak pozwolę sobie zapytać czy może mi Pan podać jakiś prosty przykład.
    Bo nie mam pojęcia od czego mam zacząć.

    Dziękuję

    0
  • #5 31 Sie 2010 22:04
    romantv
    Poziom 17  

    Tak przeczytałem i nic.
    Mam pytanie jak mogę to zrobić w Visual Studio lub w VB
    nie wiem jak i od czego zacząć, może jakiś przykładowy kod a dalej już zobaczę.

    Jeżeli chodzi o WM_CHAR
    to też zbyt wiele nie znalazłem pod VB

    Może jeszcze raz opiszę problem.
    Potrzebuję fragment kodu napisanego w VS lub VB, który będzie realizował następującą funkcję:

    w programie jest jeden przycisk każde naciśnięcie buttona powoduje, że w label wyświetlane są kolejno cyfry, a następnie cały alfabet. Cyfry i litery kolejno się dodają w polu label i powstaje jakiś string 1234567890abcde... To działa ok.

    Problem mam taki, że nie wiem jak wartość z label przepisać np. do gg innego komunikatora czy nawet do przeglądarki.

    W efekcie końcowym czynność tą będzie wykonywał układ elektroniczny, który będzie się komunikował po RS ten układ też działa poprawnie.

    Dziękuję.

    0
  • Pomocny post
    #6 01 Wrz 2010 12:59
    arnoldziq
    Moderator Programowanie

    Microsoft napisał:
    vb.net syntax
    <DllImport("user32.dll", EntryPoint:="keybd_event", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
    Public Shared Sub Keybd_event(ByVal vk As Byte, ByVal scan As Byte, ByVal flags As Integer, ByVal extrainfo As Integer)
    End Sub


    Uruchamiasz Sub Keybd_event z odpowiednimi parametrami, i w aktywnej aplikacji otrzymujesz "naciśnięcie" przycisku klawiatury, który odpowiada podanym parametrom.
    Wszystko znajduje się na w/w stronie. Wystarczy przewinąć ją do końca. :sm31:

    0
  • #7 01 Wrz 2010 15:59
    romantv
    Poziom 17  

    Witam dziękuję za pomoc
    <DllImport - jest tu błąd, (w Visual Studio) pierwszy raz piszę w tym programie a i jeszcze teka nietypowa funkcja. Rozumiem, że należy pobrać bibliotekę.

    0
  • #8 01 Wrz 2010 16:09
    arnoldziq
    Moderator Programowanie

    Microsoft napisał:
    C# syntax
    [DllImport("user32.dll", EntryPoint="keybd_event", CharSet=CharSet.Auto, ExactSpelling=true)]
    public static extern void keybd_event(byte vk, byte scan, int flags, int extrainfo);

    0
  • #9 01 Wrz 2010 22:10
    romantv
    Poziom 17  

    Witam napisalem cos takiego błędu nie ma ale oczywiście , że tak nie będzie działać.

    Code:
     Public Declare Sub input Lib "user32.dll" Alias "keybd_event" ()
    

    Public Const KEYEVENTF_KEYUP = &H2


        Sub SendMessage_example()
            Dim application_name As String

            application_name = "notepad.exe"

        End Sub

        Private Sub kod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles kod.Click
            SendMessage_example()

        End Sub

    Po naciśnięciu button-a aplikacja otwiera się jednak nic nie mogę pisać w niej za pomocą programu mojego , który działa w tle.

    Proszę o wyrozumiałość i dziękuję.

    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0