kwnds Posted November 27, 2006 at 08:13 PM Report #67161 Posted November 27, 2006 at 08:13 PM Estou a criar um code para desligar o windows, e estive a pesquisar nesta página e devia ficar assim: #include <windows.h> void main (void){ BOOL WINAPI ExitWindowsEx( UINT EWX_POWEROFF, DWORD EWX_FORCE ); } Onde está o erro? Eu sempre iniciei o programa com "void main (void)", a minha dúvida é: como posso criar outra função por exemplo "tempo" e durante a main, usar a "tempo"? Exemplo: #include <conio.h> #include <stdio.h> void main (void){ printf("ola adeus"); getch(); /*Aqui queria correr a funcao "tempo"*/ } Funcao tempo{ blablabla blablabla } Se desse, o que acontecia assim que a main era terminada, o software desligava-se ou voltava outra vez á "tempo"? Abraços
TheDark Posted November 29, 2006 at 12:17 AM Report #67497 Posted November 29, 2006 at 12:17 AM Quanto à 1ª dúvida, estás a chamar a função incorrectamente... Sem querer soar paternal, devias aprender a sintaxe do C antes de começar a programar coisas mais sérias. Há ali muita conversa sobre as permissões que o programa tem que ter para poder desligar o Windows, mas com um pouco de sorte basta chamar a função ExitWindowsEx com os parâmetros que são descritos na página que indicaste. A função aceita 2 parâmetros: - o 1º diz o que queres fazer ao sistema: se queres desligar, reiniciar, fazer logout, etc. Os valores que pode tomar estão descritos na página que indicaste; - o 2º diz ao sistema qual é a razão para desligar o Windows, e estão descritos aqui os valores que pode tomar. Se o que queres é desligar o computador, isto (em princípio) serve: #include <windows.h> void main (void){ ExitWindowsEx(EWX_POWEROFF | EWX_FORCEIFHUNG, SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_MAINTENANCE); } Quanto à 2ª dúvida: - Quando a função main termina, acabou. Mais nenhum código é executado, e o controlo é devolvido ao sistema operativo. Na prática não é exactamente assim, mas a ideia é que mais nenhum código que tenhas escrito é executado. - Para a função tempo ser executada, primeiro tinha que estar declarada antes da função main,o que pode ser feito de duas maneiras: ou escreves o cabeçalho da função antes da main e implementas a função depois, assim: void tempo(); void main() { tempo(); } void tempo() { //função aqui } ou implementas logo antes da main, assim: void tempo() { //função aqui } void main() { tempo(); } Para a função ser executada, tens que a chamar na main (ou noutra função qualquer) como está nos exemplos. Desaparecido.
kwnds Posted November 29, 2006 at 09:42 PM Author Report #67747 Posted November 29, 2006 at 09:42 PM Obrigado pela explicação, ja consegui entender. Abraços
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