Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > нужна процедура открытия файла


Автор: shilov 22.12.2004, 09:03
Смысл в том, что я закидываю на панель кнопку в С++ и при нажатии на нее у меня должен запускаться указанный мною файл. Т.е. указал допустим в процедуре С:\ 1.reg и у меня изменился реестр при нажатии button, или С:\1.txt и у меня открылся мой уже созданный заранее текстовый файл. Скиньте процедурку!!!!!! Гарю!!!!!!!

Автор: azesmcar 22.12.2004, 10:27
Код

void ExecuteFile(const char *pFileName)
{
   ShellExecute(NULL, "open", pFileName, "", "", SW_SHOWNORMAL);
}

Автор: shilov 22.12.2004, 10:39
ну допустим вот форма, куда эту строчку ляпнуть

// prob1.cpp : implementation file
//

#include "stdafx.h"
#include "proba.h"
#include "prob1.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// prob

IMPLEMENT_DYNCREATE(prob, CFormView)

prob::prob()
: CFormView(prob::IDD)
{
//{{AFX_DATA_INIT(prob)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}

prob::~prob()
{
}

void prob::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(prob)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(prob, CFormView)
//{{AFX_MSG_MAP(prob)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// prob diagnostics

#ifdef _DEBUG
void prob::AssertValid() const
{
CFormView::AssertValid();
}

void prob::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// prob message handlers

void prob::OnButton1()
{
// TODO: Add your control notification handler code here

}

Автор: azesmcar 22.12.2004, 10:51
Добавь в header прототип функции
Код

void ExecuteFile(const char *pFileName);

потом в его CPP файле т.е. в том листинг которого ты привел пиши
Код

void prob::ExecuteFile(const char *pFileName)
{
  ShellExecute(NULL, "open", pFileName, "", "", SW_SHOWNORMAL);
}

А потом в функции OnButton1 вызывай ExecuteFile с нужным тебе параметром (т.е именем файла)

например
Код

void prob::OnButton1()
{
   // TODO: Add your control notification handler code here
   ExecuteFile("c:\\1.txt");
   ExecuteFile("c:\\file.reg");
}

Автор: shilov 22.12.2004, 11:05
допустим куда присобачить

ExecuteFile("c:\\1.txt");
ExecuteFile("c:\\file.reg"); Я нашел smile
Я так понимаю что под headerom ты подрозумеваешь шапку(что-то типо наверху, или заголовок), а вот где она для меня тайна под семью замками smile

и куда прислюнявить

void prob::ExecuteFile(const char *pFileName)
{
ShellExecute(NULL, "open", pFileName, "", "", SW_SHOWNORMAL);
}

Я не понял, ты уж извени, может я листингом не вышел!!!!

Автор: azesmcar 22.12.2004, 11:10
Открываешь файл prob1.h

Там в классе сразу где нибудь под фразой protected: записываешь void ExecuteFile(const char* pFileName) потом в своем файле prob1.cpp пишешь функцию которую я прислал...
Вот и все, и вызываешь ее оттуда из своего onbutton1

Автор: shilov 22.12.2004, 11:15
Спасибо тебе, добрый человек!!!!!! Не забуду доброты твоей душевной!!!!Здоровья тебе и твоим близким smile

Автор: Doc_d0s 22.12.2004, 18:33
Код

system("edit C:\tiripiri.txt");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)