sYnced Posted January 10, 2013 at 04:40 PM Report #490598 Posted January 10, 2013 at 04:40 PM Boa tarde, Eu tenho um problema de momento num projecto que estou a construir, está tudo feito, mas há algo que está a falar que é screenshots a um jogo enquanto estou a jogar, já pesquisei bastante na net mas não encontro nada em concreto, encontrei um programador a falar que talves fosse do aero, então eu desliguei isso enquanto isto tirava o print, e mesmo assim nada. Se alguém souber uma library ou dll para isso e fácil de usar, que me diga por favor. Cumprimentos!
petvetbr Posted January 10, 2013 at 04:44 PM Report #490599 Posted January 10, 2013 at 04:44 PM veja se alguns destes links ajuda: https://www.youtube.com/embed/pAWtzmpS84g?feature=oembed http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/79efecc4-fa6d-4078-afe4-bb1379bb968b http://www.codeproject.com/Articles/39197/Print-Screen-in-C Fernando Lage Bastos - MCP/MCTS/MCPD
sYnced Posted January 10, 2013 at 05:44 PM Author Report #490606 Posted January 10, 2013 at 05:44 PM eu fiz dessa maneira aí acima amigo, o problema está a tirar em jogos, porque no ambiente de trabalho tira mas no resto não.
apocsantos Posted January 10, 2013 at 10:34 PM Report #490626 Posted January 10, 2013 at 10:34 PM Boa noite, //inicia variáveis count += 1; string counter = count.ToString(); int w = GraphicsDevice.PresentationParameters.BackBufferWidth; int h = GraphicsDevice.PresentationParameters.BackBufferHeight; //força o desenho de uma frame no buffer Draw(new GameTime()); //obtem a imagem que foi colocada no buffer int[] backBuffer = new int[w * h]; GraphicsDevice.GetBackBufferData(backBuffer); //copia-a para uma textura 2D Texture2D texture = new Texture2D(GraphicsDevice, w, h, false, GraphicsDevice.PresentationParameters.BackBufferFormat); texture.SetData(backBuffer); //grava no disco com o StreamWriter Stream stream = File.OpenWrite(counter + ".jpg"); texture.SaveAsJpeg(stream, w, h); //faz o dispose dos objectos stream.Dispose(); texture.Dispose(); //Dó sustenido é realmente muito cool! Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 11, 2013 at 09:15 AM Author Report #490729 Posted January 11, 2013 at 09:15 AM (edited) Caro Apocsantos, hoje durante a tarde irei testar, porque de momento não me encontro com o Portátil, mas dou te desde já os agradecimentos, pois se funcionar a minha pap fica concluída 🙂 EDIT*** Bem já estive a testar e na variável count dá erro (não foi declarada antes penso, provávelmente seja evento ou etc). quanto à biblioteca do GraphicsDevice vou tentar descobrir para não ter a "papa toda feita". Muito obrigado desde já! Edited January 11, 2013 at 09:24 AM by sYnced
sYnced Posted January 11, 2013 at 09:35 AM Author Report #490737 Posted January 11, 2013 at 09:35 AM (edited) Bem estive a pesquisar e também encontrei isto: http://clifton.me/screenshot-xna-csharp/ já descobri que XNA serve para desenvolver jogos também, mas a chamar a biblioteca estou a começar a ficar frustado! EDIT**** Bem já percebi que tenho de instalar um pacote, mas tenho uma questão, quem usufruir da minha aplicação terá de instalar o mesmo ? Obrigado. para quem não sabe e futuras dúvidas é este o pacote: http://www.microsoft.com/en-us/download/details.aspx?id=23714 Edited January 11, 2013 at 09:45 AM by sYnced
apocsantos Posted January 11, 2013 at 10:00 AM Report #490738 Posted January 11, 2013 at 10:00 AM Bom dia, Podes e deves colocar isso no manifest da tua aplicação como "pre-requisit", para a quando da instalação ser pedido ao utilizador que instale o pacote, caso este não esteja ainda instalado. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 11, 2013 at 11:20 AM Author Report #490748 Posted January 11, 2013 at 11:20 AM bem eu não sei o que é manifest, desculpa ignorância, podes dizer então como fazer isso ?
apocsantos Posted January 11, 2013 at 12:40 PM Report #490764 Posted January 11, 2013 at 12:40 PM Bom dia, No Visual Studio, com o teu projecto aberto tens na barra do lado direito no solution explorer uma serie de opções. nessas opções tens uma chamada "properties", clicas com o botão direito nessa opção e abre um form com várias tabs e opções. Lá tens em resources os ficheiros todos que fazem parte da tua aplicação e no assembly podes definir o que são "pre-requisites", "included", etc... Neste caso usas "pre-requisites" para que indique ao utilizador que deve instalar o XNA. Isto basicamente vai alterar o manifest.xml, mas penso que seja mais fácil fazeres as coisas pela interface gráfica. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 11, 2013 at 12:53 PM Author Report #490766 Posted January 11, 2013 at 12:53 PM Okok, então vou tratar disso, quer dizer então que ao abrir programa se ele não encontrar o XNA não funciona certo ?
apocsantos Posted January 11, 2013 at 01:34 PM Report #490768 Posted January 11, 2013 at 01:34 PM Boa tarde, Ao abrir, se não encontrar o XNA, pede ao utilizador para fazer download, do XNA. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 11, 2013 at 06:57 PM Author Report #490810 Posted January 11, 2013 at 06:57 PM Agora está me a dar o seguinte erro: será que me podem dar uma ajudinha ?
apocsantos Posted January 11, 2013 at 11:08 PM Report #490857 Posted January 11, 2013 at 11:08 PM Boa noite, Mostra o resto do código. Não sei conde colocas-te o código exemplo que deixei acima. Aquele código deveria estar num bloco. Só com esse screenshot sem ver onde está inserido o código, não consigo solucionar, sei que existe uma falha, que provavelmente está na estrutura onde o código foi colocado, mas mais do que isso, só "Ligando à Maya"! 😉 Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 12, 2013 at 04:25 PM Author Report #490881 Posted January 12, 2013 at 04:25 PM public void takess() { //bool aero = false; //Prints.ManageAero(aero); //aero = true; Random name = new Random(); int num = name.Next(10); int nom = name.Next(100); int nem = name.Next(1000); string[] abc = new string[] { "a", "A", "b", "B", "c", "C" }; string[] abcd = new string[] { "a", "A", "b", "B", "c", "C" }; string[] abcdf = new string[] { "a", "A", "b", "B", "c", "C" }; string[] abcdfg = new string[] { "a", "A", "b", "B", "c", "C" }; string nume = abc[name.Next(abc.Length)] + abcd[name.Next(abcd.Length)] + abcdf[name.Next(abcdf.Length)] + abcdfg[name.Next(abcdfg.Length)]; string nomeprint = txtUsername.Text + "_" + nume + num.ToString() + nom.ToString() + nem.ToString(); CaptureScreen(nomeprint, ImageFormat.Jpeg); /* int screenWidth = Screen.GetBounds(new Point(0, 0)).Width; int screenHeight = Screen.GetBounds(new Point(0, 0)).Height; Bitmap bmpScreenShot = new Bitmap(screenWidth, screenHeight); Graphics gfx = Graphics.FromImage((Image)bmpScreenShot); gfx.CopyFromScreen(0, 0, 0, 0, new Size(screenWidth, screenHeight)); string nomeprint = txtUsername.Text + "_" + nume + num.ToString() + nom.ToString() + nem.ToString(); bmpScreenShot.Save(nomeprint + ".jpg", ImageFormat.Jpeg); Prints.ManageAero(aero); */ //string nomeprint = txtUsername.Text + "_" + nume + num.ToString() + nom.ToString() + nem.ToString(); //int w = GraphicsDevice.PresentationParameters.BackBufferWidth; //int h = GraphicsDevice.PresentationParameters.BackBufferHeight; ////força o desenho de uma frame no buffer //Draw(new GameTime()); ////obtem a imagem que foi colocada no buffer //int[] backBuffer = new int[w * h]; //GraphicsDevice.GetBackBufferData(backBuffer); ////copia-a para uma textura 2D //Texture2D texture = new Texture2D(GraphicsDevice, w, h, false, GraphicsDevice.PresentationParameters.BackBufferFormat); //texture.SetData(backBuffer); ////grava no disco com o StreamWriter //Stream stream = File.OpenWrite(counter + ".jpg"); //texture.SaveAsJpeg(stream, w, h); ////faz o dispose dos objectos //stream.Dispose(); //texture.Dispose(); //UploadPrint(nomeprint); vê os o que está comentado com // até abaixo, pois eu mudei para fazer testes mas ainda não consegui! Obrigado (ps o forum apagou o meu antigo post :O)
sYnced Posted January 20, 2013 at 12:30 PM Author Report #492044 Posted January 20, 2013 at 12:30 PM Então ninguém me pode ajudar quanto a isto ?
apocsantos Posted January 20, 2013 at 01:05 PM Report #492055 Posted January 20, 2013 at 01:05 PM Bom dia, Estás a usar XNA ? A aplicação é consola ou WindowsForms ? Pelo código não consegui perceber. Se estiveres a usar XNA a solução é uma, se estiveres a usar Consola (modo de texto), é outra, e se estivers a usar WindowsForms, outra. Eu assumi inicialmente que estivesses a usar XNA, pois uma parte considerável dos game developers usa XNA. Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 20, 2013 at 09:02 PM Author Report #492125 Posted January 20, 2013 at 09:02 PM Eu estou a usar windows forms, é para um programa, quero que tire prints a um jogo enquanto ele estiver a jogar e for pedido e só me falta mesmo isso!
apocsantos Posted January 20, 2013 at 09:28 PM Report #492133 Posted January 20, 2013 at 09:28 PM Boa noite, Desculpa, mas não entendi bem a resposta, pelo que peço que clarifiques o seguinte: O jogo em causa, está feito em WindowsForms, e o que pretendes é tirar prints do mesmo sempre que for pedido ? Ou estás a desenvolver uma aplicação que tire prints de um jogo feito utilizando uma outra ferramenta ? Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
sYnced Posted January 20, 2013 at 10:24 PM Author Report #492153 Posted January 20, 2013 at 10:24 PM Estou a desenvolver uma aplicação para tirar prints a jogos, infelizmente eles saiem pretos, descobri uma nova maneira recentemente mas só me tira ao ambiente de trabalho mesmo estando no jogo!
sYnced Posted January 22, 2013 at 03:01 PM Author Report #492376 Posted January 22, 2013 at 03:01 PM ajudem por favor
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now