Svish Skrevet 3. april 2006 Del Skrevet 3. april 2006 Jeg har et par spørsmål, som jeg håper noen har noen greie svar på, hehe. Det første jeg har lurt på er om det er mulig å skru av og på skjermen med software. En kan jo i power-settings be om at skjermen skal skru seg av etter så så mange minutter, og så skrus den på igjen når jeg rører på musa eller trykker en knapp. Kan jeg gjøre dette manuelt fra et program? altså skru av skjermen? og så skru den på igjen? for eksempel ved å kjøre programmet? altså at når man kjører programmet, så sjekker den om skjermen er av eller på, og så skrur den på eller av. Eventuelt ha programmet liggende i bakgrunnen å vente på en bestemt tastetrykk/kommando/sammensetning, noe som bringer oss til ting nummer 2 jeg lurer på: Og det andre jeg lurer på er hvordan en kan lage et program som "stjeler" en tast. Winamp for eksempel har jo en global key ting, hvor man kan sette ctrl+alt+shift+tast kombinasjoner til å være play og neste sang osv osv. Hvordan gjør en sånt? Og hvordan finner en ut hva tastekombinasjon som gir hva? Noe som bringer oss til tredje og siste jeg lurer på: Jeg har kjøpt en fjernkontroll fra cyberlink, og den har en powerbutton øverst til høyre. Fant ut at den er koblet til "When I press the sleep button on my computer:" innstillingen i Power Options->Advanced. Og for at jeg ikke skulle skru av pcen uten å mene det mens jeg ser på film etc, hehe, satte jeg den til "Do nothing". men det vil jo si at den knappen nå ikke gjør noe som helst. Og det jeg veldig gjerne skulle hatt den til å gjøre er nettopp det å skru skjermen av og på. Så om noen har en genial måte å fikse det på, så ville jeg blitt veldig takknemlig =D grunnen til mine tre spørsmål er en ide om at jeg kunne latt et tiny mini program, som bruker ultra lite resurser, ligge i bakgrunnen og lytte etter akkurat den knappen (hvordan man nå enn gjør det), og så når den blir trykket, skru av/på skjermen ettersom om den er på/av. Noen som hang med?! hehe. poenget med dette er at en kan ligge i senga før en legger seg, se film/tv/whatever, og når den er ferdig, bare skru av skjermen og så sove, istedet for å måtte gå bort å klikke på knappen (noe som resulterer i at en gjerne våkner litt veldig i blant..). Pcen min har nemlig et par servere og slikt gående, så skrur den ikke av om natten. ellers kunne jeg jo bare brukt skru av knappen som den var.... alright! Noen smarte mennesker som har noen ideer?? Lenke til kommentar
dayslepr Skrevet 3. april 2006 Del Skrevet 3. april 2006 vel, du må kunne programmere og kunne slå opp i Win32-APIene på MSDN ..og det er stort sett det.. Lenke til kommentar
Svish Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 ja...ikke noe problem...bare å kunne alt å være pro, så funker alt fint.... jeg spurte om hjelp da, men etter å ha lest litt innlegg her så ser det ut til at folk er mer glad i å brife med at de er flinkere enn andre? Jeg har bare lært C++ i et halvt år, som et av 5 fem fag, kan ikke så mye. og det msdn greiene er en vits. bare rot jo. umulig å finne noe som helst. mulig det er lett å finne frem i hvis jeg hadde vært som deg å være hyperflink og programmert i 117 år, men det har jeg ikke. jeg har har lært å programmere i snart 2 år, og jobbet mest med java, som er et ypperlig språk. men av og til må man liksom over til rotete og innvikla språk som C++. no offense til dere som digger C++, hehe. ypperlig språk da, men synes java er ryddigere og lettere å forstå. men nå er det altså C++, og jeg har ikke så mye peil, og hadde blitt veldig takknemlig om noen kunne hjelpe meg litt. (og tenker da på andre ting enn "du burde vært flinkere til å programmere" eller "det finner du lett ut av", for det er jeg ikke, og det har jeg foreløpig ikke gjort). yess....så...igjen GOTO post 1 Lenke til kommentar
Mr.Garibaldi Skrevet 3. april 2006 Del Skrevet 3. april 2006 Det finnes flere forskjellige måter å spørre om hjelp på. En er å si "Jeg vil ha et program som skal gjøre X Y Z. Hvordan gjør jeg det?", noe som mer eller mindre legger alt arbeidet på den som skal hjelp deg, og viser lite initiativ. Den andre måten er noe alá "Hei, jeg vil lage et program som skal gjøre X Y Z. Og jeg lurer i den anledning på en del ting. Hvordan kan jeg få til X? Jeg har forsøkt..." Da viser du at du faktisk har prøvd å gjøre noe, i stedet for at alt skal bli servert. Problemet med å ta imot tastetrykk når programmet kjører i bakgrunnen er det flere forskjellige måter å gjøre. Jeg fant en "all-purpose" Keyboard hooker som ser ut som om den gjør det du er på jakt etter. Du finner den her.. Tok ca. 5 min å finne den. Lenke til kommentar
Svish Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 beklager, ikke ment sånn, hehe. (bare blir litt frustrert over sånne svar...vet allerede at jeg er dårlig, hehe) og cluet er at jeg har hatt lyst en stund til å lage programmet som gjør x y og z, men ikke har visst hva sånt heter, eller hva en søker etter. krever naturligvis ikke noe ferdig program. Har lyst til å bli flinkere =) men tusen takk for tipset Garibaldi! skal se om jeg skjønner noe av den keyboard hooker saken =D (noe jeg tror jeg hadde brukt riiimlig lang tid på å finne ut av at det het....) Lenke til kommentar
dayslepr Skrevet 3. april 2006 Del Skrevet 3. april 2006 (endret) *snip* 5860917[/snapback] jørs; så mye tekst, og så lite innhold -- godt jobbet \o/ seriøst; dette er faktisk litt jobb, men svarene finnes i MSDN, ok? .. dette er Win32-spesifike spørsmål - og svarene ..uhm.. ligger i MSDN .. tenk: MSDN ... heh.. eneste måten å finne ut av det er å grave seg "dypt ned i møkka"; kjipt, eller hva? dog.. er du jævlig heldig finner du noen som har vært borti _akkurat_ disse tingene før og vet sånn ca. hvor de skal leite slik at de kan henvise deg mer eksakt enn å si "sjekk MSDN", men jeg tviler litt er du ennå heldigere så gidder kanskje noen å leite for deg .. eller har du flax finner du kanskje en usenet-artikkel om det, eller en "vanlig" artikkel om noe lignende, hvem vet? (ikke-sannt; som Mr. Garbriladi er inne på) Endret 3. april 2006 av dayslepr Lenke til kommentar
Emancipate Skrevet 3. april 2006 Del Skrevet 3. april 2006 Monitor av: SendMessage(GetForegroundWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, 2); Monitor på: SendMessage(GetForegroundWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, -1); Lenke til kommentar
Svish Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 (endret) åh helmaks tsg1zzn! *teste ut så fort som mulig* =D (hvordan skulle jeg ha funnet ut av det der på egenhånd liksom...? tusen takk=) og til dayslepr: beklager all min tekst. av og til er det bare sånt som skjer hos meg. bare sitter å taster og ting kan bli langt uten innhold eller mening...dvs det er vel der inne et sted, men ja. uansett, var det jeg håpet på ja, at noen hadde en liten clue. kan jo grave meg ned i msdn, men hadde håpet å ikke måtte grave meg heeelt ned. så det jeg håpet på var om noen hadde noen funksjoner som hadde med såntå gjøre, slik at jeg hadde et sted å starte. og nå har jeg muligens det. så takk skal dere ha alle sammen =) så skal jeg prøve å la være å spørre her igjen om jeg lurer på noe, og kun spørre om det er liv om å gjøre. Endret 3. april 2006 av Tussi_qwerty Lenke til kommentar
Arne Skrevet 3. april 2006 Del Skrevet 3. april 2006 Det er faktisk ingen som har sagt at du ikkje skal få hjelp viss du lurar på noko. Spør ofte om det er noko eg lurar på eg, men er prøvar mykje sjølv. MEN! Eg seier for all del ikkje at du ikkje har prøvd. Lenke til kommentar
Giddion Skrevet 3. april 2006 Del Skrevet 3. april 2006 (endret) okai for det første hvis noen virkelig driver med programmerer med win32 så last for all del ned platform SDK og bruk hjelpen der... msdn på nettet er virkelig knotete å finne fram i hvis du ikke vet hvor du skal lete.. google er nesten alltid bedre. Endret 3. april 2006 av Giddion Lenke til kommentar
dayslepr Skrevet 3. april 2006 Del Skrevet 3. april 2006 (endret) hehe, slapp av tussi .. jeg er bare rasshøl fordi jeg kjeder meg bra det endte godt - i hvertfall så langt Endret 3. april 2006 av dayslepr Lenke til kommentar
Svish Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 det høres bra ut. men da er vi fortsatt venner da, hehe. jeg skrev dette etter 4 timer med elektronikk forelesning og har lest om sockets og http protocoller og anna surr resten av dagen, så....da blir det sånn men men, i morgen er det mer elektronikk, og mer sockets, http og html, så skal lavære å poste noe C++ spørsmål i morgen ;p Lenke til kommentar
dayslepr Skrevet 3. april 2006 Del Skrevet 3. april 2006 men er det ikke greit å ha noe og ta seg til? post i vei du .. det ser jo ut til at noen har oversikt over Win32 her Lenke til kommentar
Svish Skrevet 3. april 2006 Forfatter Del Skrevet 3. april 2006 ;-) indeed it is. hadde det bare vært litt mindre, så en hadde hatt litt mer tid til å grave seg ned i hobbyprosjekter on the side men definitivt ok ;P Lenke til kommentar
bjeffbjeff Skrevet 3. april 2006 Del Skrevet 3. april 2006 (endret) Ang det derre winamp greiene kan denne være til hjelp.... Compile den så kan du bruke den i cmd... Uansett kan du kanskje modifisere den til eget bruk! Edit: Vet ikke om denne virker til nye winamp(noen får teste). Jeg bruker seff winamp 2.9x...Funker som faen da.. /* Created by Ghost5316 (MBald) * You may change this file in any way you like, * please include my name when redistributed */ #include <windows.h> #include <iostream> #include <string> using namespace std; const long cPrevTrack = 40044; // Previous track button const long cNextTrack = 40048; // Next track button const long cStartPlay = 40045; // Play button const long cPausePlay = 40046; // Pause/Unpause button const long cStopPlay = 40047; // Stop button const long cFadeAndStop = 40147; // Fadeout and stop const long cStopAfterTrack = 40157; // Stop after current track const long cForward5Secs = 40148; // Fast-forward 5 seconds const long cRewind5Secs = 40144; // Fast-rewind 5 seconds const long cStartOfPlaylist = 40154; // Start of playlist const long cEndOfPlaylist = 40158; // Go to end of playlist const long cRaiseVol = 40058; // Raise volume by 1% const long cLowerVol = 40059; // Lower volume by 1% const long cExecuteVisualPlugin = 40192; // Execute current visualization plug-in const long cShowMainWindow = 40258; // Toggle main window visible const long cConfigureVisual = 40221; // Configure current visualization plug-in const long cReloadSkin = 40291; // Reload the current skin const long cCloseWinamp = 40001; // Close Winamp const long cPrev10Tracks = 40197; // Moves back 10 tracks in playlist const long cAddTrackAsBook = 40321; // Adds current track as a bookmark const long cPlayAudioCD = 40323; // Play audio CD const long cLoadPresetFromEQ = 40253; // Load a preset from EQ const long cSavePresetToEQ = 40254; // Save a preset to EQF const long cLoadDefaultPreset = 40174; // Load default preset const long cToggleTimeElapsed = 40037; // Set time display mode to elapsed const long cToggleTimeRemaining = 40038; // Set time display mode to remaining const long cTogglePrefs = 40012; // Toggle preferences screen const long cToggleAbout = 40041; // Toggle about box const long cToggleTitleScroll = 40189; // Toggle title Autoscrolling const long cToggleOnTop = 40019; // Toggle always on top const long cToggleMainShade = 40064; // Toggle Windowshade const long cTogglePLShade = 40266; // Toggle Playlist Windowshade const long cToggleDoubleSize = 40165; // Toggle doublesize mode const long cToggleEQ = 40036; // Toggle EQ const long cTogglePlaylist = 40040; // Toggle playlist editor const long cToggleMiniBrows = 40298; // Toggle minibrowser const long cToggleEasymove = 40186; // Toggle easymove const long cToggleRepeat = 40022; // Toggle repeat const long cToggleShuffle = 40023; // Toggle shuffle const long cOpenFile = 40029; // Open file dialog const long cOpenURL = 40155; // Open URL dialog const long cOpenFileInfo = 40188; // Open file info box const long cOpenPlugOpts = 40190; // Open visualization options const long cOpenVisualPlugOpts = 40191; // Open visualization plug-in options const long cOpenJumptoTime = 40193; // Open jump to time dialog const long cOpenJumptoFile = 40194; // Open jump to file dialog const long cOpenSkinSel = 40219; // Open skin selector const long cOpenEditBookmarks = 40320; // Show the edit bookmarks const long cOpenLoadPreset = 40172; // Opens load presets dialog const long cOpenAutoLoadPresets = 40173; // Opens auto-load presets dialog const long cOpenSavePreset = 40175; // Opens save preset dialog const long cOpenAutoLoadPreset = 40176; // Opens auto-load save preset const long cOpenDeletePreset = 40178; // Opens delete preset dialog const long cOpenDeleteAutoLoad = 40180; // Opens delete an auto load preset dialog HWND hwndWinamp; void sendMsg(long ID) { long x = SendMessage(hwndWinamp, WM_COMMAND, ID, NULL); } void showPlaybackStatus() { int ret=SendMessage(hwndWinamp,WM_USER, 0, 104); if(ret == 1) { cout << "Playing"; } else if(ret == 3) { cout << "Paused"; } else { cout << "Stopped"; } } void showPlayingTime() { int ret=SendMessage(hwndWinamp,WM_USER, 0, 105); ret = ret / 1000; int min = ret / 60; int sec = ret - min*60; if(sec < 10) cout << min << ":" << "0" << sec; else cout << min << ":" << sec; } void showPlayingLength() { int ret=SendMessage(hwndWinamp,WM_USER, 1, 105); int min = ret/60; int sec = ret - min*60; if(sec < 10) cout << min << ":" << "0" << sec; else cout << min << ":" << sec; } void showPlaylistSize() { int ret=SendMessage(hwndWinamp,WM_USER, 1, 124); cout << ret; } void showBitRate() { int ret=SendMessage(hwndWinamp,WM_USER, 1, 126); cout << ret; } void showSampleRate() { int ret=SendMessage(hwndWinamp,WM_USER, 0, 126); cout << ret*1000; } void showRepeatToggle() { int ret=SendMessage(hwndWinamp,WM_USER, 0, 251); if(ret == 1) cout << "On"; else cout << "Off"; } void showShuffleToggle() { int ret=SendMessage(hwndWinamp,WM_USER, 0, 250); if(ret == 1) cout << "On"; else cout << "Off"; } void showTitle() { char this_title[2048],*p; GetWindowText(hwndWinamp,this_title,sizeof(this_title)); p = this_title+strlen(this_title)-8; while (p >= this_title) { if (!strnicmp(p,"- Winamp",8)) break; p--; } if (p >= this_title) p--; while (p >= this_title && *p == ' ') p--; *++p=0; cout << this_title; } void main(long argc, char *argv[]) { hwndWinamp = FindWindow("Winamp v1.x", NULL); string x = ""; if(argc > 1) { x = argv[1]; } if(x == "play") { sendMsg(cStartPlay); } else if(x == "stop") { sendMsg(cStopPlay); } else if(x == "pause") { sendMsg(cPausePlay); } else if(x == "next") { sendMsg(cNextTrack); } else if(x == "prev") { sendMsg(cPrevTrack); } else if(x == "vol_up") { sendMsg(cRaiseVol); } else if(x == "vol_down") { sendMsg(cLowerVol); } else if(x == "stop_with_fade") { sendMsg(cFadeAndStop); } else if(x == "toggle_playlist") { sendMsg(cTogglePlaylist); } else if(x == "toggle_eq") { sendMsg(cToggleEQ); } else if(x == "toggle_shuffle") { sendMsg(cToggleShuffle); } else if(x == "toggle_repeat") { sendMsg(cToggleRepeat); } else if(x == "forward_5_seconds"){ sendMsg(cForward5Secs); } else if(x == "rewind_5_seconds") { sendMsg(cRewind5Secs); } else if(x == "open_file") { sendMsg(cOpenFile); } else if(x == "show_winamp") { sendMsg(cShowMainWindow); } else if(x == "open_url") { sendMsg(cOpenURL); } else if(x == "open_file") { sendMsg(cOpenFile); } else if(x == "play_audiocd") { sendMsg(cPlayAudioCD); } else if(x == "visualization") { sendMsg(cExecuteVisualPlugin); } else if(x == "stop_when_done") { sendMsg(cStopAfterTrack); } else if(x == "get_title") { showTitle(); } else if(x == "get_status") { showPlaybackStatus(); } else if(x == "get_playlength") { showPlayingLength(); } else if(x == "get_playtime") { showPlayingTime(); } else if(x == "get_playlistsize") { showPlaylistSize(); } else if(x == "get_bitrate") { showBitRate(); } else if(x == "get_samplerate") { showSampleRate(); } else if(x == "get_shuffletoggle"){ showShuffleToggle(); } else if(x == "get_repeattoggle"){ showRepeatToggle(); } else { cout << "Arguments : " << endl; cout << " play" << endl; cout << " stop" << endl; cout << " pause" << endl; cout << " next" << endl; cout << " prev" << endl; cout << " vol_up" << endl; cout << " vol_down" << endl; cout << " stop_with_fade" << endl; cout << " toggle_playlist" << endl; cout << " toggle_eq" << endl; cout << " toggle_shuffle" << endl; cout << " toggle_repeat" << endl; cout << " forward_5_seconds" << endl; cout << " rewind_5_seconds" << endl; cout << " open_file" << endl; cout << " show_winamp" << endl; cout << " open_url" << endl; cout << " open_file" << endl; cout << " play_audiocd" << endl; cout << " visualization" << endl; cout << " stop_when_done" << endl; cout << " get_title" << endl; cout << " get_status" << endl; cout << " get_playlength" << endl; cout << " get_playtime" << endl; cout << " get_playlistsize" << endl; cout << " get_bitrate" << endl; cout << " get_samplerate" << endl; cout << " get_shuffletoggle" << endl; cout << " get_repeattoggle" << endl << endl; cout << ":: post to the forums if you want any more functionality ::" << endl; cout << ":: (make surey you explain what you want :-p) ::" << endl; cout << ":: Note: a select few functions only work in winamp ver 2.5+ ::" << endl; } } Endret 3. april 2006 av bjeffbjeff Lenke til kommentar
Dead_Rabbit Skrevet 4. april 2006 Del Skrevet 4. april 2006 (endret) Før eller siden blir du nødt til å grave deg ned i Win32 APIet Edit: Altså, hvis du skal drive mye med Windows-programmering da Endret 4. april 2006 av zirener Lenke til kommentar
Arne Skrevet 4. april 2006 Del Skrevet 4. april 2006 BjeffBjeff: Går ikkje å kompliere her, denne linja gjer ein "warning": long x = SendMessage(hwndWinamp, WM_COMMAND, ID, NULL); Warning: 63 D:\***\main.cpp [Warning] passing NULL used for non-pointer converting 4 of `LRESULT SendMessageA(HWND__*, UINT, WPARAM, LPARAM)' Lenke til kommentar
Dead_Rabbit Skrevet 4. april 2006 Del Skrevet 4. april 2006 (endret) Da går det jo da... Den advarer at du sender NULL til noe som ikke er en peker. (Eller noe sånt, heh) Uansett, sånne warnings trenger du ikke å bry deg om. Det er greit å se gjennom dem, for å se om du kanskje har gjort en feil, men om ting er riktig, kan du bare ignorere dem. Endret 4. april 2006 av zirener Lenke til kommentar
Arne Skrevet 4. april 2006 Del Skrevet 4. april 2006 Men når eg skal kopliere, kjem waningen opp. Eg brukar Dev-C++. Korleis ignorerar eg ein advarsel der? Lenke til kommentar
dayslepr Skrevet 4. april 2006 Del Skrevet 4. april 2006 (endret) forsøk å bytte ut NULL med 0 (edit: uten at jeg sitter med dette forran meg slik at jeg teste ..) Endret 4. april 2006 av dayslepr Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå