Toon posts:

String in Kladblok/Notepad invoegen via Delphi/C++ programma

Pagina: 1
Acties:
  • 124 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Is het mogelijk om vanuit een Delphi of Visual C++ programma een tekst string in te voegen in Kladblok/Notepad?
Het is de bedoeling dat ik karakters via de seriele poort inlees en vervolgens in Kladblok/Notepad invoeg.

Ik heb wat op internet gezocht maar alleen wat dingen gevonden mbt tot Word.

Misschien heeft iemand op dit forum wat tips of een oplossing?

  • hamburger
  • Registratie: April 2000
  • Niet online

hamburger

BOOOM!!!

Waarom gebruik je niet gewoon in een TMemo?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

hamburger schreef op 11 oktober 2002 @ 23:18:
Waarom gebruik je niet gewoon in een TMemo?
Check :)

Originele vraag is echt zo'n gevalletje: hoe maak ik van een simpel probleem een zo complex mogelijk vraagstuk... :z

Professionele website nodig?


Verwijderd

Als je echt data naar notepad wilt schrijven : zoek eens op PostMessage uit de win32 api in de MSDN, in combinatie met de WM_KEYDOWN/WM_KEYUP message O-)

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

of zelfs WM_SETTEXT als notepad een echte memo (multiline edit) gebruikt

We adore chaos because we like to restore order - M.C. Escher


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:21
hamburger schreef op 11 oktober 2002 @ 23:18:
Waarom gebruik je niet gewoon in een TMemo?


Of een TStringList. Als je de ingelezen tekst niet wilt tonen, is een tstringlist voldoende. Deze heeft ook de functies SaveToFile en LoadFromFile. (De Text property (of was het nu weer de Lines?) van die TMemo is nl. een TStringList.

https://fgheysels.github.io/


  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 07:04
Astringlist.lines.text :)

Verwijderd

Topicstarter
Ik heb onderstaande gemaakt om kladblok (tbv testen, in de echte applicatie wordt dit een invoerprogramma van een database) te selecteren, echter het werkt niet goed, hij maakt van kladblok namelijk niet het actieve window.
Het doel van dit programma is om data van een barcodescanner in een database in te voeren ipv het intypen van de data.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//als er meer dan 1 window is dan:
if ((hwnd = GetTopWindow(NULL)) != NULL)
{
    do 
    {
        //selecteer naam van window
        GetWindowText(hwnd,module,sizeof(module));
        //als geselecteerde naam gelijk is aan kladblok dan:
        if (module == "Naamloos - Kladblok")
        {
            //maak van kladblok het actieve window
            SetForegroundWindow(hwnd);

            //stuur data naar kladblok
            //......
        }
    } 
    //ga naar volgende window
    while ((hwnd = GetNextWindow(hwnd, GW_HWNDNEXT)) != NULL);
}


Wat doe ik fout? Of kan dit niet.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Wederom - waarom niet een TMemo in je eigen app?!?

Mocht je koppig willen blijven volharden in werken via Notepad zou ik iig niet op windownaam zoeken maar naar het mainwindow van process 'notepad.exe', dan werkt het tenminste ook als je al een bestand hebt geladen en op Engelse versies. Verder doet SetForegroundWindow alleen het window naar voren halen en niet activeren, hiervoor moet je SetActiveWindow gebruiken. Deze functie werkt echter alleen als de message queue van het betreffende window aan jouw current thread hangt, en dat is met Notepad niet zo. Je zult dus even met AttachThreadInput en DuplicateHandle aan de gang moeten om de benodigde handles in de goeie state te kunnen trappen.

Na dit verhaal verderom:

Waarom niet een TMemo in je eigen app?!?

Ik zie het nut van notepad hierbij echt niet... :?

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 15 oktober 2002 @ 21:31:
Ik heb onderstaande gemaakt om kladblok (tbv testen, in de echte applicatie wordt dit een invoerprogramma van een database)
Ah DAAAAROM.... :Y)

Tering, ga jij eens snel documentatie lezen over SQL en ODBC en je niet inlaten met dit soort ranzige oplossingen. :O

Professionele website nodig?

Pagina: 1