/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Paste fra Windows til C-program
Fra : Søren \"Pengman\" Pe~


Dato : 26-03-03 19:27

Hey gruppe

Hvordan kan jeg lave det sådan at jeg kan kopiere fra et eller andet windue
i windows og over til mit C-program (som kører i sådan et DOS-vindue den
selv åbner og lukker når den er færdig).
Det jeg ønsker mig er at man enten kan bruge Ctrl+V (som I alle andre
windovsprogrammer) eller at den automatisk læser den tekst der står i
clipboard og indsætter dem.

Kan en af dissse løsninger lade sig gøre (rimelig nemt)?? Enten ved at
indsætte noget kode i mit program eller ved at ændre på en indstilling i
windows??

Venlig hilsen og på forhånd tak:
Søren Pedersen



 
 
Bertel Brander (27-03-2003)
Kommentar
Fra : Bertel Brander


Dato : 27-03-03 00:10

Søren "Pengman" Pedersen skrev:
> Hey gruppe
>
> Hvordan kan jeg lave det sådan at jeg kan kopiere fra et eller andet windue
> i windows og over til mit C-program (som kører i sådan et DOS-vindue den
> selv åbner og lukker når den er færdig).
> Det jeg ønsker mig er at man enten kan bruge Ctrl+V (som I alle andre
> windovsprogrammer) eller at den automatisk læser den tekst der står i
> clipboard og indsætter dem.
>
> Kan en af dissse løsninger lade sig gøre (rimelig nemt)?? Enten ved at
> indsætte noget kode i mit program eller ved at ændre på en indstilling i
> windows??
>
Følgende burde kunne bruges:

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>

int main(void)
{
char *s;
HANDLE handle;

if(!OpenClipboard(NULL))
{
printf("Failed to open clipboard!\n");
return EXIT_FAILURE;
}
if((handle = GetClipboardData(CF_TEXT)) == 0)
{
printf("Failed to get clipboard data!\n");
CloseClipboard();
return EXIT_FAILURE;
}
if((s = (char *)GlobalLock(handle)) == NULL)
{
printf("Failed to lock clipboard data!\n");
CloseClipboard();
return EXIT_FAILURE;
}
printf("Clipboard data: %s\n", s);
CloseClipboard();

return 0;
}

Jeg har compilet det med gcc (cygwin) og det ser ud til at virke,
det burde køre uden ændringer med andre C-compilere.

/b

--
Bertel Brander, author of Wain, a free text editor for programmers:
http://home20.inet.tele.dk/midgaard/program.htm


Søren \"Pengman\" Pe~ (27-03-2003)
Kommentar
Fra : Søren \"Pengman\" Pe~


Dato : 27-03-03 20:30

> Følgende burde kunne bruges:
> ....
> Bertel Brander, author of Wain, a free text editor for programmers:
> http://home20.inet.tele.dk/midgaard/program.htm
>

Dette er præcist havd jeg leder efter - takker mange gange

Søren



Søren \"Pengman\" Pe~ (27-03-2003)
Kommentar
Fra : Søren \"Pengman\" Pe~


Dato : 27-03-03 21:07

> >
>
> Dette er præcist havd jeg leder efter - takker mange gange


Og dog - jeg kunne vel ikke får dig til at kommentere din kode en smule??
Eller bare give mig et eventuelt link med informationer om hvordan det helt
præcist virker... således at jeg rent faktisk forstår hvad der foregår -
istedet for at jeg bare kopiere din kode.

På forhånd tak
Søren



Bertel Brander (28-03-2003)
Kommentar
Fra : Bertel Brander


Dato : 28-03-03 00:37

Søren "Pengman" Pedersen skrev:
>>Dette er præcist havd jeg leder efter - takker mange gange
>
>
>
> Og dog - jeg kunne vel ikke får dig til at kommentere din kode en smule??
> Eller bare give mig et eventuelt link med informationer om hvordan det helt
> præcist virker... således at jeg rent faktisk forstår hvad der foregår -
> istedet for at jeg bare kopiere din kode.
>
De funktions kald der bruges er standard Windows API-kald, find dem i
dokumentationen for din compiler, jeg kan ikke komme med en bedre
forklaring end den du kan finde der.
Jeg vil mene at det er en anelse hovedløst at forsøge at forsøge at
bruge disse funktioner uden en ordentlig dokumentation.
Jeg vil tro at dokumentation kan downloades fra www.microsoft.com
Skulle du have specifikke spørsmål er du velkommen til at stille
dem her.

/bertel


Bertel Lund Hansen (27-03-2003)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-03-03 08:15

Søren "Pengman" Pedersen skrev:

>Hvordan kan jeg lave det sådan at jeg kan kopiere fra et eller andet windue
>i windows og over til mit C-program (som kører i sådan et DOS-vindue den
>selv åbner og lukker når den er færdig).

Når der er noget tekst i Windows' udklipsholder, kan du klikke på
rejsekufferten i menubjælken i en Dosboks.

Skal du den anden vej, klikker du først på den venstre firkant,
indrammer den ønskede tekst med musen og klikker derefter på de
to ark til venstre for rejsekufferten (et tryk på <Enter> har
samme effekt). Nu er teksten i udklipsholderen.

Sådan kan man faktisk også klippe fra en Dosboks til en anden -
eller til sig selv hvilket kan være praktisk fordi det indrammede
område er bundet til rammen og ikke til de logiske linjer.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408193
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste