Avatar billede tigertool Nybegynder
13. april 2006 - 00:20 Der er 8 kommentarer og
1 løsning

WaitFor og Program Files?

Hej,

Mit spørgsmål er delt i 2.

1. Jeg har lavet følgende stump kode:
void RunProgram(char* appName, char* appParams)
{
    ShellExecute(NULL,
                "open",
                appName,
                appParams,
                NULL,
                SW_SHOW);
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        char* appName = "c:/programmer/tightvnc/winvnc.exe";

        RunProgram(appName,"-kill");
        Sleep(1000);
        RunProgram(appName,"-run");
        Sleep(1000);
        RunProgram(appName,"-connect");
}

Koden virker fint, hvis jeg har smidt Sleep(1000) ind, det er som om at der skal noget 'Wait For' før den næste kommando skal udføres - nogen der har en god ide, det er vel ikke særlig stabilt med at bare vente 1 sekund, hvis det f.eks. afvikles på en Pc der er meget langsomt.

2. Er der en måde hvordan jeg kan se om OS'et benytter C:\Programmer eller C:\Program Files ?
Avatar billede bertelbrander Novice
13. april 2006 - 00:34 #1
1: Jeg kender ikke winvnc, men du skal nok vente på at programmet afslutter inden du kalder det igen. Det kan du gøre ved at bruge CreateProcess til at starte programmet, og GetExitCodeProcess til at checke om det er færdig.

2:
#include <iostream>
#include <stdlib.h>

int main()
{
  const char *ProgramFolder = getenv("ProgramFiles");
  if(ProgramFolder)
      std::cout << "Your Program folder: " << ProgramFolder << std::endl;
  else
      std::cout << "Failed to find your Program folder:" << std::endl;
}
Avatar billede bertelbrander Novice
13. april 2006 - 00:36 #2
Du kan også bruge ShellExecuteEx, den struct som den har som parameter har en hProcess, der kan bruges til GetExitCodeProcess.
Avatar billede tigertool Nybegynder
13. april 2006 - 02:55 #3
Er det muligt at se eksempler på jeres ideer?

min RunProgram(appName,"-run") starter VNC - men der kan man vel ikke vente på GetExitCodeProcess, for den kommer vel først når VNC lukkes ned?
Avatar billede bertelbrander Novice
13. april 2006 - 03:02 #4
Som jeg skrev ved jeg ikke hvad winvnc skal gøre og jeg ved ikke om det er nødvendigt at vente på at den afslutter.

Hvis ikke du skal vente på at den afslutter er det lidt svært at gætte på hvad du så skal vente på.
Avatar billede tigertool Nybegynder
13. april 2006 - 15:43 #5
Sådan som jeg ser det, så skal jeg vente på at applikationen er startet op.
Avatar billede bertelbrander Novice
13. april 2006 - 16:30 #6
Avatar billede tigertool Nybegynder
15. juli 2006 - 22:10 #7
bertelbrander -> smid svar
Avatar billede bertelbrander Novice
16. juli 2006 - 13:33 #8
Jeg samler ikke på point.
Avatar billede tigertool Nybegynder
16. juli 2006 - 14:18 #9
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester