开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 287|回复: 7
收起左侧

[完成] 炫语言-c++代码封库求助

 关闭 [复制链接]
结帖率:100% (18/18)
发表于 2024-10-25 12:30:28 | 显示全部楼层 |阅读模式   广东省惠州市
100精币
由于需要一个打开目录的命令,自己封了一个,可以弹出文件夹,但是IDE会输出错误提示?请问,大神我那里写错了!?望帮助修改.感谢!
11.png
//@备注  打开一个目录!如参数填:"C:\\Users\\Administrator\\Desktop\\E\\"
函数 HH_目录打开目录(常量 字符型* 文件目录路径)
        #嵌入代码
        if (HH_目录是否存在(文件目录路径)>0){
        ShellExecute(NULL, NULL, (LPCWSTR)文件目录路径, NULL, NULL, SW_SHOWNORMAL);
        }
        #嵌入代码_结束
       
//@备注  如果目录存在,函数返回非零值;如果不存在或发生错误,则返回0。如参数填:"C:\\Users\\Administrator\\Desktop\\E\\"
函数 整型 HH_目录是否存在(常量 字符型* 文件目录路径)
        #嵌入代码
        struct _stat info;
        if (_wstat(文件目录路径, &info) != 0){
                // 目录不存在
                return 0;
        } else {
                // 目录存在
                return info.st_mode & _S_IFDIR;
        }
        #嵌入代码_结束


最佳答案

查看完整内容

#include #include static bool OpenFolder(const char* path) { char cmdLine[MAX_PATH]; sprintf_s(cmdLine, "explorer \"%s\"", path); STARTUPINFOA si = { sizeof(si) }; PROCESS_INFORMATION pi; if (CreateProcessA(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) { CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return true; } return false; } int main() { OpenFolder(" ...

签到天数: 11 天

发表于 2024-10-25 12:30:29 | 显示全部楼层   内蒙古自治区锡林郭勒盟
呵呵仙 发表于 2024-10-25 23:03
还是先谢谢你,你这个只是创建一个浏览文件夹组件,不是打开一个文件夹!!如果明天还没其它c函数可打开一个 ...

#include <iostream>
#include <windows.h>

static bool OpenFolder(const char* path) {
        char cmdLine[MAX_PATH];
        sprintf_s(cmdLine, "explorer \"%s\"", path);

        STARTUPINFOA si = { sizeof(si) };
        PROCESS_INFORMATION pi;

        if (CreateProcessA(NULL, cmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) {
                CloseHandle(pi.hProcess);
                CloseHandle(pi.hThread);
                return true;
        }
        return false;
}

int main() {

        OpenFolder("C:\\Windows\\System32");

}

评分

参与人数 1好评 +1 精币 +3 收起 理由
呵呵仙 + 1 + 3 牛!连错误提示都解决了,谢谢!^_^

查看全部评分

回复

使用道具 举报

签到天数: 22 天

发表于 2024-10-25 12:45:27 | 显示全部楼层   重庆市重庆市
这个错误是COM接口内部的,可能是系统环境问题导致的,只要不是异常崩溃或影响功能,可以忽略。
回复

使用道具 举报

结帖率:60% (6/10)

签到天数: 22 天

发表于 2024-10-25 16:05:12 | 显示全部楼层   江西省南昌市
这个发炫语言官方论坛,会不会解决更快

点评

大神们都Q群里交流.很少过问论坛的.就是看下能否引出个c++大神出来,分享一个另样的函数写法!!^_^   广东省惠州市  发表于 2024-10-25 17:57
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 22 天

 楼主| 发表于 2024-10-25 17:59:45 | 显示全部楼层   广东省惠州市
hxznhf 发表于 2024-10-25 12:45
这个错误是COM接口内部的,可能是系统环境问题导致的,只要不是异常崩溃或影响功能,可以忽略。 ...

请问还有其它C/C++代码可打开一个目录吗?谢谢!
回复

使用道具 举报

签到天数: 11 天

发表于 2024-10-25 20:34:21 | 显示全部楼层   美国
呵呵仙 发表于 2024-10-25 17:59
请问还有其它C/C++代码可打开一个目录吗?谢谢!

#include <windows.h>
#include <shlobj.h>
#include <iostream>

static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT msg, LPARAM wparam, LPARAM lparam) {
        if (msg == BFFM_INITIALIZED) {
                SendMessageA(hwnd, BFFM_SETSELECTION, TRUE, lparam);
        }
        return 0;
}

static bool SelectFolder(const char* path, char* buffer) {
        BROWSEINFOA bi = { 0 };
        bi.hwndOwner = nullptr;
        bi.pszDisplayName = buffer;
        bi.lpszTitle = nullptr;
        bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
        bi.lpfn = BrowseCallbackProc;
        bi.lParam = reinterpret_cast<LPARAM>(path);

        if (LPITEMIDLIST pidl = SHBrowseForFolderA(&bi)) {
                if (SHGetPathFromIDListA(pidl, buffer)) {
                        CoTaskMemFree(pidl);
                }
                else {
                        CoTaskMemFree(pidl);
                }

                return true;
        }

        return false;
}

void func() {
        CsJitPool cspool(5);

}

int main() {

        char result[MAX_PATH];
        if (SelectFolder("C:\\", result)) {
                printf("%s \n", result);
        }

        return 0;
}


补充内容 (2024-10-25 20:37):
void func() {
        CsJitPool cspool(5);
}

这个方法没意义,删掉就可以
回复

使用道具 举报

结帖率:100% (18/18)

签到天数: 22 天

 楼主| 发表于 2024-10-25 23:03:28 | 显示全部楼层   广东省惠州市
以烟代酒 发表于 2024-10-25 20:34
#include
#include
#include

还是先谢谢你,你这个只是创建一个浏览文件夹组件,不是打开一个文件夹!!如果明天还没其它c函数可打开一个文件夹的话,就选你最佳吧!
11.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表